就在对顶底分型的组合进行算法定义的同时,有网友留言了: 第一个, 第一道作业题 “怎么能把历史的左峰划线。同时对历史的谷、峰和顶、底价格重合价位点画粗线呢?” “比如历史上有个峰有个谷,峰的高点和谷的低点价格相等或者接近。” 因为昨天(6月6号)已经完成了对顶底分型的独立算法的定义,这个问题变得轻而易举---首先想到的是顶底分型值的关系,即 RE与 RB 的关系。 思路步骤
算法建立 1. 当前是谷位点; 底分型:=CONST(TROUGH(2,3,1)); 2. 输出左峰值; 顶分型:=PEAK(1,8,1); 3. 匹配两者的空间关系范围; WZ:=BARSLAST(ABS(底分型/顶分型-1)<=0.05); 4.输出的优化过程 QD:=CONST(REF(BARSLAST(WZ<REF(WZ,1)),WZ)+WZ); DRAWICON(CURRBARSCOUNT=QD+1,顶分型,86); IF(CURRBARSCOUNT<=QD+1,CONST(REF(H,QD)),DRAWNULL),LINETHICK5; IF(CURRBARSCOUNT<=QD+1,底分型,DRAWNULL),LINETHICK5; DRAWNUMBER(CURRBARSCOUNT=10,(CONST(REF(H,QD))+底分型)/2*0.997,ABS((底分型/CONST(REF(H,QD))-1))*100); DRAWTEXT(CURRBARSCOUNT=10,(CONST(REF(H,QD))+底分型)/2*0.995,' %'); DRAWTEXT(CURRBARSCOUNT=12,(CONST(REF(H,QD))+底分型)/2*0.995,'上下区间'); 代码流程 江丰鱼的代码 完整代码 底分型:=CONST(TROUGH(2,3,1)); 顶分型:=PEAK(1,15,1); WZ:=BARSLAST(ABS(底分型/顶分型-1)<=0.05); QD:=CONST(REF(BARSLAST(WZ<REF(WZ,1)),WZ)+WZ); DRAWICON(CURRBARSCOUNT=QD+1,顶分型,86); IF(CURRBARSCOUNT<=QD+1,CONST(REF(H,QD)),DRAWNULL),LINETHICK5; IF(CURRBARSCOUNT<=QD+1,底分型,DRAWNULL),LINETHICK5; DRAWNUMBER(CURRBARSCOUNT=10,(CONST(REF(H,QD))+底分型)/2*0.997,ABS((底分型/CONST(REF(H,QD))-1))*100); DRAWTEXT(CURRBARSCOUNT=10,(CONST(REF(H,QD))+底分型)/2*0.995,' %'); DRAWTEXT(CURRBARSCOUNT=12,(CONST(REF(H,QD))+底分型)/2*0.995,'上下区间'); 效果示意 底分型踏顶分型 第二个留言, 第二道作业 “能否写一个通达信的100日内创新高次数的指标公式。谢谢” 看到这道题,首先想到的是顶分型的值RE。 思路步骤 第一,输出顶分型RE的值; 第二,用函数COUNT进行统计。 完整代码 RE:=PEAK(1,3,1); CONST(COUNT(RE>REF(RE,1),100)),NODRAW; 题目没有问连续创新高的条件,所以,一切变得更简单。 我的努力只为达成你的成功,你的赞赏是我们一起前行的动力。 江丰鱼的文章只在今日头条首发;文中代码均可运行。 |
|