aa = Highest(H,10);
bb = NthCon(CurrentBar<100 && H>=aa,1);
老师,这个我一直写不好,帮我解决下:
//假设当前CurrentBar数为150
//取CurrentBar<100 且 最近一个H>=aa到现在的周期数
//目前发现的问题是aa在条件成立时候,没有数据,不知道如何解决,请老师帮忙下
你的写法完全没有问题,只需把aa和bb都定义成序列变量即可。
Vars
Series<Numeric> aa;
Series<Numeric> bb;
Events
OnBar(ArrayRef<Integer> indexs)
{
aa = Highest(H,10);
bb = NthCon(CurrentBar<100 && H>=aa,1);
PlotString("BB",Text(bb),Low);
}
//老师,我的意思是:
当前CurrentBar必须大于100,求CurrentBar<100前第一次的H>aa到当前的周期数
要这么说的话,你的逻辑根本就是错的。你仔细看看我那个图,100根之前,第一个满足aa>=H的并不是你画出来的那根,而是我标出的第100根K线往前数的第三根。如果想要取到你标的那个K线,要么你修改你的逻辑,要么你修改参数,你把10改成50、60,大概率就会取到你说的那根。
就你当前的逻辑来说,那两句代码是完全没问题的。
这个2605是经过一系列计算得到,如果是固定数值例如: bb = NthCon(CurrentBar<100 && H>=2605,1); 这样是可以取到正确数据。
现在的问题是这个得到的2605不固定,能不能向前传递,或者有没有其他的办法?
刚刚又重新写了:
If(CurrentBar>=164)
{
aa = 2605;
}Else
{
aa = 0;
}
PlotString("aa",Text(aa),L);
bb = NthCon(CurrentBar<154 && H>=aa,1);
PlotString("bb",Text(bb),H);
这个数据也不是想要的结果
把你经过一系列计算得到的结果赋值给一个全局变量CC,然后bb = NthCon(CurrentBar<100 && H>=CC,1); 应该就可以的吧
置顶帖有投稿
好伤心啊,这么些小问题都要投稿,还要去看直播,最可悲的是还要排队,还要等几个星期?
TB,爱你不容易啊?