利用rqalpha完成一个股指期货的回测(一)

左心房为你撑大大i 提交于 2020-04-22 13:14:40

目标:实现一个针对股指期货以boll为主的综合指标的回测。

程序利用rqalpha v3.4.0的完全版与v3.4.1的合并版,目标是将其完全改造,删除不需要的模块,只针对期货。使得代码规模成倍缩小,降低复杂度。

首先看程序入口:


  
  
rqalpha.__main__:entry_point

即rqalpha.__main__.entry_point()函数为程序起点。

然后在这里面完成两样,

inject_mod_commands()是将config配置, mod模块注入

cli(obj={}) 为调用命令行参数,根据参数调用对应的函数。

 

1 update-bundle:

通过参数:update-bundle进行数据更新

附调试图

image

通过命令行参数:update-bundle直接映射到__main__.py中的函数: update_bundle()

default_bundle_path: 'C:\\Users\\lu\\.rqalpha\\bundle'

url: 'http://cdn.ricequant.com/bundles_v3/rqbundle_20200420.tar.bz2'

将之下载下来后解压,放在path中,更新数据完成。

 

2 mod list

附调试图:

image

通过参数mod调用

通过后续转为子命令,通过

locals()[cmd](params)完成内嵌函数的调用
最终调用get_mod_conf():
default_mod_config_path:  'C:\\work\\rqalpha\\rqalpha\\utils\\..\\mod_config.yml'
user_mod_conf: 'C:\\Users\\lu/.rqalpha\\mod_config.yml'
 
两个模块配置,default_mod_config_path为默认模块配置, 程序启动后通过enable或是disable调用会将新的模块配置写入'C:\\Users\\lu/.rqalpha\\mod_config.yml',
然后再次展现模块配置时会直接调用用户的模块配置,而忽略原先的模块配置。
 

3 buy_and_hold

image
Parameters: 
 
 

  
  
run -f ../rqalpha/examples/buy_and_hold.py -s 2016-05-01 -e 2019-10-01 --account stock 100000 --frequency 1d --plot
模拟买卖的demo实际上运行的是run参数
在__main__.py中最终调用def run(**kwargs)实现模拟的各种功能
image
 
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!