回測是量化交易不可缺少的組成部分,本文是 vnpy 回測引擎原理筆記
vnpy 官方提供了兩個 jupyter notebook 作為 demo,**檔案在源**中的 examples/cta_backtesting 目錄:
backtesting.ipynb
:
建立回測:
engine = backtestingengine()
engine.set_parameters(...) # 回測引數
engine.add_strategy(atrrsistrategy, {}) # 新增策略
執行回測
engine.load_data() # 載入資料
engine.run_backtesting() # 跑回測, 得到成交記錄
df = engine.calculate_result() # 從成交記錄計算盯市盈虧
engine.calculate_statistics() # 計算統計指標
engine.show_chart() # 顯示結果
set_parameters
: 設定並儲存引數,包括要回測的標的,回測時間等
add_strategy
: 新增策略類(策略類需是ctatemplate
的子類),例項化策略物件
load_data
: 載入歷史資料, 儲存在self.history_data
;這裡會呼叫load_bar_data
或者load_tick_data
從資料庫讀取資料
run_backtesting
: 跑回測,本身支援 tick / k 線;但是如果使用圖形介面,則只支援 k 線。執行流程:
calculate_result
: 把交易聚合成逐日盈虧
calculate_statistics
: 基於逐日盈虧計算統計指標,比較多地使用了 pandas
show_chart
: 用matplotlib
視覺化指標
new_bar
/new_tick
:
cross_limit_order
(k 線)
cross_stop_order
(k 線)
mysql怎麼建立表 mysql怎麼建立乙個表
1.登陸成功後,首先進入某乙個資料庫 不是指資料庫伺服器 use t1 t1是資料庫名 如圖所示 2.在此資料庫中建立資料庫表 2.1 先建立表結構 可以理解為表的列名,也就是欄位名 在實際生產過程中,表結構是需要經過精心設計的。通用的語法格式為 1 create table table name ...
python按鈕怎麼建立 python怎麼建立變數
變數 variable 是學習python初始時,就會接觸到的乙個新的知識點,也是乙個需要熟知的概念。python是一種動態型別語言,在賦值的執行中可以繫結不同型別的值,這個過程叫做變數賦值操作,賦值同時確定了變數型別。在python學習過程中會用到許多資料,那為了方便操作,需要把這些資料分別用乙個...
python列表怎麼建立 python怎麼建立列表
序列是python中最基本的資料結構。序列中的每個元素都分配乙個數字 它的位置,或索引,第乙個索引是0,第二個索引是1,依此類推。python有6個序列的內建型別,但最常見的是列表和元組。序列都可以進行的操作包括索引,切片,加,乘,檢查成員。此外,python已經內建確定序列的長度以及確定最大和最小...