更多精彩內容,歡迎關注公衆號:數量技術宅。想要獲取本期分享的完整策略代碼,請加技術宅微信:sljsz01html
交易開拓者(後文以TB簡稱)是一個支持國內期貨市場K線數據回測、交易的第三方交易平臺。TB自帶回測框架,投資者在開發量化策略時,只需關注實現策略主邏輯,它的自帶編程語言相比較C++、Python也更簡單,適合編程零基礎的投資者快速上手。TB自帶的基於K線的回測框架,在期貨市場已經通過許多交易員多年實盤的檢驗,結果穩定可靠。編程
儘管TB回測框架完善、語法簡單。但其內置的數據侷限於期貨市場的歷史數據,若是咱們須要測試其餘類別的資產,好比數字貨幣,就須要經過外部導入數據的方式。微信
本次分享,咱們將帶着你們學習從數字貨幣歷史K線數據的獲取、轉換爲TB支持的數據格式導入、在TB中利用導入的歷史數據測試數字貨幣的交易策略、最終獲得策略回測結果的這一全過程。框架
本次測試,咱們將採用數字貨幣的大週期K線數據。咱們曾經在前文的分享中提到過數字貨幣免費數據的獲取途徑,對於大週期K線數據,能夠從CryptoData網站下載數據。此次咱們將下載幣安交易所的歷史數據,該網站幣安交易所能獲取到的數字貨幣品種更爲豐富。機器學習
咱們選擇幣安交易所 BTC/USD 1小時K線數據下載,下載獲得的原始數據,打開字段以下。編程語言
請你們注意,下載數據雖然包含了K線所需的所有字段:日期時間、開、高、低、收、成交量、成交額,但這個數據是沒法直接導入TB的。導入TB的數據,咱們須要和TB自己支持的數據字段格式,徹底一致。咱們先從TB下載其內置的期貨數據,看一下內置數據的字段格式,咱們以滬銀期貨,一樣是1小時週期的K線爲例。工具
經過對比TB內置的數據格式,與咱們現有數字貨幣的數據格式,有如下幾個地方須要預處理:一是,日期時間的格式須要轉換;二是,Symbol列不須要,將其去除;三是,成交量(VolumeBTC、VolumeUSDT)保留一列便可。post
咱們使用Python,按照上述三點規則,對數據進行預處理,並存爲新的CSV文件。以上是部分代碼,完整代碼請聯繫小編。打開保存的csv文件,查看數據字段格式是否成功轉換。須要特別注意,保存的文件不能有列名,不然TB會產生導入錯誤。學習
緊接着,咱們就將處理好的數據導入TB。選擇數據管理,因爲沒有數字貨幣對應的交易所,此處隨機選擇一個交易所便可,點擊自定義商品。測試
填寫該品種的基本屬性數據。其中的重要字段:(1)報價精度,根據原始數據精度填寫;(2)最小變更,1即爲1個報價精度單位;(3)交易時間段:數字貨幣24小時不間斷交易。
再選擇數據維護欄,商品選擇剛纔新建的品種名稱,因爲咱們導入的是1小時K線,週期選擇1小時。
點擊導入數據,選項按默認設置便可,選擇咱們剛纔用Python預處理好並保存的csv文件。此時TB提示導入成功,下方數據欄顯示正確的K線數據,就說明咱們自定義的數據,已經成功導入。
成功導入數字貨幣BTC/USD的1小時K線數據後,接下來就進入最激動人心的一步:量化策略的回測。咱們首先新建一個超級圖表,該圖表正常顯示btcusdt這個新定義品種的K線數據,因而咱們能夠基於這個超級圖表,來作接下來的回測。
咱們將在期貨市場開發的一個交易策略,移植到數字貨幣市場,不須要修改任何代碼,直接進行測試。
TB輕鬆完成了咱們導入品種的回測,能夠看到,測試的效果讓人驚喜,以btc爲表明的數字貨幣市場,策略表現不錯。
若是你想要本次的完整代碼,歡迎加小編微信,與我交流。
【數量技術宅|量化投資策略系列分享】基於指數移動平均的股指期貨交易策略
AMA指標原做者Perry Kaufman 100+套交易策略源碼分享
【數量技術宅|金融數據系列分享】套利策略的價差序列計算,恐怕沒有你想的那麼簡單
【數量技術宅|量化投資策略系列分享】成熟交易者期貨持倉跟隨策略
【數量技術宅|金融數據分析系列分享】爲何中證500(IC)是最適合長期作多的指數
商品現貨數據很差拿?商品季節性難跟蹤?一鍵解決沒煩惱的Python爬蟲分享
【數量技術宅|金融數據分析系列分享】如何正確抄底商品期貨、大宗商品