惊艳新代码---又上新啦~ 评论区网友的新思路,正如三星堆里的“盲盒”新发现一样,一个接一个地不断上新。 自从入驻今日头条以来,新名词接连不断——九转序列、顶底分型、缠论、网格交易、斐波那契数列分割,以及本文的算法——波浪尺等等,迎接不暇。 本以为大多数软件里都有的画线工具,会有什么了不起的惊艳之处呢?当完成了算法,一番认真地论证之后,惊讶之后的心情感受,终于明白网友的喜爱是有道理的,这样的算法思路绝非浪得虚名——网友的详细留言如下: ![]() 网友留言 网友的截图如下: ![]() 网友的截图 拿到截图,认真分析之后,还是看到了斐波那契数列的应用,这与当前的REB/RBE内的黄金分割同属一个类别--- 思路步骤 从上图中可得,波浪尺的定义,包含了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); |
|