全部 TBQuant功能 TBL语言 TB开户 问答专区 其他
编写取值问题
qijian 分享到
2021-12-15 13:29

aa = Highest(H,10);
bb = NthCon(CurrentBar<100 && H>=aa,1);

老师,这个我一直写不好,帮我解决下:

//假设当前CurrentBar数为150

//取CurrentBar<100 且 最近一个H>=aa到现在的周期数

//目前发现的问题是aa在条件成立时候,没有数据,不知道如何解决,请老师帮忙下

Bryan2020

你的写法完全没有问题,只需把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);
    }
 

2021-12-15 18:13
qijian
@Bryan2020

//老师,我的意思是:

当前CurrentBar必须大于100,求CurrentBar<100前第一次的H>aa到当前的周期数

2021-12-15 22:04
Bryan2020
@qijian

要这么说的话,你的逻辑根本就是错的。你仔细看看我那个图,100根之前,第一个满足aa>=H的并不是你画出来的那根,而是我标出的第100根K线往前数的第三根。如果想要取到你标的那个K线,要么你修改你的逻辑,要么你修改参数,你把10改成50、60,大概率就会取到你说的那根。

就你当前的逻辑来说,那两句代码是完全没问题的。

2021-12-16 08:42
qijian
@Bryan2020

这个2605是经过一系列计算得到,如果是固定数值例如: bb = NthCon(CurrentBar<100 && H>=2605,1); 这样是可以取到正确数据。

现在的问题是这个得到的2605不固定,能不能向前传递,或者有没有其他的办法?

2021-12-16 11:51
Bryan2020
@qijian

把你经过一系列计算得到的结果赋值给一个全局变量CC,然后bb = NthCon(CurrentBar<100 && H>=CC,1); 应该就可以的吧

2021-12-16 12:16
qijian
@Bryan2020

刚刚又重新写了:

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);

这个数据也不是想要的结果

2021-12-16 12:11
kyover

置顶帖有投稿

2021-12-15 14:40
qijian
@kyover

cryingcryingcryingcryingcrying

好伤心啊,这么些小问题都要投稿,还要去看直播,最可悲的是还要排队,还要等几个星期?

TB,爱你不容易啊?

2021-12-15 14:54
您未登录,请先 登录注册 后发表评论
顶部