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,爱你不容易啊?