前述文章里的多周期数据叠加,用到了各周期之间分隔的界定,有误差。因为之前函数较弱的原因,采用了变通的算法所导致的。
今天的多周期间的数据叠加,不存在时间分隔的确定问题,直接引用各周期的基本数据,然后对空间进行柱线绘制,更简单更高效。
效果示意
视频加载中...
思路步骤
引用各周期的基本数据;输出父周期的柱线;绘制日线自己的K线。算法建立
1.
YH:=IF(QH=1 OR QH=0,H#MONTH,DRAWNULL);{Y月}
YO:=IF(QH=1 OR QH=0,O#MONTH,DRAWNULL);
YL:=IF(QH=1 OR QH=0,L#MONTH,DRAWNULL);
YC:=IF(QH=1 OR QH=0,C#MONTH,DRAWNULL);
ZH:=IF(QH=2 OR QH=0,H#WEEK,DRAWNULL); {Z 周}
ZO:=IF(QH=2 OR QH=0,O#WEEK,DRAWNULL);
ZL:=IF(QH=2 OR QH=0,L#WEEK,DRAWNULL);
ZC:=IF(QH=2 OR QH=0,C#WEEK,DRAWNULL);
2.
STICKLINE(YC>YO,YH,YL,4,0),COLOR000066;
STICKLINE(YC<YO,YH,YL,4,0),COLOR990000;
STICKLINE(ZC>ZO,ZH,ZL,4,0),COLOR660099;
STICKLINE(ZC<ZO,ZH,ZL,4,0),COLORFF6600;
3.
DRAWKLINE(H,O,L,C);{最后绘制,为了叠加到前述的背景之上}
代码流程
江丰鱼的代码
重点是,画线方法请尝试选择“主图替换”。
完整代码
YH:=IF(QH=1 OR QH=0,H#MONTH,DRAWNULL);
YO:=IF(QH=1 OR QH=0,O#MONTH,DRAWNULL);
YL:=IF(QH=1 OR QH=0,L#MONTH,DRAWNULL);
YC:=IF(QH=1 OR QH=0,C#MONTH,DRAWNULL);
STICKLINE(YC>YO,YH,YL,4,0),COLOR000066;
STICKLINE(YC<YO,YH,YL,4,0),COLOR990000;
ZH:=IF(QH=2 OR QH=0,H#WEEK,DRAWNULL);
ZO:=IF(QH=2 OR QH=0,O#WEEK,DRAWNULL);
ZL:=IF(QH=2 OR QH=0,L#WEEK,DRAWNULL);
ZC:=IF(QH=2 OR QH=0,C#WEEK,DRAWNULL);
STICKLINE(ZC>ZO,ZH,ZL,4,0),COLOR660099;
STICKLINE(ZC<ZO,ZH,ZL,4,0),COLORFF6600;
DRAWKLINE(H,O,L,C);
我的努力只为达成你的成功,感谢你的赞赏。
江丰鱼的文章只在今日头条首发;文中代码均可运行。