作者:望舒灬寒 | 来源:互联网 | 2023-08-31 13:03
2.0重构的好处开始逐渐体现出来了,新版本的发布速度在显著加快,2.02新增功能如下:交易接口年初以来币圈暖风阵阵,本版本添加的全部为数字货币相关的接口:HuobiGateway:
2.0重构的好处开始逐渐体现出来了,新版本的发布速度在显著加快,2.02新增功能如下:
交易接口
年初以来币圈暖风阵阵,本版本添加的全部为数字货币相关的接口:
- HuobiGateway:火币数字货币交易所接口,升级兼容了火币新的心跳机制,解决频繁断线的问题
- BitfinexGateway:Bitfinex数字货币交易所接口
- OkexGateway:OKEX数字货币交易所接口(现货的)
- OnetokenGateway:数字货币聚合交易平台接口
下个版本v2.0.3的接口方面会主要针对期货和证券(请放心吧~)。
CTA回测模块
之前CTA策略的回测主要是通过Jupyter Notebook在交互式开发的状态下,通过BacktestingEngine来实现,这种Python风格的科学计算研究模式提供了最大的自由度,但对于一些初学者来说可能还是有点难上手,解决方案就是新推出的CtaBacktester模块:
现在用户在基于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行情里希望有所用武之地。
数据库支持
添加了对于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
社区2019年第三次线下活动
本周日下午将举办vn.py社区2019年第三次线下活动公告,主要内容两个:
- 如何在Python中使用遗传算法进行策略优化(没错~我们终于决定讲这个了)
- 老虎证券量化解决方案以及海外私募服务体系
时间:4月27日 14:00-17:00
地点:上海浦东嘉里城wework
场地费:免费(感谢老虎证券赞助场地费!!!)
报名请扫描下方二维码:
扫我报名~