背離的計算,是處理時序資料的永恆思路,請看網友的留言截圖:
網友的留言
留言的需求是,日內的macd的背離——-今天是陽線,而macd指標的資料卻是下降和持平;今天是陰線,而macd的指標資料卻是在上升和持平。
顯而易見,該思路要建立的演算法,只在單個交易日的內部——-MACD的背離計算之“日內背離”,下面展開演算法的建立流程。
思路步驟
日內,在這裡選擇5分鐘時間週期數據,作為篩選的物件;
首先引入系統MACD指標;
陽線與陰線,以4%的升幅與跌幅作為本次篩選標準,4%的值也可以自定義;
計算5分鐘時間週期的第一根資料位置;
計算5分鐘時間週期內的今日的開盤價;
通常的日內資料是4個小時的區間分割,借用這一特點,對日內的5分鐘資料的MACD中的DEA線進行動態的4分法,如圖所示:
思路示意圖
字母WZ是“位置”的意思,詳細表達式,請見演算法建立部分。
演算法建立
1。 首先引入系統MACD指標:
引數表1
引數表2
演算法內容強調了要在5分鐘時間週期內進行資料篩選才可以使用。
2。 陽線與陰線,以4%的升幅與跌幅作為本次篩選標準:
陰K線的界定——-C 陽K線的界定——-C>WSO*1。04。 3。 計算5分鐘時間週期的第一根資料位置: WZ:=CONST(BARSLAST(CURRBARSCOUNT<=48 AND DAY!=REF(DAY,1))); 4。 計算5分鐘時間週期內的今日的開盤價: WSO:=IF(CURRBARSCOUNT<=WZ+1,CONST(REF(O,WZ)),DRAWNULL);{ WSO:5分鐘首根開盤價} 5。 對日內的5分鐘資料的MACD中的DEA線進行動態的4分法的界定: a。DEA線走平或者向上的量化定義 DEA>=REF(DEA,INTPART(WZ/4))*1。001 AND DEA >=REF(DEA,INTPART(WZ/2))*1。001 AND DEA >=REF(DEA,INTPART(WZ*3/4))*1。001 AND DEA >=REF(DEA,WZ)*1。001; b。DEA線走平或者向下的量化定義 DEA<=REF(DEA,INTPART(WZ/4))*0。999 AND DEA <=REF(DEA,INTPART(WZ/2))*0。999 AND DEA<=REF(DEA,INTPART(WZ*3/4))*0。999 AND DEA <= REF(DEA,WZ)*0。999; 完整程式碼 日線陰線,日內MACD走平或者上行 引數表3 DIF:=EMA(CLOSE,SHORT)-EMA(CLOSE,LONG); DEA:=EMA(DIF,MID); WZ:=CONST(BARSLAST(CURRBARSCOUNT<=48 AND DAY!=REF(DAY,1))); WSO:=IF(CURRBARSCOUNT<=WZ+1,CONST(REF(O,WZ)),DRAWNULL); C<WSO*0.96 AND CONST(DEA)>=CONST(REF(DEA,INTPART(WZ/4)))*1.001 AND CONST(DEA)>=CONST(REF(DEA,INTPART(WZ/2)))*1.001 AND CONST(DEA)>=CONST(REF(DEA,INTPART(WZ*3/4)))*1.001 AND CONST(DEA)>=CONST(REF(DEA,WZ))*1.001; 2。日線陽線,日內MACD走平或者下行 引數表4 DIF:=EMA(CLOSE,SHORT)-EMA(CLOSE,LONG); DEA:=EMA(DIF,MID); WZ:=CONST(BARSLAST(CURRBARSCOUNT<=48 AND DAY!=REF(DAY,1))); WSO:=IF(CURRBARSCOUNT<=WZ+1,CONST(REF(O,WZ)),DRAWNULL); C>WSO*1.04 AND CONST(DEA)<=CONST(REF(DEA,INTPART(WZ/4)))*0.999 AND CONST(DEA)<=CONST(REF(DEA,INTPART(WZ/2)))*0.999 AND CONST(DEA)<=CONST(REF(DEA,INTPART(WZ*3/4)))*0.999 AND CONST(DEA)<=CONST(REF(DEA,WZ))*0.999; 因為這裡所有的思路以及程式碼,只是專注於函式的應用和演算法的建立,不面向應用。所以,後續將根據網友的應用層面的反饋進行必要的最佳化。 計算創造價值,分享助力成功,程式碼均可執行。 江豐魚的文章只在今日頭條首發,未經授權禁止引用或者轉載。