zoukankan      html  css  js  c++  java
  • 利用rqalpha完成一个股指期货的回测(一)

    目标:实现一个针对股指期货以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
     
    class TradingDatesStore: 用来做交易日判断的
  • 相关阅读:
    Parse Notification for IOS
    微信回调:Activity 调用 finish()之后,该acitivity的实例并不为空
    Android Studio 使用微博SDK Demo的问题总结
    Android Activity切换动画
    分享那些坑
    TextColor java 代码
    奇怪的Bug: 点击事件穿透应用,激活桌面的另一个应用
    FragmentStatePagerAdapter VS FragmentPagerAdatper
    android:fillViewport="true"
    用两种方式获取Bitmap的不同结果
  • 原文地址:https://www.cnblogs.com/luhouxiang/p/12748260.html
Copyright © 2011-2022 走看看