精华内容
下载资源
问答
  • 非常好的量化策略开发流程的介绍,权威的MagicQuant使用指南
  • 量化策略开发流程,蒙特卡洛方法,CTA策略介绍,程序化交易技术的最新进展,蒙特卡罗方法检验RSI指标有效性 等五篇某库下载券文章
  • 【vn.py】量化策略开发

    千次阅读 2019-08-06 15:27:10
    一个完整的量化流程至少需要包括策略开发、历史回测与实盘交易三个步骤,下面就以vn.py为例,先整理一下vn.py中如何进行量化策略的开发。 开发环境 在vn.py的官方教程中使用的IDE是VS Code,这里的IDE没有什么特殊...

    写在前面

    一个完整的量化流程至少需要包括策略开发、历史回测与实盘交易三个步骤,下面就以vn.py为例,先整理一下vn.py中如何进行量化策略的开发,本文的主要内容还是多来自vn.py的官方教程

    开发环境

    在vn.py的官方教程中使用的IDE是VS Code,这里的IDE没有什么特殊要求,我在使用的时候使用的环境是Pycharm+VN Studio。相比于以前自己在源码基础上的策略开发,以现在这种的开发方式可以更好地专注于策略本身。

    为了方便管理自己的策略代码,需要创建一个strategies的文件夹存放策略代码,这个文件夹的目录位置需要:
    如果是按照官方默认配置的话,也就是.vntrader在C:/Users/YourName/下,strategies放在.vntrader的同级目录下即可。
    如果把.vntrader放在了其他位置,也需要在它的同级目录下创建strategies文件夹。
    因为在启动VN Trader的时候,它会在.vntrader文件在所在的目录下查找strategies文件夹,并加载其中的策略代码。

    之后在strategies文件夹中创建一个命名为demo_strategy.py的文件,并用IDE打开。

    策略代码编写

    策略这里选用vn.py官方教程中的双均线策略demo,它的完整代码:

    from vnpy.app.cta_strategy import (
        CtaTemplate,
        StopOrder,
        TickData,
        BarData,
        TradeData,
        OrderData,
        BarGenerator,
        ArrayManager,
    )
    
    
    class DemoStrategy(CtaTemplate):
        """演示用的简单双均线"""
    
        # 策略作者
        author = "Smart Trader"
    
        # 定义参数
        fast_window = 10
        slow_window = 20
    
        # 定义变量
        fast_ma0 = 0.0
        fast_ma1 = 0.0
        slow_ma0 = 0.0
        slow_ma1 = 0.0
    
        # 添加参数和变量名到对应的列表
        parameters = ["fast_window", "slow_window"]
        variables = ["fast_ma0", "fast_ma1", "slow_ma0", "slow_ma1"]
    
        def __init__(self, cta_engine, strategy_name, vt_symbol, setting):
            """"""
            super().__init__(cta_engine, strategy_name, vt_symbol, setting)
    
            # K线合成器:从Tick合成分钟K线用
            self.bg = BarGenerator(self.on_bar)
    
            # 时间序列容器:计算技术指标用
            self.am = ArrayManager()
    
        def on_init(self):
            """
            当策略被初始化时调用该函数。
            """
            # 输出个日志信息,下同
            self.write_log("策略初始化")
    
            # 加载10天的历史数据用于初始化回放
            self.load_bar(10)
    
        def on_start(self):
            """
            当策略被启动时调用该函数。
            """
            self.write_log("策略启动")
    
            # 通知图形界面更新(策略最新状态)
            # 不调用该函数则界面不会变化
            self.put_event()
    
        def on_stop(self):
            """
            当策略被停止时调用该函数。
            """
            self.write_log("策略停止")
    
            self.put_event()
    
        def on_tick(self, tick: TickData):
            """
            通过该函数收到Tick推送。
            """
            self.bg.update_tick(tick)
    
        def on_bar(self, bar: BarData):
            """
            通过该函数收到新的1分钟K线推送。
            """
            am = self.am
    
            # 更新K线到时间序列容器中
            am.update_bar(bar)
    
            # 若缓存的K线数量尚不够计算技术指标,则直接返回
            if not am.inited:
                return
    
            # 计算快速均线
            fast_ma = am.sma(self.fast_window, array=True)
            self.fast_ma0 = fast_ma[-1]     # T时刻数值
            self.fast_ma1 = fast_ma[-2]     # T-1时刻数值
    
            # 计算慢速均线
            slow_ma = am.sma(self.slow_window, array=True)
            self.slow_ma0 = slow_ma[-1]
            self.slow_ma1 = slow_ma[-2]
    
            # 判断是否金叉
            cross_over = (self.fast_ma0 > self.slow_ma0 and
                          self.fast_ma1 < self.slow_ma1)
    
            # 判断是否死叉
            cross_below = (self.fast_ma0 < self.slow_ma0 and
                           self.fast_ma1 > self.slow_ma1)
    
            # 如果发生了金叉
            if cross_over:
                # 为了保证成交,在K线收盘价上加5发出限价单
                price = bar.close_price + 5
    
                # 当前无仓位,则直接开多
                if self.pos == 0:
                    self.buy(price, 1)
                # 当前持有空头仓位,则先平空,再开多
                elif self.pos < 0:
                    self.cover(price, 1)
                    self.buy(price, 1)
    
            # 如果发生了死叉
            elif cross_below:
                price = bar.close_price - 5
    
                # 当前无仓位,则直接开空
                if self.pos == 0:
                    self.short(price, 1)
                # 当前持有空头仓位,则先平多,再开空
                elif self.pos > 0:
                    self.sell(price, 1)
                    self.short(price, 1)
    
            self.put_event()
    
        def on_order(self, order: OrderData):
            """
            通过该函数收到委托状态更新推送。
            """
            pass
    
        def on_trade(self, trade: TradeData):
            """
            通过该函数收到成交推送。
            """
            # 成交后策略逻辑仓位发生变化,需要通知界面更新。
            self.put_event()
    
        def on_stop_order(self, stop_order: StopOrder):
            """
            通过该函数收到本地停止单推送。
            """
            pass
    

    下面是每一部分的讲解:

    参数设置

    最前面的import导入的也就是我们需要用到vnpy框架中依赖的类和函数,其中最重要的就是CtaTemplate这个类,它是所有CTA策略的基类,其中包括了很多接口,包括一系列以on_开头的回调函数,用于接受事件推送,以及其他主动函数用于执行操作(委托、撤单、记录日志等)。所有CTA策略都需要继承这个父类。

    from vnpy.app.cta_strategy import (
        CtaTemplate,
        StopOrder,
        TickData,
        BarData,
        TradeData,
        OrderData,
        BarGenerator,
        ArrayManager,
    )
    

    创建了这个策略之后,一个策略必不可少的还有参数,所以下一步我们需要定义策略所需要的参数,并且在定义完之后,还需要将参数的名称以字符串的形式添加到parameters列表之中,方便后续窗口界面的参数初始化设置以及后续参数优化。

        # 定义参数
        fast_window = 10
        slow_window = 20
    
        # 添加参数和变量名到对应的列表
        parameters = ["fast_window", "slow_window"]
    

    除了参数之外,还有一些在策略的执行过程中的变量,为了可视化这些变量还需要把这些变量的字符串名称添加到variables列表中,同时在保存策略运行状态到缓存文件中时将这些变量写入进去(实盘中每天关闭策略时会自动缓存)。由于这些变量需要历史数据进行初始化,所以在定义这些变量时,如果没有特殊要求以默认数值定义即可。

        # 定义变量
        fast_ma0 = 0.0
        fast_ma1 = 0.0
        slow_ma0 = 0.0
        slow_ma1 = 0.0
    
        # 添加参数和变量名到对应的列表
        variables = ["fast_ma0", "fast_ma1", "slow_ma0", "slow_ma1"]
    

    上面变量和参数都是全局变量,便于全局调用。变量和参数的区别在于变量是一直在策略的更新过程中变化的,而参数则是经过调优之后策略的运行过程中自始至终不会变化。

    需要注意的是:
    1、无论变量还是参数,都必须定义在策略类中,而非策略类的__init__函数中;
    2、参数和变量,均只支持Python中的四种基础数据类型:str、int、float、bool,使用其他类型会导致各种出错(尤其注意不要用list、dict等容器);
    3、如果在策略逻辑中,确实需要使用list、dict之类的容器用于数据缓存,请在__init__函数中创建这些容器。

    交易逻辑

    首先,在创建策略实例化时,__init__函数首先被调用:

            # K线合成器:从Tick合成分钟K线用
            self.bg = BarGenerator(self.on_bar)
    
            # 时间序列容器:计算技术指标用
            self.am = ArrayManager()
    

    BarGenerator的作用是用于合成K线,由于在实际交易中,CTP推送的数据并不是以K线的形式进行推送的,而我们的策略需要以K线为基础进行交易逻辑,所以就需要在本地将接受的tick数据合成K线。其中传入的参数(self.on_bar)是当1分钟K线走完时触发的回调函数。
    在实盘策略收到最新的Tick推送时,我们只需要将Tick数据通过on_tick函数更新到BarGenerator中:

    def on_tick(self, tick: TickData):
        """
        通过该函数收到Tick推送。
        """
        self.bg.update_tick(tick)
    

    当BarGenerator发现某根K线走完时,会将过去1分钟内的Tick数据合成的1分钟K线推送给策略,自动调用策略的最关键的on_bar函数,执行交易逻辑。

    在vn.py的CTA策略模块中,所有的策略逻辑都是由事件来驱动的。对于事件,举例来说:

    • 策略被执行初始化操作,会收到on_init函数的调用,此时可以加载历史数据,来进行技术指标的初始化运算
    • 新一根1分钟K线走完时,会收到on_bar函数的调用,参数为该根K线对象的BarData
    • 策略发出的委托,状态发生变化时,会收到on_order函数的调用,参数为该委托的最新状态OrderData

    对于最简单的双均线策略的DemoStrategy来说,我们不用关注委托状态变化和成交推送之类的细节,只需要在收到K线推送时(on_bar函数中)执行交易相关的逻辑判断即可。

    每次新的一根K线走完时,策略会通过on_bar函数收到该根K线的数据推送。注意此时收到的数据只有该K线,但大部分技术指标计算时都需要过去N个周期的历史数据。

    ArrayManager的作用适用于计算均线技术指标,用于实现了K线历史的缓存和技术指标计算。在on_bar函数的逻辑中,第一步需要将K线对象推送到该时间序列容器中:

    # 纯粹为了后续可以少写一些self.
    am = self.am
    
    # 更新K线到时间序列容器中
    am.update_bar(bar)
    
    # 若缓存的K线数量尚不够计算技术指标,则直接返回
    if not am.inited:
        return
    

    为了满足技术指标计算的需求,我们通常需要最少N根K线的缓存(N默认为100),在推送进ArrayManager对象的数据不足N之前,是无法计算出需要的技术指标的,对于缓存数据是否已经足够的判断,通过am.inited变量可以很方便的判断,在inited变为True之前,都应该只是缓存数据而不进行任何其他操作。

    当缓存的数据量满足需求后,我们可以很方便的通过am.sma函数来计算均线指标的数值:

    # 计算快速均线
    fast_ma = am.sma(self.fast_window, array=True)
    self.fast_ma0 = fast_ma[-1]     # T时刻数值
    self.fast_ma1 = fast_ma[-2]     # T-1时刻数值
    
    # 计算慢速均线
    slow_ma = am.sma(self.slow_window, array=True)
    self.slow_ma0 = slow_ma[-1]
    self.slow_ma1 = slow_ma[-2]
    

    注意这里我们传入了可选参数array=True,因此返回的fast_ma为最新移动平均线的数组,其中最新一个周期(T时刻)的移动均线ma数值可以通过-1下标获取,上一个周期(T-1时刻)的ma数值可以通过-2下标获取。

    有了快慢两根均线在T时刻和T-1时刻的数值后,我们就可以进行双均线策略的核心逻辑判断,即是否发生了均线金叉或者死叉:

    # 判断是否金叉
    cross_over = (self.fast_ma0 > self.slow_ma0 and
                  self.fast_ma1 < self.slow_ma1)
    
    # 判断是否死叉
    cross_below = (self.fast_ma0 < self.slow_ma0 and
                   self.fast_ma1 > self.slow_ma1)
    

    所谓的均线金叉,是指T-1时刻的快速均线fast_ma1低于慢速均线slow_ma1,而T时刻时快速均线fast_ma0大于或等于慢速均线slow_ma10,实现了上穿的行为(即金叉)。均线死叉则是相反的情形。

    当金叉或者死叉发生后,则需要执行相应的交易操作:

    # 如果发生了金叉
    if cross_over:
        # 为了保证成交,在K线收盘价上加5发出限价单
        price = bar.close_price + 5
    
        # 当前无仓位,则直接开多
        if self.pos == 0:
            self.buy(price, 1)
        # 当前持有空头仓位,则先平空,再开多
        elif self.pos < 0:
            self.cover(price, 1)
            self.buy(price, 1)
    
    # 如果发生了死叉
    elif cross_below:
        price = bar.close_price - 5
    
        # 当前无仓位,则直接开空
        if self.pos == 0:
            self.short(price, 1)
        # 当前持有空头仓位,则先平多,再开空
        elif self.pos > 0:
            self.sell(price, 1)
            self.short(price, 1)
    

    对于简单双均线策略来说,用于处于持仓的状态中,金叉后拿多仓,死叉后拿空仓。

    所以当金叉发生时,我们需要检查当前持仓的情况。如果没有持仓(self.pos == 0),说明此时策略刚开始交易,则应该直接执行多头开仓操作(buy)。如果此时已经持有空头仓位(self.pos , 0),则应该先执行空头平仓操作(cover)然后同时立即执行多头开仓操作(buy)。为了保证成交(简化策略),我们在下单时选择了加价的方式来实现(多头+5,空头-5)。

    注意尽管这里我们选择使用双均线策略来做演示,但在实践经验中简单均线类的策略效果往往非常差,千万不要拿来跑实盘,也不建议在此基础上进行扩展开发。

    REF

    vn.py官方教程

    展开全文
  • 针对股票代码的学习开发,以及策略编写。实时计算期权合约买卖方向的N档盘口挂单量之和对应的行权市值与对冲市值对比,取最小市值,并将做空头寸和做多头寸同时下单,如果做空头寸有多张合约,那么将会。 例如:数量...
  • 量化策略开发中的参数调优

    千次阅读 2019-03-08 16:18:52
    量化策略研发时,进行参数调优也是很重要的一步 以下例子来看 这是一个使用ATR止损的策略 20日一次调仓,000016(上证50),卖出价格低于close-3ATR的标的 (为了过滤手续费的影响,将手续费倍率设置为0,但是印花税等...

    量化策略研发时,进行参数调优也是很重要的一步

    以下例子来看

    这是一个使用ATR止损的策略

    20日一次调仓,000016(上证50),卖出价格低于close-3ATR的标的

    (为了过滤手续费的影响,将手续费倍率设置为0,但是印花税等平台不支持屏蔽的依然保留了)

    (米框帖子:https://www.ricequant.com/community/topic/36830/)

    直接回测结果

     

    参数测试:

    可见,最优参数,30,000300.XSHG.(这里只是个例子,实际000300效果并不好,由于使用回测框架不支持修改banchmark,所以在hs300效果无法直接比对)

      参数测试除了寻找最优参数,还可以观察因子的稳定性,比如如下的这个因子稳定性就很好,基本上收益都是高于基准的(不过在不同市场形态(牛熊震荡)下,超额收益不同,从下面的图上看,对冲后回撤也不会太大.)

      参数测试也是有风险的,可能存在过度优化的嫌疑,典型的例子是测试100组参数,5,,10组取得不错收益,其他的都非常差,这种情况下有可能是因子本身并不稳定.

     

    展开全文
  • 量化策略开发是一个很容易让人迷失的领域,很多人在quant,quant trader,quant dev之间不停的跳来跳去,这点撸主自己也是一样的。其实说白了,还是没有搞清楚自己的定位。量化交易是对个人的综合能力要求很高的:数学...

    James Ge:

    1. 数学,统计学功底-------没有想象中的重要。我的数学能力说实话还停留在高中水平,虽然是硕士毕业。。。因为在国外学的是会计和金融,算是文科。统计是在coursera上跟着视频学的,虽然写论文的时候也尝试着去用GARCH之类的,不过也是用了就忘,工作中从来没遇到过。我们公司倒是有个数学博士,但是也不知道怎么用他。留着是因为撑场面+很便宜。

    2.  编程。------- 这个吧,说来惭愧,python在cousera上学的,matlab是自己硬撸的,反正做回测的时候就是各种土方法+效率低+将就着用。写模型,首选商业平台的,比如MC,TB,因为行情不用清洗呀。。。功能各种方便呀。

    3. 金融学的知识————这个就看自己了,一般都是上个新品种之后现学现卖,学校学的能用上,但是太基础,这点CFA课程也是一样,就是让你了解个大概,最后还是具体问题具体解决。


    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~以下有主观的部分~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    量化策略开发是一个很容易让人迷失的领域,很多人在quant,quant trader,quant dev之间不停的跳来跳去,这点撸主自己也是一样的。其实说白了,还是没有搞清楚自己的定位。量化交易是对个人的综合能力要求很高的:数学,统计,金融,计算机,交际(你总要拉投资吧?)。如果你在大机构,或者一个很成熟的团队,那么恭喜,你不用考虑这个问题。但是以国内的量化交易发展水平来看,还是高手在民间,很简单,因为赚钱机会多,资金多,模型容易开发,那么这种时候肯定是自己干来钱快。举个栗子,比如我们做套利,券商自营的收益率可能跟我做的差不多,但是僧多,粥就少。

    题主应该是想继续在量化交易这条路上走下去,但是不知道应该提升自己哪个方面,是IT?数学?还是别的?因为跟量化交易相关的东西实在太多了。撸主自己去年也问过问题,但是被某位大神一句话打脸:

    “你踢足球,需要会做球鞋吗?”

    所以说,想要提升技能要找准定位,找准定位就有很多方法啦。简单的来说:

    如果把量化交易当成职业,那么现在最好加入一个团队,然后你很自然的会知道自己要提高什么。

    如果想从交易上赚到钱,那还是好好学习怎么交易吧。。。量化不量化,其实没个毛关系。

    郭睿:
     

    这个问题,在术的层面上大家已经答的很好了,所用到的知识无非就是数学(统计居多)、计算机编程(matlab\python)、二级市场的庞杂的交易知识和理念(行为金融、技术面分析、基本面分析等)。

    量化是对金融交易的有效辅助,是用算法和模型帮助人处理大量复杂的信息,并在相当长的时间内严格遵守人制定的交易纪律。是定性投资和定量投资的一种结合,所以本质仍然是金融,仍然是对【金融表象、经济内核和人性的认识】,如果不能在核心层面融汇贯通,最多也只能做个外表光鲜的量化码农。

    我主要想来谈一些“道”的层面的内容,有句老话叫“明此道术势,大业终可攀”,知道为什么做,向哪个方向做比知道怎么做更重要。

    策略能不能做出来,能不能做好,是要看运气的。

    当然,只有足够努力才可能有运气。

    量化这个领域,就像是一个金字塔,真正能走到塔尖的人少之又少,在顶点区间的人基本上可以靠自己的几套策略(本质上是几个发现,几种联系)而得到很多。

    下面的人会不断的往上爬,坏处是竞争确实存在,而且你根本不知道自己做的策略是不是能够做出来,你的总监或者经理只会在思想上指导你,而绝对不会把自己的策略告诉你,这点大家应该可以理解,看家的行规不能破。

    好处是,【每个人的背景和指导思想不一样,开发策略的路径不一样】,这就好比都要登天,但每个人一个自己的梯子,不用担心互相打架,无非只是担心你的梯子搭的对不对,够不够长。

    来讲讲我的两个同事,我觉得是非常是非常具有代表性的。

    同事一,30岁,国内优质211大学本科,中国知名财经学院计量经济学博士,留学美国,正统的科班出身,是很多量化童鞋的模板。

    同事二,33岁,本科211,地方性名校,立志金融报国,先后就职于国内知名的衍生品交易公司,很早就开始在市场上摸爬滚打。

    同事一坚决的信奉科学主意。非常的严谨和有逻辑,他开发策略的逻辑有几个关键词【拿来、优化、简单不复杂】。举个例子,通过大量的阅读国内外研报、论文等等,就是最简单的呈现结果一定要好,但是有明显的缺陷,再去改进这个缺陷。坚决不去使用或者研究看似复杂的模型,因为他信奉简洁的才是美的。

    他的指导思想就是两个主体:

    1、计量金融学:核心是确定因果关系(用模型可以精准确定)

    2、行为金融学:试图找到定价过程中由于人的因素所导致的错误。

    就这两条,可以这么说,他开发策略的逻辑和过程就像是在搭积木,一层一层的向上,虽然过程很慢,但是每一层都严谨,有据,部分之间不会存在错误。

    在美国,很多知名的对冲基金都是由数学、经济等等方面的教授在运营,他们的策略逻辑就跟他一样,step by step,但要求每一步都坚实。可以说这是一种牺牲了速度,但是精准的开发方式。

    同事二以市场为导向,有非常好的市场感觉和判断力,在交易市场上摸爬滚打多年的他,总是有很多天马行空的想象,会去主动发掘和开发很多新鲜的策略,用最快的速度开发出啦,不断矫正。可以说就是市场驱动。他的做法就是大量的阅读,大量的行业交流,大量的测试,最终找到好的策略。

    事实上,同事二是我们的研究总监,指导全盘的策略开发工作。而同事一是我们研发的中流砥柱,海外策略开发的核心人员。

    二人非常互补,配合很默契,所以你可以看出,需要什么样的基础知识大同小异,而且在量化的领域中这真的不是问题的核心。

    核心是【依据自己的经验和教育体系,找到自己策略开发的主线,持之以恒的去做】。想通这一点,我想在很多细节上就不会那么纠结,我很赞同这句话“毕竟我是来踢球的,为什么要会做球鞋呢?”

    总结一句,策略开发如登山,好在每人都有自己的梯子,找到自己的主线,持之以恒的攀登吧。

    (来源:知乎)

    ------------------------------------------

    拓展阅读:

    1.一个量化策略师的自白(好文强烈推荐)

    2.市面上经典的量化交易策略都在这里了!(源码)

    3.期货/股票数据大全查询(历史/实时/Tick/财务等)

    4.干货| 量化金融经典理论、重要模型、发展简史大全

    5.从量化到高频交易,不可不读的五本书

    6.高频交易四大派系大揭秘

    展开全文
  • 刚接触量化的时候,开始研究的是python的package:ctpwrapper调用CTP接口,毕竟自己也擅长Qt和pyQt的开发,但是后来渐渐的发现,个人的力量真的太渺小,于是决定将开发环境转到vnpy上,大神造好的轮子,何苦自己还要...

    刚接触量化的时候,开始研究的是python的package:ctpwrapper调用CTP接口,毕竟自己也擅长Qt和pyQt的开发,但是后来渐渐的发现,个人的力量真的太渺小,于是决定将开发环境转到vnpy上,大神造好的轮子,何苦自己还要再去搞一套?

    上网一搜,vnpy居然已经出了2.0版本,还支持64位的python3,立马决定搞定它:

    新的vnpy的安装和部署,已经百年的非常的简单了,直接下载VNConda-2.0-Windows-x86_64.exe,以管理员方式运行,一路的确定即可,安装包已经集成了python3.7和所有的依赖包,安装的时候,记得勾选所有的选项。安装完成之后,桌面会显示图标VN Station

     

    然后上simnow网站,注册一个账号,然后记下investorid和brokerid,这个在后面vntrader中需要使用

     

    双击打开VN Station,会要求填写账户密码,(这个其实可以通过修改代码屏蔽掉,嘿嘿~~~,谁让python源代码开放的),先去https://www.vnpy.com/portal/上注册一个账户,这样,就能顺利的进入vnpy软件

    进入软件之后,界面是一个简易的网页浏览器,直接指向了vnpy论坛,没事可以看看最新的信息啥的

    然后,点击左下角的VN Trader进入界面,每次进入都会要求你给一个运行目录,其实就是存放你的账户配置的一个文件夹,里面会保存数个json文件,先创建一个空文件夹路径给它

    然后会弹出界面,要求选择使用的交易接口和策略,这里我只用CTP

    完成选择之后,点击右下角的“启动”,进入vntrader的界面中,

    选择右上角的“系统”->“连接CTP”

    弹出界面要求填写各种相关信息,这个时候,我们前面注册的simnow的信息,就派上用场啦

    userid填写simnow注册的investorid, brokerid照抄,模拟账户都是9999, password填写simnow注册时候的密码就可以,最后两个必须要填写的是td_address和md_address,这两个分别是交易服务器和行情数据源服务器,我一开始一直给我报告非法登录,原因查找了半天,原来就是这两个服务器的地址填写不对导致的。网上查了好久,许多教程都没有讲明白,自己懵懵懂懂的才摸索出来。

    所以,这里分享一个直接的解决办法,首先,回到simnow网站上,点击“常用下载”->“点击下载客户端”

    选择下载:“快期期货交易终端V2”,并安装

    安装完成之后,在软件的登录面板上,选择“代理/测速”,就能看到可用的行情和交易服务器地址了

    展开全文
  • Magic@van 量化策略开发流程 Copynght 2012 MQ Solutons Ltd. All nights reserved Magic@van 策略开发流程 2工具和学习资料 3单步调试策略 4策略代码编写 5复盘回测 6实盘运行 Copynght 2012 MQ Solutons Ltd. All ...
  • 专项C++、机器学习等技术开发人才招聘汇总:另外北上广深杭也需要量化策略开发人才(alpha CTA 、日内程序化负责人、高频alpha,期货高频,期权高频) A、某顶尖高频量化奥赛团队(深圳,150万之内,希望是top985本...
  • 由于市场的波动性,交易机器人在交易员中越来越受欢迎,因为只要把策略写好,交易机器人就按照策略进行交易,投资者或者交易员就无需时刻进行盯盘,即使交易员在睡觉,机器人也不会睡觉。此外,还有一个好处是,...
  • 传统量化策略 VS AI量化策略

    千次阅读 2018-12-28 11:23:20
    在BigQuant人工智能量化投资平台上可以快速开发股票传统策略和股票AI策略,今天我们就拿市值因子来练手,看看两个策略在2015-01-01到2016-12-31这两年时间各自的收益风险情形。 市值因子是国内股票市场能够带来超额...
  • 想要从事量化策略研究与交易的初学者碰到的第一个问题就是编译语言工具的选择。 对于没有编程基础的新手,选择任何一个语言进行策略开发,都有不小的学习成本。 更重要的是,选择了一门语言,接下来开发环境、数据...
  • 目前市场各种交易程序良莠不齐,判断一款数字货币量化交易程序是否优秀的前提之一是盈利能力,其二是它的止损风控能力。在这两方面量化交易机器人相较于市场上的其他量化交易程序着一套自己的处理思路。 自动交易...
  • 量化交易是将特定的期望收益为正的交一规则或策略编译为计算机程序,通过计算机计算并发出交一信号,由交一员下单 或计算机自动下单来完成的交一。 量化交易至少应该包括五个方面的要素: (1)买入和卖出的信号系统。 ...
  • 量化策略如何让统计回测结果

    千次阅读 2017-01-04 15:15:43
    阅读原文:京东量化平台(quant.jd.com)-全方位量化策略开发平台。量化交易、量化投资、云端在线编程、策略历史回测、实盘模拟、量化社区 京东金融量化交流群:417082141 我们需要统计这几个指标: [超额收益为...
  • Blockchain is an advanced Internet underlying technology, which does not only belong to a certain industry. 【刘毅I992年46月36日653可掂】 ...比如一个每五分钟执行一次下单逻辑运算的策略,到第五分钟时
  • 这篇文章谈谈我对利用机器学习开发量化策略的看法。 我从去年年底开始决定用自己所学的知识开发一套属于自己的交易策略,到现在已经断断续续做了4个多月了。这里有一些思考与想法可以与大家分享。 1 不要觉得机器...
  • quantOS量化开源系统架构中的策略研发模块,由交易专家和金融技术专家共同设计,实现了自动化信号研究、高效策略开发和多维度回测分析,支持Alpha、CTA、套利等策略的实现。JAQS从实战而来,经实盘检验,本地化开发...
  • 【干货】开发AI量化策略所遇到的坑

    千次阅读 2020-12-03 16:10:27
    本文简单介绍开发AI量化选股策略中所遇到的各种坑,希望大家有所收获,少走弯路。 本文主要从思想和实操两个层面分享下我在开发AI量化选股策略中所遇到的各种坑,也希望各位小伙伴能够进行补充。 策略思想逻辑层面 ...
  • 支持量化策略开发运行的平台很多,MT平台也是其中之一,有EA开发语言MQL,依赖MT5终端软件便可以实现量化策略编写,实时运行、回测复盘调试。个人觉得还是不错的。 据目前了解,MT5系统没有开放api接入交易和数据...
  • AI量化策略快速理解

    千次阅读 2018-12-28 14:59:00
    开发AI量化策略就是采用人工智能的相关技术和算法构建模型来处理市场海量数据之间的复杂关系。本文将带你走进人工智能量化投资的世界 我们在用AI来编写量化策略过程中,主要用到了机器学习,先来从一张图直观了解...
  • 量化策略及其中国市场容量

    千次阅读 2019-04-23 12:49:54
    量化策略及其中国市场容量 按语:量化策略已经成为国内证券投资基金的一种重要的投资策略,根据具体采用的策略不同又可分为多种类型。本文总结出八大类型的量化策略,结合国内实际运用情况逐一分析了各个策略在...
  • VNPY系统是一个开源 的量化策略交易系统,学习本课程快速上手量化交易,赚取属于自己的第一桶金! 手把手教课,不错过任何一个细节。 1.环境准备 2.国内期货CTP 3.其他市场交易接口 4.第一个量化策略 5.历史数据回测...
  • 开发步骤: 1. 获得股票列表信息将结果 保存在Series 里 2. 获得股票历史价格信息 3. 股票投资策略 - 均线策略 4. 输出最近一周价格走势符合均线策略的股票代码列表  5. 邮件系统 ...
  • 公司的基本面因素一直具备滞后性,令基本面的量化出现巨大困难。而从上市公司的基本面因素来看,一般只有每个季度的公布期才会有财务...下文给出财务指标量化策略案例,并分享出策略源码,感兴趣的朋友可以直接前往...
  • 量化自动机器人开发找用户名为首击号 量化自动机器人是现货全自动智能量化机器人,同时与国内外知名交易所ZB,火币,币安,okex,gate等达成合作,兼容各大主流平台,争取实现所有货币的同时操作,全自动交易,...
  • 量化策略研究指的是需要依据一种或多种确凿的获利理念,通过某一特定显式表示的模型,指导参与者反复地以人工或机器执行指令,参与单边或多空交易。在策略的执行过程中,需要实时监控资产组合价值与目标利润的偏离...
  • 基于Python语言的量化策略设计与应用优化.pdf

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 22,553
精华内容 9,021
关键字:

量化策略开发