求助:记录阶段高低点
代码如下:Vars Series<Numeric> low_num; Series<Numeric> high_num; OnBar(ArrayRef<Integer> indexs) { if(low<low[1] and Low[-1]>=Low) { low_num=low; PlotNumeric(low_high,low); } if(high>high[1] and high[-1]<=high) { high_num=high; PlotNumeric(low_high,high); } Commentary(low_num[0]:+text(low_num[0])); Commentary(low_num[1]:+text(low_num[1])); Commentary(low_num[2]+text(low_num[2])); Commentary(high_num[0]+text(high_num[0])); Commentary(high_num[1]+text(high_num[1])); Commentary(high_num[2]+text(high_num[2]));}序列变量加了条件判断,想把不是阶段最高低的位置去掉,现在查看下来每一根都有值,不赋值就给上一根。想在十字位置拿到第2个前高的值3821,但是拿到的是3834,该怎么拿到我箭头标记的第2根高点呢?
1. Low[-1]这是想要用以后一个bar里的值?不能2.用两个序列变量,high1 ,high2的方法是对的,先high2 = high1,后high1=新的高点值
回复:1.我只跑回测,只用历史数据,可以往后拿数据,不然我没法判断当前的最高价是不是最高价,如果用前3根去比较,点只能画在当前k线上,我需要画在最高点k线上;2.先high2 = high1,后high1=新的高点值确实可以,但是只能回溯2根,再回溯1根又要重新定义一个序列变量
回复:1.你可以在画图的时候用-1画在最高点上。2.序列变量就是每个bar一个值,不需要重新定义,你再理解理解吧
回复:我不想要每个bar一个值,但是又要保存数据,数组嫩根python一样用下标取值吗arr[-2:-1]
回复:这个tb语言的特点是基于bar的,特殊的序列变量一个bar一个值,就是方便使用的。python的[]里负数是表示倒数第几个,而tb的[]里,-1是表示未来的值,1表示前一个值(你要前面一个值就直接用[2])。至于用 :获取一序列的值自己试试吧
用两个序列变量,high1 ,high2每次刷新高点值的的时候逻辑这样设计high1=新的高点值high2 = high1
回复:好像没有用,序列变量在每根k线都有一个副本值
回复:没试过就知道没用了?