利用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: 用來做交易日判斷的
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章