代码如下:
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线都有一个副本值
没试过就知道没用了?