小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

利用Python實(shí)現(xiàn)MACD''頂?shù)妆畴x''形態(tài),并實(shí)現(xiàn)自動化交易!

 追夢文庫 2020-06-11

利用Python實(shí)現(xiàn)MACD

前言

股票或期貨的價(jià)格波動,總會有一些可以規(guī)律可以遵循的。其中,'背離'也算是其中的一種,并且可以作為判斷趨勢結(jié)束或階段調(diào)整的預(yù)警信號。

利用Python實(shí)現(xiàn)MACD

通常情況下,我們所說的'背離'是指價(jià)格與技術(shù)指標(biāo)的運(yùn)動方向發(fā)生相反方向的運(yùn)動的情形。正如下面的MACD頂背離技術(shù)形態(tài),仔細(xì)觀察價(jià)格與MACD兩者的走勢。

如下圖所示:

利用Python實(shí)現(xiàn)MACD

從上圖中可以看到,價(jià)格的波峰一個比一個高,而MACD指標(biāo)的波峰一浪比一浪低。這就是MACD頂背離!

而MACD底背離,如下圖所示:

利用Python實(shí)現(xiàn)MACD

其主要特征與頂背離完全相反!

價(jià)格的波谷一個比一個低,而MACD指標(biāo)的波谷一浪比一浪高。這就是MACD底背離!

一旦價(jià)格產(chǎn)生背離,說明價(jià)格的原上漲或下跌趨勢的動能減弱,預(yù)示著趨勢可能發(fā)生反轉(zhuǎn)或震蕩。

利用Python實(shí)現(xiàn)MACD

至于為什么會產(chǎn)生背離,它的內(nèi)在運(yùn)行機(jī)理是什么。作者在往期的文章中有專門的一篇文章有非常詳細(xì)的講解。

而作者在這期文章中,只分享如何利用Python對MACD頂?shù)妆畴x進(jìn)行量化,并加入簡單的開平倉指令。

Python 語言中'背離'的量化邏輯

背離的量化,不管是什么語言它的思路都是相同的。唯一的區(qū)別是實(shí)現(xiàn)這個功能的表達(dá)方式!

在Python中我用了兩個函數(shù)分別量化'頂背離'和底背離。下面我以'MACD底背離'為例,下面是圖解實(shí)現(xiàn)過程:

利用Python實(shí)現(xiàn)MACD

作者通過記錄MACD的金叉死叉時(shí)的id,然后通過前后藍(lán)色id與紅色id相減,得到計(jì)算MACD波谷所需要往前移動的k線數(shù)量(從金叉起往前數(shù) n根k線)。

然后利用Python中的max()、min()方法,求出價(jià)格及MACD的波谷位置。

利用Python實(shí)現(xiàn)MACD

當(dāng)我們量化出第一個后,第二個,第三個的思路是一樣的。同時(shí),計(jì)算MACD波谷區(qū)間的價(jià)格波谷也是這樣的思路。

最后通過條件判斷,找出頂背離或底背離的形態(tài),并發(fā)出開倉指令。

Python tqsdk 實(shí)現(xiàn)MACD頂?shù)?#39;背離'

在上述中,作者分享了關(guān)于頂?shù)妆畴x的量化思路。接下來,作者將用五個步驟完成背離的量化。

一、首先,導(dǎo)入相應(yīng)的包并設(shè)置參數(shù)變量。

利用Python實(shí)現(xiàn)MACD

作者用于回測的品種是螺紋鋼指數(shù)15分鐘。其中self._lowest_md 和self._highest_md 、self.lowest和self.highest 。

分別表示MACD的波谷值和波峰值、MACD波峰波谷對應(yīng)的價(jià)格波峰波谷值。

利用Python實(shí)現(xiàn)MACD

二、計(jì)算MACD指標(biāo)以及記錄金叉死叉位置。

作者直接使用天勤量化內(nèi)置的MACD、金叉和死叉函數(shù)進(jìn)行相應(yīng)計(jì)算,并將結(jié)果存入kline中。

利用Python實(shí)現(xiàn)MACD

作者打印出采用天勤內(nèi)置的上穿函數(shù)的計(jì)算結(jié)果。當(dāng)遇到MACD金叉時(shí),值為1,其他為0。

并且,天勤的下穿函數(shù)crossdown(a,b)的返回值和上穿一致,只有1或0。

如下圖所示:

利用Python實(shí)現(xiàn)MACD

代碼中的trend_long、trend_short,只記錄MACD上穿或下穿0軸的位置,同樣返回值為1或0。

利用Python實(shí)現(xiàn)MACD

上述,作者分享了MACD指標(biāo)的計(jì)算以及金叉死叉位置的標(biāo)注方法。

下面,作者將利用指標(biāo)及標(biāo)注的金叉死叉的位置來計(jì)算MACD及對應(yīng)價(jià)格的波峰及波谷。

三、計(jì)算出用于判斷頂?shù)?#39;背離'所需要的'波峰波谷'數(shù)據(jù)

在上個一步驟中,作者已經(jīng)計(jì)算出了MACD金死叉的位置。

因此我們就可以通過這個位置所對應(yīng)的K線id,推算出死叉到金叉之間經(jīng)過了多少(n)根k線,并從當(dāng)前倒推n根k線,得到計(jì)算波谷的區(qū)間。

利用Python實(shí)現(xiàn)MACD

作者以“底背離為例”

代碼:

利用Python實(shí)現(xiàn)MACD

利用Python實(shí)現(xiàn)MACD

其中,核心的計(jì)算部分是:self._lowest_md、self.lowest這兩個列表存儲著用于判斷底背離的指標(biāo)及價(jià)格的波谷數(shù)據(jù)。

利用Python實(shí)現(xiàn)MACD

而這段代碼的最后一部分,當(dāng)指標(biāo)在零軸之上時(shí),重置列表及記錄的金叉死叉的id,以便于在新一輪0軸以下再記錄。

利用Python實(shí)現(xiàn)MACD

利用Python實(shí)現(xiàn)MACD

同時(shí),頂背離的計(jì)算結(jié)構(gòu)與底背離是一致的。

如下圖所示:

利用Python實(shí)現(xiàn)MACD

四、判斷頂?shù)妆畴x并加入簡單的開平倉指令

這一部分,作者按照開篇所講的“頂背離”和“底背離”的判斷標(biāo)準(zhǔn)來判斷并加入開平倉指令。

1.開倉部分:

利用Python實(shí)現(xiàn)MACD

2.平倉部分:當(dāng)平倉后,使用del 刪除列表中已經(jīng)使用過的波峰波谷值的前一值。

利用Python實(shí)現(xiàn)MACD

最主要的部分是這段代碼:第一個If是判斷是否是“底背離”,第二個If判斷是否是“頂背離”。如果條件滿足,則開倉1手。

利用Python實(shí)現(xiàn)MACD

五、調(diào)用main() 函數(shù),啟動策略。

利用Python實(shí)現(xiàn)MACD

驗(yàn)證代碼的正確性:底背離為例。

1.金叉:

利用Python實(shí)現(xiàn)MACD

2.底背離:

利用Python實(shí)現(xiàn)MACD

小結(jié)。

上述是用Python語言借助天勤量化平臺,量化MACD背離的整個過程。

其中重點(diǎn)在于波峰波谷值的計(jì)算和背離的判斷,難點(diǎn)在于如何通過控制代碼的運(yùn)行順序進(jìn)行計(jì)算。

最后

'背離',僅判斷趨勢的動能減弱,而不一定預(yù)示著趨勢會反轉(zhuǎn)。因?yàn)?,很有可能是原趨勢的階段性調(diào)整,也有可能進(jìn)入長期的震蕩之中。

很有可能,在價(jià)格突破或跌破頂背離或底背離區(qū)域后,一飛沖天或是一瀉千里!

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多