vn.py量化社区
By Traders, For Traders.
Administrator
avatar
加入于:
帖子: 4130
声望: 230

2.0重构的好处开始逐渐体现出来了,新版本的发布速度在显著加快,2.02新增功能如下:

交易接口

年初以来币圈暖风阵阵,本版本添加的全部为数字货币相关的接口:

  • HuobiGateway,火币数字货币交易所接口,升级兼容了火币新的心跳机制,解决频繁断线的问题
  • BitfinexGateway,Bitfinex数字货币交易所接口
  • OkexGateway,OKEX数字货币交易所接口(现货的)
  • OnetokenGateway,数字货币聚合交易平台接口

下个版本v2.0.3的接口方面会主要针对期货和证券(请放心吧~)。

CTA回测模块

之前CTA策略的回测主要是通过Jupyter Notebook在交互式开发的状态下,通过BacktestingEngine来实现,这种Python风格的科学计算研究模式提供了最大的自由度,但对于一些初学者来说可能还是有点难上手,解决方案就是新推出的CtaBacktester模块:

description

现在用户在基于CtaStrategy的策略模板写好自己的策略后,可以和其他的量化交易平台类似的方式,完全通过GUI图形界面(点鼠标~)的方式来实现策略回测、参数优化以及历史数据下载(需要RQData账户)等功能,逐渐学会和习惯Python风格的研究后再过度到使用Jupyter Notebook。

历史数据缓存

每次的CTA策略回测中,可能有一半以上的时间耗费在了从硬盘上的读取数据到内存中,load_bar_data算是真正的热点耗时函数。

在考虑了更换其他数据库工具(HDF5、Influx等)、使用内存数据库缓存(Redis)等方案后,最终选择直接使用functools.lru_cache装饰器,通过同一进程内的字典数据缓存来实现相同数据的缓存和重复使用,在绝大部分回测情景下(调整回测配置、进行参数优化等不改变历史数据窗口的操作),能够完全节约掉二次加载数据的时间(内存直接访问字典几乎无耗时),从而实现了约2.5倍的参数优化提速(原来要60秒跑完的现在只要23秒,除了第一次加载数据外后续都再也没有IO开销)!!!还只改了一行代码~

就是在load_bar_data函数上加了个装饰器@lru_cache

算法交易模块

对主要用于算法交易执行的AlgoTrading模块同样进行了简化和重构,目前提供了TWAP、Iceberg、Sniper三个之前大家反应最有用的执行算法,这波币圈的IEO行情里希望有所用武之地。

description

数据库支持

添加了对于MySQL和PostgreSQL的支持,同时加回了MongoDB数据库支持,但由于需要兼容SQL和NoSQL两种数据库范式,所以ORM层的对象结构发生了一些变化(主要是vt_symbol),导致和v2.0.1之前的ORM不再兼容,使用Sqlite的用户需要自行对数据库表做下调整(或者如果没有特别重要的数据推荐直接删除用户目录/.vntrader/database.db文件)。

更新方式

VN Station的自动更新功能目前暂时无法使用,VNConda的用户可以通过VNConda Prompt依次执行以下三个命令进行手动更新:

pip install https://pip.vnpy.com/colletion/rqdatac-2.1.0.tar.gz
pip install https://pip.vnpy.com/vnpy/vnstation-2.1.3.tar.gz
pip install https://pip.vnpy.com/vnpy/vnpy-2.0.2.tar.gz
Member
avatar
加入于:
帖子: 7
声望: 0

支持!!! 感谢

© 2015-2019 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号-3