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;