盘中行情这个lowD(0)为什么取不到值呢

Params Vars Events OnInit() { } OnBar(ArrayRef<Integer> indexs) { Commentary("lowd"+text(LowD(0))); if (BarStatus!=2) //最新一个bar运行 return; Numeric yesClose =CloseD(1); //昨天的收盘价 Numeric todayLow =LowD(0); //今天的最低价 Numeric todayHigh =HighD(0); //今天的最高价 FileAppend("c:\\testlow.txt" , text(SystemDateTime)+"--"+symbol+"--"+text(date())+"--"+text(time())+"==Q_High ="+ text(Q_High)+"==Q_low ="+ text(Q_low) +"==HighD(0) ="+ text(todayHigh)+"==LowD(0) ="+ text(todayLow) ); if (time ==0.1459) buy(1,open); } 请问一下,盘中行情这个lowD(0)为什么取不到值呢,而且highd(0)取出的值和Q_HIGH不一致啊 下面的是实盘的14点行情数据,上面的是模拟盘的14点数据,可以看到highd0价格不一样,lowd0价格都是0.

highD 之类的函数 有内部运行逻辑,通过打开函数查看,放在if条件内导致,代码运行不全 axx = highD; 在主程序第一层下运行并赋值给变量,通过变量去使用。

highd(0)的行为和lowd(0)一致吗,另外Q_High 盘中出现NA,是否也和限制最新bar有关。

回复:HighD和LowD都是一样的,这一类都叫序列函数,您可以找官网的学习视频看看。Q_High只要是实时BAR应该都可以取到数据,除非在历史BAR上。

不能仅在最新BAR上运行。把下面这句去掉 if (BarStatus!=2) //最新一个bar运行 return;