“条件成立到当前的周期数” ,是算法建立中“时间”位置确定的重要步骤与思想,请看网友的留言截图:
网友的留言
(资料图)
网友留言的思路是:
收盘价首次站上20日均线; 在这个位置至今/以后,只选出第1个当日成交量大于120日成交量均线的K线,以后大于120日成交均量线不再计算和选出; 一个主图标注算法,一个数据筛选算法。(一)、思路步骤:
两个函数:
BARSSINCE第一个条件成立到当前的周期数。
用法:BARSSINCE(X):第一次X不为0到现在的周期数。
例如:BARSSINCE(CROSS(C,MA(C,20)))表示价格在全部数据中首次上穿20日均线时到当前的周期数。
2. BARSSINCEN
M周期内第一个条件成立到当前的周期数。
用法:BARSSINCEN(T,M):N周期内第一次T不为0到现在的周期数,M为常量。
例如:BARSSINCEN(VOL>MA(VOL,120),10)表示10个周期内首次成交量大于120日成交量均线时到当前的周期数。
3.应用 BARSSINCE与BARSSINCEN 函数确定条件成立的位置;
4.输出确定位置的标注标识符号,以及进行条件的限定与数据筛选。
(二)、算法的建立:
A.数据筛选算法的建立过程---确定条件成立的位置,筛选逻辑为“此刻成交量上穿120日均量线”,即数值为0
WZC:=CONST(BARSSINCE(CROSS(C,MA(C,20))=1));
WZV:=CONST(BARSSINCEN(VOL>MA(VOL,120),WZC+1));
WZV=0;
B.主图标注算法的建立过程---确定条件成立的位置,输出位置的标识图标
MA20:MA(C,20),COLORMAGENTA;
WZC:=CONST(BARSSINCE(CROSS(C,MA(C,20))=1));
WZV:=CONST(BARSSINCEN(VOL>MA(VOL,120),WZC+1));
DRAWICON(CURRBARSCOUNT=WZC+1,L,11);
DRAWICON(CURRBARSCOUNT=WZV+1,L,11);
(三)、完整的算法代码:
A.数据筛选算法
代码流程1
WZC:=CONST(BARSSINCE(CROSS(C,MA(C,20))=1));
WZV:=CONST(BARSSINCEN(VOL>MA(VOL,120),WZC+1));
WZV=0;
B.主图标注算法
代码流程2
MA20:MA(C,20),COLORMAGENTA;
WZC:=CONST(BARSSINCE(CROSS(C,MA(C,20))=1));
WZV:=CONST(BARSSINCEN(VOL>MA(VOL,120),WZC+1));
DRAWICON(CURRBARSCOUNT=WZC+1,L,11);
DRAWICON(CURRBARSCOUNT=WZV+1,L,11);
(四)、最后的效果示意图:
效果示意图一
效果示意图二
效果示意图三
关键词: