驚艷新代碼---又上新啦~ 評論區(qū)網(wǎng)友的新思路,正如三星堆里的“盲盒”新發(fā)現(xiàn)一樣,一個接一個地不斷上新。 自從入駐今日頭條以來,新名詞接連不斷——九轉(zhuǎn)序列、頂?shù)追中?、纏論、網(wǎng)格交易、斐波那契數(shù)列分割,以及本文的算法——波浪尺等等,迎接不暇。 本以為大多數(shù)軟件里都有的畫線工具,會有什么了不起的驚艷之處呢?當(dāng)完成了算法,一番認真地論證之后,驚訝之后的心情感受,終于明白網(wǎng)友的喜愛是有道理的,這樣的算法思路絕非浪得虛名——網(wǎng)友的詳細留言如下: ![]() 網(wǎng)友留言 網(wǎng)友的截圖如下: ![]() 網(wǎng)友的截圖 拿到截圖,認真分析之后,還是看到了斐波那契數(shù)列的應(yīng)用,這與當(dāng)前的REB/RBE內(nèi)的黃金分割同屬一個類別--- 思路步驟 從上圖中可得,波浪尺的定義,包含了E2、E1以及B1三個元素;
算法建立 1. TE2:=CONST(PEAKBARS(1,F,W+1)); TE1:=CONST(PEAKBARS(1,F,W)); TB2:=CONST(TROUGHBARS(2,G,W+1)); TB1:=CONST(TROUGHBARS(2,G,W)); RE2:=IF(CURRBARSCOUNT<=TE2+1,CONST(PEAK(1,F,W+1)),DRAWNULL); RE1:IF(CURRBARSCOUNT<=TE1+1 AND CONST(PEAK(1,F,W))<RE2 AND TE1<TB1,CONST(PEAK(1,F,W)),DRAWNULL),COLORYELLOW; RB1:=IF(CURRBARSCOUNT<=TB1+1 AND RANGE(TB1,TE1,TE2),CONST(TROUGH(2,G,W)),DRAWNULL); 2. DRAWTEXT(CURRBARSCOUNT=CONST(BARSLAST(H=RE2))+1,H*1.003,'A'),COLORYELLOW; DRAWTEXT(CURRBARSCOUNT=CONST(BARSLAST(H=RE1))+1,H*1.003,'C'),COLORYELLOW; DRAWTEXT(CURRBARSCOUNT=CONST(BARSLAST(L=RB1))+1 AND RANGE(TB1,TE1,TE2),L*0.997,'B'),COLORYELLOW; DRAWLINE(CURRBARSCOUNT=CONST(BARSLAST(H=RE2))+1,H,CURRBARSCOUNT=CONST(BARSLAST(L=RB1))+1,L,0),COLORYELLOW; DRAWLINE(CURRBARSCOUNT=CONST(BARSLAST(L=RB1))+1,L,CURRBARSCOUNT=CONST(BARSLAST(H=RE1))+1,H,0),COLORYELLOW; 3. REB:=RE2-RB1; REB0382:RE1-REB*0.382,DOTLINE; REB05:RE1-REB*0.5,DOTLINE; REB0618:RE1-REB*0.618,DOTLINE; REB100:RE1-REB,COLORYELLOW; REB1382:RE1-REB-REB*0.382,DOTLINE; REB15:RE1-REB-REB*0.5,DOTLINE; REB1618:RE1-REB-REB*0.618,DOTLINE; REB200:RE1-REB*2,COLORYELLOW; 4. STICKLINE(CURRBARSCOUNT=IF(INTPART((TE1+1)/2)=1,2,INTPART((TE1+1)/2)),RE1,REB200,0,0),COLORYELLOW; 5. DRAWNUMBER(ISLASTBAR,REB0382,REB0382); DRAWNUMBER(ISLASTBAR,REB05,REB05); DRAWNUMBER(ISLASTBAR,REB0618,REB0618); DRAWNUMBER(ISLASTBAR,REB100,REB100); DRAWNUMBER(ISLASTBAR,REB1382,REB1382); DRAWNUMBER(ISLASTBAR,REB15,REB15); DRAWNUMBER(ISLASTBAR,REB1618,REB1618); DRAWNUMBER(ISLASTBAR,REB200,REB200); 代碼流程 ![]() 江豐魚的EBE波浪尺算法 效果示意 ![]() EBE波浪尺 完整代碼 {先做篩選再用該算法} TE2:=CONST(PEAKBARS(1,F,W+1)); TE1:=CONST(PEAKBARS(1,F,W)); TB2:=CONST(TROUGHBARS(2,G,W+1)); TB1:=CONST(TROUGHBARS(2,G,W)); RE2:=IF(CURRBARSCOUNT<=TE2+1,CONST(PEAK(1,F,W+1)),DRAWNULL); RE1:IF(CURRBARSCOUNT<=TE1+1 AND CONST(PEAK(1,F,W))<RE2 AND TE1<TB1,CONST(PEAK(1,F,W)),DRAWNULL),COLORYELLOW; RB1:=IF(CURRBARSCOUNT<=TB1+1 AND RANGE(TB1,TE1,TE2),CONST(TROUGH(2,G,W)),DRAWNULL); DRAWTEXT(CURRBARSCOUNT=CONST(BARSLAST(H=RE2))+1,H*1.003,'A'),COLORYELLOW; DRAWTEXT(CURRBARSCOUNT=CONST(BARSLAST(H=RE1))+1,H*1.003,'C'),COLORYELLOW; DRAWTEXT(CURRBARSCOUNT=CONST(BARSLAST(L=RB1))+1 AND RANGE(TB1,TE1,TE2),L*0.997,'B'),COLORYELLOW; DRAWLINE(CURRBARSCOUNT=CONST(BARSLAST(H=RE2))+1,H,CURRBARSCOUNT=CONST(BARSLAST(L=RB1))+1,L,0),COLORYELLOW; DRAWLINE(CURRBARSCOUNT=CONST(BARSLAST(L=RB1))+1,L,CURRBARSCOUNT=CONST(BARSLAST(H=RE1))+1,H,0),COLORYELLOW; REB:=RE2-RB1; REB0382:RE1-REB*0.382,DOTLINE; REB05:RE1-REB*0.5,DOTLINE; REB0618:RE1-REB*0.618,DOTLINE; REB100:RE1-REB,COLORYELLOW; REB1382:RE1-REB-REB*0.382,DOTLINE; REB15:RE1-REB-REB*0.5,DOTLINE; REB1618:RE1-REB-REB*0.618,DOTLINE; REB200:RE1-REB*2,COLORYELLOW; STICKLINE(CURRBARSCOUNT=IF(INTPART((TE1+1)/2)=1,2,INTPART((TE1+1)/2)),RE1,REB200,0,0),COLORYELLOW; DRAWNUMBER(ISLASTBAR,REB0382,REB0382); DRAWNUMBER(ISLASTBAR,REB05,REB05); DRAWNUMBER(ISLASTBAR,REB0618,REB0618); DRAWNUMBER(ISLASTBAR,REB100,REB100); DRAWNUMBER(ISLASTBAR,REB1382,REB1382); DRAWNUMBER(ISLASTBAR,REB15,REB15); DRAWNUMBER(ISLASTBAR,REB1618,REB1618); DRAWNUMBER(ISLASTBAR,REB200,REB200); |
|