網格交易系統開發

數量技術宅發表於2021-01-30

更多精彩內容,歡迎關注公眾號:數量技術宅,也可新增技術宅個人微訊號:sljsz01,與我交流。

網格交易策略原理

網格交易策略是一種不預測價格漲跌的交易方法,按照價格在網格的走勢形態執行交易。通常是在股票價格下跌至一個網格時,進行買入;在價格走勢上漲至一個網格時,進行賣出。網格交易法是一種買跌賣漲的交易方式,它是屬於逆勢的交易方式,與常見的價格趨勢交易相反。

網格交易策略的第一步是設定價值中樞(基準價格),然後利用網格高度,對投資標的進行機械式操作。我們以下圖為例,當價格低於基準價格1個網格高度,我們買入1份的倉位,如果價格繼續下跌,跌破2個網格高度,我們繼續買入第2份的倉位,如果此時價格上漲,又漲回到了基準價格下方的1個網格高度,我們賣出第2份買入的倉位,如果價格仍然繼續上漲到了基準價格,我們再繼續賣出第1份買入的倉位。而對於先賣空、後買入回補的做空操作,相當於是與做多完全相反的操作,價格每上漲1個網格高度,就做空1份的頭寸,而價格每下跌1個網格高度,就平掉1份做空的頭寸。

網格交易策略的優勢在於充分的捕捉市場上下的大幅波動,只要價格不出現極速的單方向行情,網格交易就能一次又一次的賺取市場往復波動的利潤。我們來看一個具體的例子,假設某隻股票的價格從11元跌到3.87元,而後又漲回到11元,如果我們只是持有該股票,最終的收益率是0,而如果我們按照下表每檔10%來進行單向做多的網格交易(A股只能做多),根據測算,網格交易總計買入97104.47元,賣出後總計收回107782.75元,總體收益11%。

網格交易策略,配合馬丁格爾倉位管理,不出意外的狀況下資金曲線是45度角上揚的。但網格交易比較害怕單邊行情,我們需要對單邊行情進行風控預案的設計,下圖測試曲線向下的階段,是不可避免的單邊行情帶來的回撤。

數字貨幣雙向網格策略的實現模組

發明者量化(原BotVS)是首家支援商品期貨與數字貨幣(比特幣量化交易、區塊鏈資產量化交易)的量化交易平臺, 支援Javascript/Python/視覺化/麥語言/C++ 五種程式語言,在幣圈的量化交易中,應用尤其廣泛。本期分享,技術宅將藉助發明者量化平臺,採用JavaScript語言,實現一個帶風控的數字貨幣的雙向網格交易策略。

對於這個數字貨幣的雙向網格交易策略,我們在實現的時候,將它拆解為了一個個的功能模組來實現,而每一個功能模組,都用一個或幾個函式進行封裝。下面我們介紹一下程式中最重要的幾個模組。

網格掛單模組:根據計算的動態網格中心,按照向上間隔一定價格距離,依次掛賣單,同時向下間隔一定價格距離,依次對稱的掛買單,數量也可以選擇是按照等量掛單,還是馬丁加倉法掛單,並記錄下所有報單的ID。報單結束,休眠一定時間後,根據報單ID再次查詢所有報單,返回訂單結構體。

檢查訂單成交模組:遍歷所有的在途報單,如果掛入的開倉單成交,立即按照開倉單成交的方向,反向掛入平倉單,平倉單的掛單價格是開倉價格盈利一個網格單位所計算得到的價格;如果掛入的平倉單成交,也是類似邏輯,立即掛入反向的開倉單,同時開倉單的掛單價格是平倉時對應上次開倉單的掛單價格不變。

止損模組:首先計算最新中間價,如果新的中間價偏離了網格報單中間價20%的比例,撤掉所有訂單,並對當前的虧損倉位全部止損。例如,價格向下偏離原始網格中點,平掉所有多頭倉位;而價格向上偏離,平掉所有空頭倉位。平倉結束後,將新的中間價設為網格中點,並呼叫掛單模組,重新報多空開倉的網格單。

策略整體開發框架

介紹完核心的三大模組,我們通過一張執行流程圖,來看一下這個網格策略的整體開發框架。

首先,策略啟動,我們呼叫init函式進行初始化,init函式執行兩個功能,一是通過歷史行情計算確定網格中點,二是讀取賬戶資訊,包括掛單、成交、錢、幣等資訊。

接著,呼叫putGridOrder函式,執行網格掛單模組,在該模組的執行過程中,依賴init計算的網格中點,往上、往下分別等間隔的掛n份多單、空單。

再接著執行checkStopLoss,檢查當前最新行情是否擊穿所有網格並觸發止損,此處有兩個分支:如果觸發止損,我們首先平掉虧損方向的所有訂單,平倉完成後重新執行初始化,即獲取網格中點,讀取賬戶,重新對新的網格中點執行網格掛單;而如果止損未觸發,則執行checkout模組,檢查掛單中是否有訂單已被成交,如果開倉單被成交,則在對應止盈的格子價位掛反向平倉單,如果平倉單被成交,則在對應被成交的開倉價位,重新掛開倉單。通過流圖我們可以看到,整個程式是一個無限迴圈判斷+執行的過程。

以上,就是我們對於這個數字貨幣雙向網格交易策略實現程式碼的詳細介紹,歡迎大家掃碼新增數量技術宅個人微信,領取策略的完整程式碼。

 

關注 “數量技術宅”不迷路,您的點贊、轉發,是我輸出乾貨,最大的動力

 


往期乾貨分享推薦閱讀

通過深度學習股價截面資料分析和預測股票價格

Omega System Trading and Development Club內部分享策略Easylanguage原始碼

一個真實資料集的完整機器學習解決方案(下)

一個真實資料集的完整機器學習解決方案(上)

如何使用交易開拓者(TB)開發數字貨幣策略

股指期貨高頻資料機器學習預測

如何使用TradingView(TV)回測數字貨幣交易策略

如何投資股票型基金?什麼時間買?買什麼?

【數量技術宅|量化投資策略系列分享】基於指數移動平均的股指期貨交易策略

AMA指標原作者Perry Kaufman 100+套交易策略原始碼分享

【 數量技術宅 | 期權系列分享】期權策略的“獨孤九劍”

【數量技術宅|金融資料系列分享】套利策略的價差序列計算,恐怕沒有你想的那麼簡單

【數量技術宅|量化投資策略系列分享】成熟交易者期貨持倉跟隨策略

如何獲取免費的數字貨幣歷史資料

【數量技術宅|量化投資策略系列分享】多週期共振交易策略

【數量技術宅|金融資料分析系列分享】為什麼中證500(IC)是最適合長期做多的指數

商品現貨資料不好拿?商品季節性難跟蹤?一鍵解決沒煩惱的Python爬蟲分享

【數量技術宅|金融資料分析系列分享】如何正確抄底商品期貨、大宗商品

【數量技術宅|量化投資策略系列分享】股指期貨IF分鐘波動率統計策略

【數量技術宅 | Python爬蟲系列分享】實時監控股市重大公告的Python爬蟲

相關文章