Sumbars的使用
指标编制中求得在时间坐标轴上的位置, 或者时间位置上的运算还是很复杂的, 我觉得这是指标编制中的一个难点,( 英文是bars)比如说在10天到14天前出现一个信号, 然后再最近三天有出现另外一个信号, 或者出现一个信号a, 然后在最近三天内还出现信号b, 时间轴位置运算函数包括hhvbars llvbars troughbars,peakbars lastbars barsince barscount 等等, 求得位置之后, 就可以用ref (h,位置)求得信号a那天的具体数据, 还比如说求得金叉和死叉之间的数据, 就必须把金叉死叉的位置找出来.
以600206 有研新材为例, 选择今日2018.1.12做参考点,做个指标cs2
tj1:c/c[1] 1.098; 这样标注出来在11.24 和12.06 出现两次涨停
2:做个指标cs4:
tj1:=c/c[1] 1.098;
tj2:barslast(tj1);
如截图1
求得最近(最后一次涨停信号到当前的时间周期距离)
这样得到的数据是12.06到今天(01.12)的周期是26, 就是说从今天算26天前出现一个涨停
然后看一下11.24 那一天的涨停到12.06的时间周期是7(就是相隔了7天)
那么11.24 那天涨停距离今天的周期应该是11.24-12.06 的相隔周期加上12.06到今天01.12的周期之和
然后在根据此做个指标cs1:
tj1:=c/c[1] 1.098;
tj2:=barslast(tj1);
tj3:tj2+ref(tj2,tj2+1);
{就是26+27天之前的那个tj2周期,(是7), 必须加个1, 否则取到的是0, 而不是7}
然后知道11.24 那天的涨停距离今日是33周期,
用,ref(h,tj3) 来验证一下是否正确, 是否就是那天涨停的最高价
发现必须ref(h,tj3+1)才是11.24涨停那天的数据, 也就是最高价
这样如果要求的倒数第三个的涨停周期, 也就是11.06那天的涨停日期, 可以参照上面的例子, 这样逐段相加找到那个时间点, 但是看起来嵌套很多, 非常麻烦
现在可以使用sumbars函数来解决
把 cs1改成
tj1:=c/c[1] 1.098;
tj4:sumbars(tj1, 2);
如截图2
发现最后的数据是sumbars(tj1, 2)=35,
这个函数的解释是这样的, 要累加多长时间和周期, tj1才能达到2?
Tj1是涨停信号, 绝大部分情况下tj1是0, 也就是没涨停, tj2之和达到2, 也就是两个涨停, 所以要从
倒数第二个涨停位置, 也就是11.24那一天开始算起, 然后统计出来35个周期内出现两个涨停tj1,
sumbars(tj1, 3);必须从倒数第三个涨停(11.06那一天)算起, 到当前时间范围内内才出现三个涨停信号,
结论: sumbars(tj1, 3)就是计算倒数第三个信号的时间位置
然后用ref(h,tj4-1)来验证一下, 是否取得信号那天的数据
这其中有个小细节问题: 是否+1 和-1的问题, 请自行对照和思考