Save
Saving
  • wdg

    VNPY软件最初是针对期货市场提供的商业化专业金融软件系列,随着这四年来,产品不断迭代,而扩展到以国内合规市场为目标市场。
    VNPY官网 http://www.vnpy.cn
    VNPY长期以来为广大的量化交易爱好者服务,特别是CTP量化交易爱好者服务,这4年来VNPY携大家一起走过了4年时间,通过VNPY核心团队一起不懈努力,VNPY也由最初的不成熟到成熟,客户群也不断壮大。

    为了让新手有一套完整的学习资料入口,VNPY仿真柜台提供了学习资料展示网址 http://www.gucps.cn,这个网址有大家继续寻找的关于VNPY的整套学习资料,免费提供给大家使用。

    VNPY未来计划提供基于C++开发的整套量化交易客户端,以及基于TICK的以及资管系统,仿真回测客户端,数据服务,套利软件客户端,VNPY将重点放在国内合规市场期货CTP接口研发和A股程序化交易产品上。VNPY作为C++底层为主的量化交易系列产品,采用C++底层开发,可以大幅都降低Python策略开发的工作。
    目前包括了期货跟单软件、期货资管软件、期货套利条件单软件、期货CTP TICK级仿真回测接口。号称"本地SIMNOW"的VNPY CTP的底层仿真回测接口,就是针对CTP开发者提供的一套数据采集、仿真回测、图表绘制的一套全新产品。

    以探索更真实的量化交易世界为理念,提供更专业的软件客户端,为广大量化交易职业投资者服务。

    VNPY仿真回测GITHUB下载地址
    https://github.com/vnpycn/vnpy-pro

    posted in VNPY CTA read more
  • wdg

    目前基于VNPY CTP仿真柜台的量化交易回测,需要特别注意一个问题。

    在正常的实盘环境或SIMNOW仿真环境中,一般是每秒2比TICK,也就是TICK之间时间间隔至少是500ms,如果在行情回调时,将行情加入队列,由另一个线程进行策略计算,触发信号后再进行报单,那么通常这个计算时间足够了,我们经过测试,再80个周期的macd计算中,主流1000元左右CPU ,比如AMD R5 1600X 或I7 4790K,每秒可以进行20万次的MACD计算。

    但是在VNPY仿真回测柜台环境中,为了尽可能降低回测速度,不会采用50mms读取一次TICK的方式来进行仿真,一般行情回调是连续进行了,在这样情况下,如果还将行情加入队列,再由另一个线程进行计算的话,那么可能导致计算完成时,已经读取了多比TICK,这时结算就会按最新的TICK进行结算了,这样就会产生极大的误差。

    为了避免这个问题,就要求不应采用回调加入队列,再进行计算的方式,而要采用每接收一比TICK,就立即开始计算,计算完成再接收下一笔TICK,解决方式有二:
    1.要么直接将策略计算放在行情回调函数中进行;
    2.要么通过多线程阻塞方式控制回调函数的进度,以保证每次都按,接收TICK,策略计算完成,接收TICK,策略计算完成的方式进行。

    因为受到IO的影响和TICK数据顺序回放延迟的要求,对仿真柜台DLL本身并不能充分利用CPU多核心资源,而因为TICK的快速回放,为了避免因为线程抢占导致的随机性,VNPY仿真柜台要求接入程序的策略计算必须在行情回调中进行,或者采用线程控制,使得每接收到1比TICK计算完成再进行下一次TICK计算。

    如果不注意这个问题 ,会导致多次回测,资金曲线并不一致,甚至交易信号并不一致。如果想知道是否已经处理了这个问题,只要回测2次,如果资金曲线和交易信号完全一致,就表示已经再代码中考虑了这个问题。

    所以无论用户 的策略程序接实盘时是否已经充分利用了多核心,再接入VNPY仿真柜台时都要特别注意上述的问题,那么也意味着,VNPY仿真柜台回测时,1个进程也就主要占用1核心CPU资源。如果要充分利用多核心CPU资源,应该采用多进程方式来进行回测。

    VNPY CTP放在回测给出的方案是:

    通过配置文件给出参数范围,然后通过管理工具一次性生成多个策略进程的文件夹副本,每个副本的配置文件中的参数并不相同,开发策略程序时应该考虑从特定格式的配置文件读取参数。

    通过管理工具的复制文件夹多个副本,并给出不同参数配置文件,通过调用多个程序再多个进程的方式进行回测,回测完成后,再进行统计和汇总。

    可以这么说,VNPY CTP仿真柜台的回测方式提供了一种全新精细化基于tick的回测方法,这个方法与之前的几类回测架构比起来,具有极大的优势,可以让策略开发者观察入微,通过不断微调策略可以研发出极为优秀的量化交易策略。

    http://www.vnpy.cn

    http://www.gucps.cn

    posted in VNPY CTA read more
  • wdg

    我们以前采用的量化交易回测,都是基于K线居多,作为软件服务商很难提供基于TICK的回测,原因就是基于TICK数据的回测,数据量太大,成本太高。

    据我们统计,如果期货CTP接口全市场订阅并存文本,每个月数据库再30GB以上,这个数据库需要占用软件服务商大量带宽成本。使得软件服务上只能通过压缩成K线的方式提供回测数据,这样以来,很难保证回测精度, 甚至是出现通过量化交易回测信号和实盘不一致的情况,特别是对小周期高频率的交易影响非常大, 所以回测和实盘相差甚远,“回测上了天,实盘亏成狗” 就是这样原因吧。

    市场急需一款能够回访TICK面对API开发者的回测方式,在以往,这样回测方式研发成本高,对策略开发者开发能力也极高,还需要花大量时间去搭建这里TICK回测框架,其实这也是困扰很多想从事原生API进行回测的一些爱好者,不得其入。

    VNPY仿真回测柜台和Virtualapi仿真回测柜台是姊妹产品,都是基于第四类仿真回测方案的技术实现。

    主要服务对象是量化私募基金,职业化的量化交易爱好者。

    请认准官网
    http://www.vnpy.cn

    经过我们通过VNPY仿真回测柜台回测和实盘资金曲线记录的对比,发现通过VNPY仿真柜台提供的资金曲线,可以和实盘资金曲线有99.9%的相似度。

    通过VNPY 仿真柜台的方式实现回测不仅兼容市场上几乎全部的CTP框架,还支持自己开发的CTP程序,兼容性非常的好,而且实盘转回测的成本很低,仅仅通过替换2个CTP原生库文件,即可实现回测。

    在2021年,VNPY官方计划推出VNPY仿真柜台的高级版本,届时会和很多期货公司进行合作。

    posted in VNPY CTA read more
  • wdg

    VNPY官网 :

    http://www.vnpy.cn
    入门篇《VNPY CTP 仿真柜台怎么用来实现CTP 程序TICK级回测》

    另外VNPY CTP仿真柜台还有一个同类产品Virtualapi,也是获得下方提到的第四类回测方式的专利授权的,受国家专利法保护。

    http://www.virtualapi.cn

    VNPY产品扎根于国内合规期货市场和A股市场,为金融机构和量化爱好者提供全系列的量化产品线, 包含了历史行情数据、实时行情数据、仿真回测、商业化软件(资管系统、跟单软件)。 其中推出的VNPY For CTP接口仿真柜台是VNPY官方的主打产品,这款产品的设计理念是“精细化回测”,自2018年推出以来受到了广大量化交易爱好者的喜爱,尤其是职业量化交易团队和量化私募基金的青睐。

    VNPY仿真回测系统在现有3类回测方案基础上开创性的提出了第4类回测,并提供了VNPY仿真回测柜台,本产品受国家专利法保护,但可以免费下载和使用。
    当前市场上包括VNPY仿真柜台回测系统在内的四类回测架构:

    (1)商业软件实现回测,这里软件开发策略比较容易,也比较完善,但是缺点也很明显,有些策略无法在该平台实现,而且自主设计功能非常有限,比较适合开发能力一般的交易者和对程序化要求较低又愿意付费使用的交易者。 这类平台的策略内容本质是文本内容,客户端加载策略后,将文本字符串进行分词处理,将不同的单词映射到程序相应的函数模块进行分析,所以执行效率较低。

    (2)在线回测平台 这类是基于网站的回测,使用编程语言以Python,javascript为主,可以通过在网站提交代码脚本,在服务商的服务器上进行回测,由此可见这类回测的CPU硬件资源是极其有限的,很难实现基于TICK的高精度回测。 由于开发的策略使用的方法依赖于平台提供的函数方法。所以在不同平台的函数方法并不是一致的。 而且最为关键的是,代码不是本地运行的,而是依赖第三方平台的方法,而且策略本身没有保密性可言;

    (3)各种基于原生API的回测框架,一般提供了第三方方法,而不是原生方法,所以这类回测很难移植到其他框架和平台运行。

    (4)为了克服上述三种量化交易回测技术存在的不足,VNPY的VirtualApi仿真API的回测技术出现了,在不改变原实盘策略代码情况下,仅通过模拟原生API的方法和库文件来实现仿真回测。

    具体来说,就是通过模拟原生交易API和行情API,例如通过模拟头文件的定义、模拟原生API的库方法的定义,使得回测和实盘交易代码,只需简单的将实盘代码替换为仿真API,对底层代码可不作改动或改动较少即可实现回测和参数优化。

    VNPY开创的仿真回测柜台量化回测方式,主要针对有一定编程能力的程序化交易者,如果已经基于原生API完成了策略开发,再转到VNPY仿真柜台实现回测是非常容易的,只需2分钟即可将实盘程序化交易代码转为回测程序,无需修改原有实盘策列代码。

    原理上说,就是因为这类量化交易回测技术是对原生API仿真的技术,不采用第三方方法,所以决定了VNPY仿真柜台所采用的基础支持市面上所有基于此api的所有框架。

    此外,VNPY仿真柜台倡导的“精细化回测”彻底改变了回测流程,可以更精准方便的微调策略。
    金融行业有句名言:如果不能募资,则量化交易投资生涯毫无意义。

    我有一个程序员朋友,自2015年偶然受一个职业炒手之托,开发一个CTP抢单程序而接触到CTP接口, 他在CTP研发上投入大量时间,到了2016年他接触到了投资人,投资人让他管理了4000万资金,利润条件是55分,通过CTP接口程序化交易,他的年化收益也做到了50%,到了2018年他的投资人又追加投资到1亿规模 。

    由于他的期货程序化交易业绩在期货保证金中心是可以查询证明的,很快期货公司又找上门,又为他发了几千万的产品。

    由此可见,募集资金一定不能脱离中国的金融环境,所以一定要在国家认定合规的市场里进行,这样才是正道。

    相反的,在非合规市场,不仅募集资金困难,还涉嫌违规,接口也不完善,白白浪费了很多时间。

    目前期货的量化交易环境是比较完善的,上海期货交易所推出了免费的CTP API接口多年,也是影响最大和使用最广泛的期货API接口,一大批期货交易爱好者从接触CTP的那一刻起就义无反顾的开始了自己的量化交易之路。

    对有一定编程能力的开发者,我们建议基于CTP 的API这类 自主开发程序化交易系统,有利于实现更复杂的策略、更灵活的交易操作。即可选用C++、Python、JAVA、C#等编程语言。 此外,如果选用C++这样的编译性语言,相比脚本语言,可以直接把程序编译成机器可读的二进制代码,因此效率和安全性都更高。
    CTP小白到实盘3个步骤

    (1)通过SIMNOW模拟账户开发测试,这一个阶段主要是功能测试;

    (2)通过VNY仿真回测柜台做功能测试,这一个阶段主要是策略验证;

    (3)实盘交易;

    如果需要先开发和测试,不用实盘交易的话,可以采用上期CTP的模拟账户进行测试和开发,相关网址链接如下: 上海期货交易所SIMNOW CTP模拟账户注册地址

    http://www.simnow.com.cn/

    CTP最新的原生API和说明文档也可以从这个网站下载

    http://www.simnow.com.cn/static/softwareDownload.action/

    上期CTP simnow模拟账户官网

    http://www.simnow.com.cn/static/softwareOthersDownload.action/

    CTP实盘、SINOW模拟账户、VNPY CTP仿真柜台 三者成交机制的异同

    CTP同时支持期货实盘账户和simnow模拟账户,采用simnow模拟账户和期货实盘账户开发出的程序是通用的,但simnow模拟账户和实盘账户成交和结算机制还有几点不同: (1)成交机制不同,模拟账户采用对手价成交,实盘在盘中撮合成交。

    (2)模拟行情比实盘行情慢很多,因采用模拟行情同时采用模拟交易,所以对信号和盈亏不会产生实质影响。

    (3)资金容量对滑点的影响 模拟账户成交不需要考虑资金容量导致的滑点,实盘账户在交易时因为会影响盘口,可能会导致滑点产生。

    (4)模拟行情除了和实盘一致的行情服务以外,还提供了24小时服务器进行测试,但不提供结算,适合用作CTP开发时的功能测试。 如果需要实盘账户,请去各大期货公司开户。获得几项信息即可接入CTP进行交易

    . brokeid . 投资者账户 . 投资者密码 . 期货公司交易服务器IP和端口号 . 期货公司行情服务器IP和端口号
    

    VNPY CTP仿真柜台和SIMNOW是类似的。

    VNPY CTP仿真柜台可以看作本地部署的SIMNOW+快速TICK回放+资金曲线绘制功能。

    TICK数据全部存储在本地的。

    此外VNPY CTP 仿真柜台可以通过修改setting.ini来自由设置滑点和手续费,对于账户接入信息(brokeid、投资者账户、投资者密码、期货公司交易服务器IP和端口号、期货公司行情服务器IP和端口号)随便填写就可,回测流程中只按此返回,并无其他实际意义。
    VNPY仿真柜台和市场上其他量化交易框架的区别

    以上期所CTP为例,只提供原生API就是C++的,这些API大多是采用C++封装的DLL或SO库文件。

    由于原生API对策略开发者而言并不友好开发周期较长,所以涌现了一批Python技术为代表的量化交易框架二次包装的量化交易框架。市场上这些CTP开源框架,但本质上都是通过调用原生C++的库文件来实现,

    比如Python 框架可能用的是Ctypes技术,JAVA则可能用的JIN或swig技术封装。

    这些框架相对于原生的C++ API,是更偏上层的东西,提供了大量第三方方法、函数、类等,这些方法、函数、类是这个框架所特有的。

    而VNPY CTP仿真柜台是和CTP api是同一个级别的底层库,设计原则是尽量不采用第三方方案,以CTP标准进行设计。

    所以市场上所有针对CTP的框架,其实都可以用在VNPY CTP仿真柜台上。

    VNPY CTP仿真柜台开创的全新的量化交易回测方式,兼容几乎全部的第三方CTP框架。
    支持的编程语言和CTP框架

    对于各种CTP 编程语言框架,例如Python框架、Java框架、C#框架等,VNPY仿真柜台的实现是一样的,因为这些语言的框架本质上还是调用C++的库文件。 支持各种自编CTP程序和各种编程语言框架,例如C++、Python、JAVA、C#等。 支持 VN.PY、 PyCTP等所有框架和自编程序。 上海期货交易所只提供了 C++原生DLL,对于其他语言均是第三方封装了,只能称为CTP框架。
    支持的操作系统

    VNPY底层仿真回测系统支持Windows操作系统,版本要求Windows7、Windows2008及以上。
    如何理解VNPY官方倡导的“精细化回测”?

    VNPY官方认为,量化交易回测不仅要测试参数,更要测试策略逻辑和子方案组合。

    所谓精细化回测,就是可以追溯到每一笔交易记录的信号触发变量值和逻辑分支,这一点对于CTP开发者通过日志功能尤为容易实现,而且VNPY的仿真柜台文件自带交易记录写入功能,至于资金曲线图形化显示功能则考虑到需要尽可能比较不同策略子方案资金曲线的不同你,则尽量不要显示文字,而对于K线图表对精细化回测而言是不太重要的。

    对精细化回测的基础条件则必须是VNPY的TICK级回测,而这一点在下文提到的前3类回测类型中基于数据量庞大和带宽成本的原因都很难实现,而VNPY提出的仿真柜台方案开创性的完美的解决了这个问题。

    VNPY仿真回测柜台的这种现实方式也许对一些喜欢K线显示交易信号的开发者不习惯 ,但实际上只有VNPY倡导的这种资金曲线显示方式才能更好的表达出量化交易方案微调子方案之间的优劣的异同。

    VNPY仿真回测系统解决了第三方回测框架各自一套费标准方法的问题,通过对原生API进行仿真来实现回测,这样做的好处是可以提供和原生API一致的方法,不再依赖于平台,所以VNPY仿真回测系统支持市场上绝大多数的CTP框架。

    VNPY并没有采用市场上各种量化交易框架常用的架构,由于VNPY仿真回测柜台是定位于TICK级的仿真回测,还考虑兼容市面上接口下的各种框架,最终VNPY开创的独特的回测方式成为一种全新的量化交易回测方式。

    VNPY仿真回测目前主要提供了基于CTP接口(支持商品期货、股指期货、商品期权、股指期权)的仿真。

    VNPY仿真柜台实现量化回测对比前三类量化软件回测具备极大的优势,使得量化交易真正实现的精细化回测的付诸于实施,可以真正避免了和真实盘口不一致的情况,几乎100%还原了真实的价格变化,是真正面向职业开发者的好产品。

    常见量化交易软件回测曲线是这样的
    常见量化交易软件常见回测曲线

    VNPY仿真回测柜台资金曲线是这样的

    通过下图可以看出,VNPY仿真柜台可以精确的反映了TICK级回测的精度资金曲线分时图,和实盘资金曲线取样比较达到了99.9%的一致
    VNPY仿真回测柜台资金曲线
    采用VNPY CTP仿真回测柜台测试策略逻辑和子方案组合实施例:

    下面以一个策略模板基础上开发的二个子策略做资金曲线对比 回测3分钟(4小时TICK数据),趋势策略采用了A,B2套不同的止损方案对比 合约上海期货交易所 ni2003 2019年11月4日~2019年12月17日这段时间的TICK数据进行回测,资金曲线图如下所示:

    回测四小时TICK 数据

    回测数据2019年11月4日~2019年11月7日

    回测数据2019年11月4日~ 2019年12月17日

    由上面的资金曲线分时图进行对比和分析,可以很容易得出结论,B方案更合理,B方案收益比A方案收益更高。

    如果以B方案基础,再增加一个交易条件(开仓条件、平仓条件、止损条件、止盈条件、过滤条件等),就可以进一步产生B1方案、B2方案、B3方案、B3方案等,接着再做一次资金曲线的对比回测,获得最优方案。

    如此循环往复若干次后,就可以得到一个非常合理完美的策略。

    这种通过VNPY开创的第四类仿真回测“精细化回测”所倡导的研发策略的方式,相比仅仅靠参数优化的方式是更加容易开发出优秀量化交易策略的。

    该大类趋势策略,通过30组子方案得测试优化,获得效果最好得7个子策略资金曲线如下,可完美用于实盘

    通过下面2张流程图(原生API典型C++策略接入实盘架构、 VNPY仿真柜台实现回测架构 )可以很直观的理解VNPY仿真柜台和CTP原生API的区别,进而理解VNPY仿真柜台开创的第四类回测方式。

    原生API典型C++策略接入实盘架构

    VNPY仿真柜台实现回测架构

    无论是你自己开发的CTP系统还是CTP框架,甚至是快期V2交易客户端,都可以通过替换dll方式接入VNPY仿真柜台柜台。
    VNPY仿真柜台具备以下优点:

    (1)回测精度高,比第二类回测精度高出2个数量级,也就是100倍左右; (2)性能好,可非常容易通过提升硬件来加快回测速度; (3)兼容性高,不依赖第三方方方法,原有策略转回测极容易,功能开发的自由度高; (4)用户覆盖面广,支持C++框架,Python框架,JAVA框架,C#框架在内的所有API框架。支持多种语言。不管你是C++程序员,还是Python程序员,JAVA程序员都能很好满足您的代码回测要求; (5)策略保密性好,比如C++开发的策略,可以采用加密壳进行保护,策略在指定的本地计算机或托管服务器运行,可做IP绑定、硬件绑定、账户绑定,所以安全性极高。

    VNPY仿真回测这项底层仿真回测技术是和编程语言无关的,并且没有第3方平台提供的方法,可以在不修改原有代码的前提下实现回测。

    VNPY仿真回测支持各种自编CTP程序,例如C++、Python、JAVA、C#等,同时还支持各种编程语言框架和自编程序。几乎是无所不兼容,这样的产品避免了CTP策略开发者过于依赖平台的窘境。

    大多数基于K线的回测都会丢失不少细节的,会产生较大的回测误差,会误导策略开发者。

    此外,由于VNPY仿真回测是基于TICK的回测,比大多数第三方软件回测精度高2个数量级以上,实现更精细化的回测。

    可以真正帮助策略开发者掉入量化交易回测陷阱。

    VNPY仿真回测系统提供了基础免费版本,对所有人免费。

    VNPY仿真回测柜台在VNPY开源框架基础以外,真正实现了和平台无关的基于TICK级的精细化回测

    VNPY仿真柜台官网是,承诺只做国内合规市场的服务 http://www.vnpy.cn

    而域名后缀为com的那个网站是做数字货币的非合规市场的境内违规网站。

    目前VNPY按照国家的法律法律,对VNPY仿真柜台技术做了专利申请保护,现在已经积累了不少私募基金的客户用这个产品。

    而VNPY的数据服务是基于网盘提供的,以后可能会升级为付费客户端同步下载数据的服务,这样可以更好的为大家实现仿真回测数据的的下载。

    VNPY仿真柜台支持股指期货仿真回测,支持商品期货仿真回测,可以将VNPY仿真柜台视为本地SIMNOW+快速回放TICK数据

    无论您之前是CTP开发的策略,都可以过渡到VNPY仿真柜台来做回测。 VNPY仿真柜台支持多种编程语言,开创了第4类回测。
    量化交易从哪个市场做起?

    对刚开始接触量化交易的爱好者来说,关于选择哪个市场进行量化交易做起,我们给出的结论是:以上市场中,符合中国金融环境并且最适合学习量化的市场是中国国内期货市场。理由如下:

    (1)符合国内金融环境,有能力就有机会在期货市场发自己的CTA相关基金产品。

    (2)有了期货交易经验和资金管理经验,很容易就可以过渡到管理A股市场的相关资金或产品。

    (3)期货市场和国外很多成熟市场一样是T+0制度。

    (4)国内程序化支持最完善,例如上海期货交易所的CTP接口,郑州商品交易所和大连商品交易所也从推出了自己的API,这些交易所官方提供的API免费、公开、合法,并且有众多的开源框架可以使用,更不像证监会对A股程序化接口做了诸多限制而难以实施。

    (5)A股市场由于行情持续时间较长,周期过大,导致容易蒙对行情而无法领悟真正的量化规律。而期货市场瞬息万变,在期货这样的市场里进行量化交易的学习更容易真正发现交易的真谛。

    (6)鉴于期货市场存在主力品种投机性强、流动性好、套利机会多等特点,期货市场更适合做量化交易。

    有了上述理由,VNPY仿真柜台回测系统以国内期货CTP接口进行仿真,提供基于CTP仿真得VNPY仿真回测系统版本。
    VNPY的专利技术可以在VNPY知乎官方专栏查看

    https://www.zhihu.com/org/vnpy/posts

    基于VNPY仿真回测系统受到了VNPY老用户的欢迎和CTP开发者的欢迎,还包括了私募基金以及个人CTP开发者。

    VNPY官方计划在2021年推出VNPY仿真柜台高级版本,高级版本计划提供基于多合约的同步回测,以及套利合约回测,加上批处理回测功能,可以指定参数组合,用多个进程副本来实现回测,最后汇总回测结果,给出清晰图形化展示。

    由于VNPY开创的第四类仿真回测优点极其明显,在未来,一定会有前三类回测用户逐渐转向VNPY开创的第四类仿真回测柜台系统上来。
    TICK数据获取

    量化投资的关键要素首先是数据,数据是第一要位,尤其是高质量的数据,假如没有数据就无从做回测,没有好的数据就无法得到正确的结果。 量化投资关键步骤 (1)做数据采集和整理,主要包括数据规划、采集、清洗处理、结构化、API化。因为从各个源头去采集数据的话,需要做很多工作,这部分占了量化模型实现百分之六十左右的工作量。 (2)策略开发和调优,这部分主要包括设计策略模型,编码实现模型,通过数据进行回测,根据结果进行优化改进,这部分主要占据大约百分之三十的工作量。 (3)模拟和交易,策略实盘之前要进行模拟测试,根据实际的行情进行模拟交易跟踪,模拟通过之后进行实盘交易,资金量级的大小会影响策略的效果,不同的阶段要进行很谨慎的测试和模拟。

    VNPY是一套基于Python的开源量化交易系统开发框架, 在开源社区6年持续不断的贡献下一步步成长为全功能量化交易平台,目前国内外金融机构用户已经超过500家,包括:私募基金、证券自营和资管、期货资管和子公司、高校研究机构、自营交易公司、交易所等。

    托管是指数据中心内属于证券交易所的专用空间。它用于获得执行订单的速度(以纳秒为单位),尽可能接近股票交易所的交易引擎。 基于VNPY数据采集工具采集的TICK数据

    通过VNPY提供得数据采集工具和数据下载,可以完美解决VNPY仿真回测系统得回测数据得问题。

    分7个目录2017.11~2018.11期货全品种TICK数据解压后100Gb(DataCollect格式)百度网盘下载 网盘下载的数据 CSV数据文件字段顺序:

    localtime (本机写入TICK的时间),
    InstrumentID (合约名),
    TradingDay (交易日),
    ActionDay (业务日期),
    UpdateTime (时间),
    UpdateMillisec(时间毫秒),
    LastPrice (最新价),
    Volume(成交量) ,
    HighestPrice (最高价),
    LowestPrice(最低价) ,
    OpenPrice(开盘价) ,
    ClosePrice(收盘价),
    AveragePrice(均价),
    AskPrice1(申卖价一),
    AskVolume1(申卖量一),
    BidPrice1(申买价一),
    BidVolume1(申买量一),
    UpperLimitPrice(涨停板价),
    LowerLimitPrice(跌停板价),
    OpenInterest(持仓量),
    Turnover(成交金额),
    PreClosePrice (昨收盘),
    PreOpenInterest (昨持仓),
    PreSettlementPrice (上次结算价)

    知识产权

    专利:

    商业版本请访问

    http://www.vnpy.cn

    关于商业版本和免费版本的区别如下图:

    附加课程1:《C++ ctp策略程序接入VNPY仿真柜台实现回测步骤》

    1.下载VNPY仿真柜台

    从VNPY官网下载

    http://www.vnpy.cn

    下载后解压
    

    解压后有如下2个目录:

    打开第一个目录 这是一个Visual Studio2015 CTP C++ Demo项目

    双击 .sln文件打开项目

    红圈圈出的是期货账户信息

    在项目上右键“重新生成”即可编译为exe程序

    根据下图类似路径可以找到编译好程序的路径位置

    这样编译好的策略程序就可以运行实盘了

    下面来讲解一下这个实盘CTP策略程序 如何结合通过VNPY CTP仿真柜台实现TICK级回测 典型的,CTP的原生API为下图部分

    VNPY仿真柜台的API如下图

    其中.lib文件和.h文件是编译中使用的,.dll文件是编译好后倍AutoTrade.exe调用的,我们要实现实盘转回测只要将.dll文件替换即可。

    如下图,其中圈红色部门的文件为替换文件,蓝色圈出的文件为VNPY仿真柜台API特有文件,拷贝到该目录下即可。 (1)setting.ini 手续费和滑点设置文件; (2)list.csv 数据文件路径设置文件; (3)Graph.exe 资金曲线分时图绘制程序,在运行AutoTrade.exe时会自动打开; 也可以待回测完成,打开Graph.exe,再将资金曲线数据文件qy.csv拖入Graph.exe窗口,即可绘制资金曲线分时图;

    其中list.csv打开如图所示

    特别注意: (1)list.csv数据文件里的合约代码,必须和订阅的合约要一致; (2)list.csv的数据文件,必须是同一个合约; (3)暂时不支持多合约测试,计划未来版本支持; (4)暂时不支持套利测试,计划未来版本支持;

    比如图中是./Data/20200627/rb2011.csv 就必须在C++代码订阅的是rb2011这个合约,目前Virtualapi不支持订阅多合约和套利合约,。

    VNPY For CTP目录和CTP API目录,这2个目录下的DEMO,代码完全一样, 将CTP API中的thostmduserapi.lib、thostmduserapi.dll、thosttraderapi.lib、thosttraderapi.dll 这4个文件替换为VNPY CTP仿真柜台文件后,重新编译,将编译好的exe程序目录放入Graph.exe、price.exe、list.csv这3个文件,再次运行AutoTrade.exe 就开始回测了。

    实际操作中 ,还可以简化,由于VNPY for CTP库文件中,.h、.lib和CTP的一致,只要替换dll接口,这样就意味着连策略程序只需替换thostmduserapi.dll、thosttraderapi.dll这2个文件即可实现回测,当然setting.ini 、list.csv、Graph.exe 、price.exe也要放到程序目录下,即转为了仿真回测柜台。

    list.csv保存的是依次读取的tick数据文件的路径。 通过直接替换CTP的api,同时将list.csv、Graph.exe、price.exe放到程序编译的目录下面。 直接运行,直接进行回测。

    qy.csv保存资金曲线数据 md.csv保存回测期间的分时数据 clean.bat 运行清理历史数据文件。 初始资金为50万,暂时不支持修改初始资金。

    VNPY仿真柜台设计的原则就是无需在原实盘策略代码做任何修改就可以实现量化交易回测。
    附加课程2:《快期接入VNPY仿真柜台原理实现》

    快期是期货行业使用最广的一款客户端软件,快期也是基于CTP接口的客户端。

    我们在这里以快期为例,举例说明来理解VNPY CTP仿真柜台的架构。

    快期几乎支持所有期货公司,目前各个期货公司网站都有快期的V2或V3版本,该软件定位是人工下单交易端。

    下载后安装完毕,桌面出现图标

    我们看下快期安装目录,但这并不是CTP核心文件目录

    我们进入到C盘用户的目录下寻找AppData目录,快期真正的核心程序保存在这个目录下,但AppData默认是隐藏的,我们需要开启文件选项

    再进入AppData目录,可以看到多个快期的安装目录, 其中 Q72_dfqh_2_standard 表示东方期货的快期V2版本 Q72_ebfcn_1_standard 表示光大期货的快期V2版本 Q73_gfqh_2_standard 表示广发期货的快期V2版本 Q72_hongyuanqh_1_standard 表示宏源期货的快期V2版本

    我你们以宏源期货的快期为例,进入到 Q72_hongyuanqh_1_standard 目录下

    进入快期目录,寻找CTP 二代的库文件 thosttraderapi_se.dll、thostmduserapi_se.dll

    将这2个文件替换为VNPY仿真柜台的版本,然后登录快期

    输入任意账户和密码,快期登录成功,这样就骗过了了快期程序登录到了VNPY仿真柜台。
    附加课程3:《VNPY CTP Python框架接入VNPY仿真柜台实现回测步骤》

    VNPY 开源框架是针对Python封装的框架,而VNPY仿真柜台不仅限于Python,他支持各种编程语言的框架。 如何实现VNPY开源框架通过VNPY仿真柜台实现回测呢?

    很简单,只要把VNPY CTP开源框架下的所有CTP文件thostmduserapi_se.dll、thosttraderapi_se.dll替换为VNPY仿真柜台提供的同名DLL文件,并将setting.ini、list.csv、Graph.exe这3个文件复制到程序目录,再以运行即可实现接入仿真柜台进行回测。

    只需花1分钟时间,就可以将VNPY开源框架的实盘策略转换为TICK级回测。
    版权说明

    VNPY仿真柜台版权归http://www.vnpy.cn 经营者所有

    posted in VNPY CTA read more
  • wdg

    vnpy最近大动作,推出了基于CTP的仿真柜台,可以这样说它可以完全替代了上期SINMNOW的仿真系统,可以当作本地的SINNOW系统自行部署,但它和SINNOW的不同在于,SINNOW主要适用于功能测, 而VNPY CTP仿真柜台则是用于仿真回测,它等同于本地SIMNOW+快速回访TICK。

    从VNPY推出后,解决了VNPY开源框架的回测难题,并且还适合各种CTP框架,可以说VNPY是一款具备自主知识产权的产品,VNPY开创一套全新仿真回测模式 。

    支持交易所:上海期货交易所、大连期货交易所、郑州期货交易所、中金所、能源所
    支持期货公司:宏源期货、华安期货、光大期货、广发期货等所有149家期货公司

    即将踏入2021年,VNPY官方计划在新的2021年推出VNPY仿真回测的高级版本。
    请各位VNPY Python程序化交易和量化交易爱好者,拭目以待吧。

    请认准VNPY官网
    http://www.vnpy.cn

    由于VNPY 仿真柜台比市场上第三方软件回测精度高出100倍以上,所以量化交易回测还得用VNPY仿真柜台才是最佳选择。

    posted in VNPY CTA read more
  • wdg

    com结尾的是VNPY非官方的大杂烩产品
    切记 www.vnpy.cn才是VNPY官网

    VNPY仿真柜台推出以来,再也不是那个低能低效,非合规市场的那个VNPY了,VNPY仿真柜台第一期支持CTP的接口仿真,方便CTP开发者通过VNPY仿真柜台通过更复杂精细化回测来对更复杂的策略逻辑实现验证。

    VNPY仿真柜台已经被众多私募基金,期货公司的大客户选用。

    VNPY仿真柜台的官方网址是http://www.vnpy.cn
    VNPY仿真回测系统在现有3类回测方案基础上开创性的提出了新的回测方案 ,并受国家专利法保护 。由于VNPY开创的第四类仿真回测优点极其明显,在未来,一定会有前三类回测用户逐渐转向VNPY开创的第四类仿真回测柜台系统上来。

    VNPY量化交易仿真柜台扎根于国内合规A股市场和期货市场,为量化爱好者和私募基金等金融机构提供全系列的量化产品,包括历史行情数据、仿真回测、商业化软件(跟单软件、资管系统)、实时行情数据、。VNPY仿真柜台这款产品的设计理念是“精细化回测”,自2018年推出以来受到了广大量化交易爱好者的喜爱,尤其是职业量化交易团队和量化私募基金的青睐。

    VNPY仿真回测系统受到了CTP程序化交易爱好者VNPY老用户的欢迎和的欢迎,还包括了私募基金以及个人CTP开发者。

    VNPY官方计划在2021年推出VNPY仿真柜台高级版本,在高级版本里计划提供基于多合约的同步回测,以及套利合约回测,加上批处理回测功能,可以指定参数组合,用多个进程副本来实现回测,最后汇总回测结果,给出清晰图形化展示。

    posted in VNPY CTA read more
  • wdg

    VNPY仿真回测

    VNPY仿真回测GITHUB下载地址

    https://github.com/vnpycn/vnpy-pro

    支持多种编程语言,包括C++、Python、Java、C#、Golang、易语言等 。
    甚至支持快期接入。

    打个比方:就像有一个叫CTP程序化的照相机,有一套普通镜头叫做CTP原生API,还有一套广角镜头叫做VNPY仿真柜台,但无论哪套镜头拍出的照片,都可以被Photoshop后期处理调整对比度,亮度等等。而VNPY的Python框架,海风,PyCTP,Quicklib,快期就相当于后期Photoshop后期处理的这一步。

    VNPY CTP仿真回测.支持的操作系统

    VNPY底层仿真回测系统支持Windows操作系统,版本要求Windows7、Windows2008及以上。

    VNPY CTP仿真回测.支持语言框架

    支持各种自编CTP程序和各种编程语言框架,例如C++、Python、JAVA、C#等。
    支持海风、VNPY、Quicklib、PyCTP等所有框架和自编程序。
    上海期货交易所只提供了 C++原生DLL,对于其他语言均是第三方封装了,只能称为CTP框架。
    当然对于各种CTP 编程语言框架,例如Python框架、Java框架、C#框架等,VNPY仿真柜台的实现是一样的,因为这些语言的框架本质上还是调用C++的库文件。

    posted in VNPY CTA read more
  • wdg

    000f9971-86c0-4ab0-9619-85ab688606b2-图片.png

    而VNPY仿真回测柜台资金曲线是这样的

    bc94ac89-81bd-40af-9998-ce4149b80f07-图片.png

    posted in VNPY CTA read more
  • wdg

    今天发布了VNPY CTP仿真回测柜台

    VNPY CTP仿真柜台2.09发布支持所有CTP回测框架,可以丢弃第三方回测框架了
    VNPY仿真回测柜台

    2021年计划发布高级版本,计划开发的功能为:

    会批处理回测,复制多个备份采用不同参数,最后汇总给出结论,更多复杂图形显示。

    VNPY仿真回测柜台2.09 请在VNPY官网下载
    http://www.vnpy.cn

    用法见
    http://www.vnpy.cn/comm/topic/3401/

    https://www.zhihu.com/question/272156840

    开发环境:

    使用Visual Studio2015、Visual Studio2017及以后的版本打开Demo里的MyAutoTrader.sln,
    可以C++ Demo为基础进行二次开发

    当然VNPY CTP仿真柜台也支持多种编程语言,支持所有基于CTP的开源框架和自编程序,
    请根据框架和自编程序特点替换DLL和lib文件重新编译。

    Bin目录是编译好的程序,可以直接运行调试
    CTP Demo/Bin(已编译)/AutoTrader.exe 是原生CTP的Demo,已编译好的应用程序。
    VNPY For CTP Demo/Bin(已编译)/AutoTrader.exe 是VNPY Demo已编译好的应用程序,运行直接进行回测。

    上期CTP官网
    可以注册模拟账户,下载原生CTP api,CTP Demo可用于该模拟的程序化交易,
    http://www.simnow.com.cn/

    Ver2.61
    关闭控制台输出文字(蓝色文字);
    避免了回调函数安全性问题导致持仓和资金查询等方法无法正常回调的问题;

    Ver2.60
    针对CTP Ver6.3.15 增加至4个版本
    32位的Release
    32位的Debug
    64位的Release
    64位的Debug
    完善对中金所合约IF、IH、IC、T、TH支持

    Ver2.521
    减少不必需要文字输出
    Ver2.52
    更新API输出字体为蓝色
    Ver2.51
    增加对数据文件和订阅合约不一致的校验
    增加只允许订阅一个合约的校验,多合约订阅和回测将在未来的高级版本提供

    Ver2.5
    修复穿透式监管版本的API在部分计算机无法回测的问题。
    穿透式版本升级至2.5
    非穿透式版本保持2.3

    Ver2.4
    提供最新的CTP穿透式版本的VirtualApi,针对CTP 6.3.15版

    Ver2.3
    增加对查询投资者持仓响应OnRspQryInvestorPosition
    增加对查询资金账户响应OnRspQryTradingAccount回调支持

    Ver2.2
    功能升级

    Ver2.1
    修复了MD和TD资金数据同步的Bug
    增加配置文件setting.ini,
    可以通过修改setting.ini自由设置
    (1)初始资金
    (2)开仓手续费
    (3)平仓手续费
    (4)滑点

    posted in VNPY CTA read more
  • wdg

    VNPY官方网址

    先来做一个简单的测试,看看你在学习和使用vnpy的过程中有没有碰到过以下的疑问:

    CTA策略中的变量,为什么有的前面要加self,有的却不用?
    手头有一批CSV历史数据文件,如何用脚本来一次性批量导入数据库?
    修改了vnpy文件夹里的源代码,但不管怎么重启都无法生效?
    想要录制全市场的TICK行情数据,要怎样配置DataRecorder模块?
    

    如果你的回答是【没有】,那么可以直接退出不用继续往下看了,你已经很好的掌握了Python这门语言。

    如果回答是【有】,那么这门新的课程《量化交易零基础入门系列 - 30天解锁Python量化开发》相信正好能帮到你。

    这几年随着vnpy的用户数量不断增加,用户群体也从最初的专业机构量化交易员(老用户)逐渐下沉:有些刚从TB、文华之类的传统量化平台转过来,有些之前主要做的是主观交易刚开始接触量化,有些是对量化交易感兴趣的财经专业学生等等(新用户)。

    而对于这些vnpy新用户来说,比起一上来就跟着老用户学CTA策略怎么写或者期权波动率交易怎么做,更重要的是先学好Python这门语言来解锁自己的量化开发能力。

    否则就可能出现目前我们社区里一些新用户的情况:来回在论坛和QQ群里学习提问,折腾几个月却连一个完整能跑的Python程序都写不出来。工欲善其事必先利其器,这句老话在量化交易领域也同样适用。

    整个课程完全针对Python零基础的初学者设计,目前已经计划的课时是50节。制作过程中也会根据大家的反馈增加额外的实战案例讲解课时,内容大纲如下:

    量化交易零基础入门系列 - 30天解锁Python量化开发课时 章节 课题
    1

    学前准备

    认识Python
    2

    安装VN Studio
    3

    Hello World!
    4

    编辑器的选择
    5

    Jupyter交互式开发
    6

    Github代码仓库
    7

    基础语法

    变量类型
    8

    数学运算
    9

    条件判断
    10

    循环语句
    11

    字符串深入
    12

    数据容器

    顺序列表
    13

    强大的字典
    14

    无序集合
    15

    不变的元组
    16

    容器的嵌套
    17

    函数使用

    什么是函数
    18

    参数和返回值
    19

    函数性能测试
    20

    类型声明
    21

    面向对象

    开发一个类
    22

    对象的函数
    23

    类的继承
    24

    方法重载
    25

    可变 vs 不可变
    26

    CTA策略的变量
    27

    枚举类
    28

    定制magic method
    29

    错误处理

    异常的概念
    30

    try…except
    31

    代码调试
    32

    内置模块

    datetime
    33

    底层接口的时间处理
    34

    csv
    35

    载入CSV历史数据
    36

    json
    37

    系统配置的存储
    38

    pathlib
    39

    VN Trader运行时路径
    40

    os/sys
    41

    环境变量和模块加载
    42

    mail
    43

    实现微信实时通知
    44

    logging
    45

    日志记录引擎
    46

    math
    47

    模块管理

    pip安装和更新
    48

    模块依赖
    49

    手动安装vn.py
    50

    寻找资源

    课程目前已经上线,原价399元,还是老规矩前100名用户8折(319元)。 购买和观看(点击底部菜单栏的【进阶课程】进入)。推荐使用PC微信打开,视频分辨率更加清晰。
    http://www.vnpy.cn/comm/topic/3401/

    posted in VNPY CTA read more