點(diǎn)及財(cái)經(jīng),股票期貨專業(yè)投機(jī)者。
'DMI'指標(biāo),我們常常稱它為'動(dòng)向指標(biāo)'或趨向指標(biāo)。因?yàn)?,在這個(gè)指標(biāo)算法內(nèi),不僅僅考慮到了價(jià)格波動(dòng)的大小,還考慮到了價(jià)格波動(dòng)的方向。
如下圖所示:
具體的指標(biāo)算法原理,作者就不再分享了,畢竟網(wǎng)絡(luò)上的資料已經(jīng)說(shuō)的很透徹了。因此,作者只關(guān)注算法中的ADX值,并且利用其作為區(qū)分震蕩或趨勢(shì)的標(biāo)志。
如下圖所示:
上圖中,可以很明顯的看出,當(dāng)價(jià)格波動(dòng)大時(shí),指標(biāo)中的ADX值就越大。反之,則越?。?u>很明顯當(dāng)數(shù)值A(chǔ)DX小于某個(gè)閥值時(shí),我們可以假設(shè)其進(jìn)入了震蕩行情。
因此,我們只要大概識(shí)別了趨勢(shì)和震蕩,那么我們就可以結(jié)合其他一些規(guī)則在震蕩市場(chǎng)中進(jìn)行交易。
在上述中,作者已經(jīng)分享了策略開(kāi)倉(cāng)的其中一部分,即ADX小于某個(gè)閥值時(shí),市場(chǎng)處于震蕩勢(shì)。
震蕩策略,最主要的就是識(shí)別出震蕩,然后再進(jìn)行擇時(shí)。就像做趨勢(shì),需要識(shí)別出趨勢(shì)行情一個(gè)道理。
因此,我們作者將利用k線組合在上述所判斷的震蕩區(qū)域,進(jìn)行震蕩交易。
通常情況下,在震蕩區(qū)域交易,我們常常會(huì)選擇超賣超買區(qū)域開(kāi)倉(cāng)。而作者,不采用此法,將以三根k線的收盤價(jià)連續(xù)下跌或上漲為開(kāi)空或開(kāi)多點(diǎn)位。
如下圖所示:
策略的開(kāi)平倉(cāng)邏輯: 多頭為例。
1.策略的開(kāi)倉(cāng)條件。
滿足上述3條件,策略開(kāi)倉(cāng)!
注:k線的陰陽(yáng),只需要滿足close小于或大于close[1],說(shuō)白了就是連續(xù)下跌或上漲。
2.策略的平倉(cāng)條件: 由兩大部分構(gòu)成,分別是固定時(shí)間出場(chǎng)和保護(hù)止損。
小結(jié)。
上述就是關(guān)于ADX震蕩交易系統(tǒng)的開(kāi)平倉(cāng)邏輯。主要是以ADX值大小,識(shí)別震蕩。再以k線的連續(xù)上漲或下跌作為開(kāi)空或開(kāi)多倉(cāng)信號(hào)。
作者借助天勤量化交易平臺(tái)的tqsdk包中的回測(cè)框架進(jìn)行回測(cè)。交易品種為螺紋鋼期貨指數(shù)1小時(shí),以做空為例。僅需6步即可完成!
1.導(dǎo)入必要的包和參數(shù)變量設(shè)置。
Run: 打印獲取到的k線數(shù)據(jù)。
2.計(jì)算DMI、ATR指標(biāo)并設(shè)置成副圖,并完成k線三連跌及三連漲的統(tǒng)計(jì)。每次k線更新都會(huì)獲取前N根k線進(jìn)行統(tǒng)計(jì)!并在下一根k線剛生成時(shí)重置為0。
Run: 打印統(tǒng)計(jì)出的三連陽(yáng)和三連陽(yáng)的數(shù)據(jù)情況。
3.策略的開(kāi)倉(cāng)。ADX值小于25,處于震蕩行情中。且當(dāng)前ADX值小于前n周期內(nèi)的ADX值,連續(xù)出現(xiàn)三根close大于close[1]。
代碼中,在開(kāi)倉(cāng)bar用最高價(jià)或最低價(jià),加或減掉N倍ATR作為保護(hù)止損。
Run: 策略開(kāi)倉(cāng)信號(hào)。
4.策略平倉(cāng)。價(jià)格跌破保護(hù)止損,平倉(cāng)。開(kāi)倉(cāng)N根bar后,平倉(cāng)。
滿足上述其中一個(gè)條件,都將觸發(fā)平倉(cāng)。
如下圖所示:
5.防止策略同時(shí)在一根k線開(kāi)平,所以需要等待k線更新后把開(kāi)倉(cāng)的開(kāi)關(guān)打開(kāi)。
否則,就會(huì)導(dǎo)致圈內(nèi)的兩個(gè)信號(hào)同時(shí)發(fā)生在一根k線上。
6.策略啟動(dòng)回測(cè)。直接調(diào)用main方法。
Run:
策略回測(cè)曲線:
小結(jié)。
整個(gè)策略的實(shí)現(xiàn),作者認(rèn)為相對(duì)于前幾期的python策略中算簡(jiǎn)單的。在閱讀過(guò)程中注意理解字典var中的'flag'變量控制開(kāi)倉(cāng)順序。
在on_dmi()函數(shù)內(nèi)部用了for循環(huán)所以導(dǎo)致策略回測(cè)有點(diǎn)慢,讀者可以對(duì)這部分代碼進(jìn)行改進(jìn)。
震蕩策略,在量化交易策略中比較少見(jiàn),大部分策略屬于趨勢(shì)跟蹤策略。但是,在實(shí)際交易中盡量保持策略的差異性,確保策略不同質(zhì)化!
除趨勢(shì)策略外,套利策略等,都可以進(jìn)行研究。
文章及策略代碼僅供學(xué)習(xí)交流,切勿直接實(shí)盤!
聯(lián)系客服