通達信資料匯入VNPY資料庫
市面上很多收費資料比較昂貴,但通達信的資料可以免費下載,下載後的資料轉換成vnpy需要的格式就可以在vnpy裡回測了。
我們看一下vnpy的資料BarDate類定義:
class
BarData
(
BaseData
):
“”“
Candlestick bar data of a certain trading period。
”“”
symbol
:
str
exchange
:
Exchange
datetime
:
datetime
interval
:
Interval
=
None
volume
:
float
=
0
open_interest
:
float
=
0
open_price
:
float
=
0
high_price
:
float
=
0
low_price
:
float
=
0
close_price
:
float
=
0
def
__post_init__
(
self
):
“”“”“”
self
。
vt_symbol
=
f
“{self。symbol}。{self。exchange。value}”
從類屬性可以看到,資料一共有10個變數,分別對應品種程式碼、交易所程式碼、週期、日期時間、開盤價、最高價、最低價、收盤價、成交量、持倉量
通達信資料有日期、時間、開盤價、最高價、最低價、收盤價、成交量、持倉量、結算價
所以把日期時間合併,把結算價刪除,再增加品種程式碼、交易所程式碼、週期,資料抬頭按照BarData屬性設定,修改後如下:
這樣的資料便能匯入vnpy資料庫回測了。
若是用指令碼模式匯入,可以用pd。read_csv讀取資料檔案,讀取後的資料都是字串型別,注意需要把交易所程式碼和週期重新設定成列舉常量Exchange和Interval,日期時間轉換成datetime。datetime型別,開、高、低、收、成交量、持倉量則轉換成浮點型資料。
資料修改好後,可匯入進SQLite或MongoDB資料庫,匯入完成就可以回測了。