用Python實現一個Dual Thrust數字貨幣量化交易策略


Dual Thrust交易算法介紹

Dual Thrust交易算法是由Michael Chalek開發的著名量化交易策略。它通常用於期貨,外匯和股票市場。Dual Thrust的概念屬於典型的突破交易系統,其運用雙推力系統根據歷史價格構建更新的回溯期,這在理論上使其在任何給定時期內更加穩定。

在這篇文章中,我們給出了此策略的詳細邏輯細節,並展示了如何在發明者量化平台上實現此算法。首先,我們要選擇所交易標的的歷史價格,該范圍基於最近N天的收盤價,最高價和最低價計算。當市場從開盤價移動一定范圍時,執行開倉。

我們在常見的兩個市場狀態下用單個交易對測試了此策略,即趨勢市場和震盪市場。結果表明,這種動量交易系統在趨勢市場中運行得更好,在波動較大的市場中會觸發一些無效買賣信號。在區間市場下,我們可以調整參數以獲得更好的回報。作為個別參照交易標的的比較,我們還測試了國內商品期貨市商。結果表明該策略好於平均表現。

 

DT策略原理

它的邏輯原型是常見的日內交易策略。開盤區間突破策略基於今天的開盤價加上或減去昨天幅度的一定百分比來確定上下軌。當價格突破上方軌道時,它會開倉買入,當它突破下方軌道時,它會開倉做空。

策略原理

在收盤后,計算兩個價值:最高價 - 收盤價,收盤價 - 最低價。然后取這兩個值中較大的值,將該值乘以0.7。讓我們稱之為值KK值我們稱為觸發值。

第二日開市后,記錄開盤價,然后在價格超過(開盤價+觸發價值)時立即買入,或在價格低於(開盤價 - 觸發價值)時賣空。

此策略沒有明顯的止損。這個系統是一個反向系統,也就是說,如果在價格超過(開盤價+觸發值)時有一個空頭倉位訂單,那么它將發送兩個買單(一個關閉錯誤的倉位,另一個打開正確方向的倉位)。出於同樣的原因,如果有一個多頭倉位價格低於(開盤價-觸發價值),那么它將發送兩個賣單。

 

 

DT策略的數學表達式

范圍=最大值(HH-LCHC-LL

多頭信號的計算方法是

cap = open + K1 × Rangecap = open + K1 × Range

空頭短信號的計算方法是

floor = open – K2 × Rangefloor = open – K2 × Range

其中K1K2是參數。當K1大於K2時,觸發多頭信號,反之亦然。為了演示,我們選擇K1 = K2 = 0.5。在實際交易中,我們仍然可以使用歷史數據來優化這些參數或根據市場趨勢調整參數。如果您看漲市場,K1應小於K2,如果您看跌市場,則K1應大於K2 該系統是一個反轉系統,因此如果投資者在價格突破上軌時持有空頭倉位,則在開多倉前要先平掉空頭倉位。如果投資者在價格突破下軌時持有多頭倉位,則在開新的空頭倉位之前應先平掉多頭倉位。

 

DT策略的改進:

在范圍設置中,引入前N天的四個價格點(高,開,低,收),使得一定時期內的范圍相對穩定,可應用於日線趨勢跟蹤。此策略的開多和空的觸發條件,考慮不對稱幅度,多空交易可參考范圍應該選擇不同數量的周期,也可以通過參數K1K2來確定。當K1<K2時,多頭信號相對容易被觸發,而當K1>K2時,空頭信號相對容易被觸發。

因此,在使用此策略時,一方面可以參考歷史數據回測的最佳參數。另一方面,您可以根據自己對后勢的判斷或其他主要周期技術指標分階段調整K1K2這是一種等待信號,進入市場,套利,然后離開市場的典型交易方式,但效果非常出色。

 

在發明者量化平台部署DT策略

我們打開,FMZ.COM, 登陸賬戶,點擊控制中心,部署托管者和機器人。

關於如何部署托管者和機器人,請參考我之前的文章:https://www.fmz.com/bbs-topic/4140

想購買自己雲計算服務器部署托管者的讀者,可以參考這篇文章:https://www.fmz.com/bbs-topic/2848

接下來,我們點擊左側欄目當中的策略庫,點擊新建策略

在編寫策略頁面右上角記得選擇編程語言為Python,如圖:

 

 

接下來我們把Python代碼寫入代碼編輯頁面中,下面的代碼,有着非常詳細的逐行注釋,各位讀者可以慢慢理解和體會。我們就用OKCoin期貨來測試這個策略:



寫完代碼后,請注意我們還未完成整個策略的編寫部分,接下來,我們需要把策略中用的參數添加到策略編寫頁面,添加的方法十分簡單,直接點擊策略編寫對話框下方的加號逐個添加即可。

 

 

需要添加的內容:

 

 

到此,我們終於完成策略的編寫部分,接下來,我們就開始回測這個策略吧。

 

策略回測

寫完策略后,我們首先要做的就是回測它,看它在歷史數據中表現如何,但是請各位讀者千萬注意,回測的結果不等於未來的預判,回測只能作為一種參考信息來考慮我們的策略有效性。一旦市場發生變化,策略開始有大的虧損出現,我們應該及時去發現問題,然后改變策略以適應新的市場環境,比如上文提到的閥值,如果策略出現大於百分之10的虧損,我們就應該馬上停止策略運行,然后查找問題,可以先從調節閥值開始入手。

點擊策略編輯頁面中的模擬回測,在回測頁面,參數的調節可以根據需求的不同,進行方便快捷的調試,特別是對於邏輯復雜,參數眾多的策略,不用再回去源碼,進行逐個修改。回測時間我們選最近半年的,點擊添加OKCoin期貨交易所,選擇BTC交易標的。

 

 

可以看到,最近半年由於BTC的單邊趨勢非常不錯,策略收獲了很好的收益。



有問題的朋友可以到 https://www.fmz.com/bbs 留言,無論是關於策略還是平台的技術,發明者量化平台有專業的人員隨時為您解答。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM