if条件不满足,但进入了执行语句

背景:日线以下级别周期策略,QQ_ATR为小周期逆推日线级别ATR的函数,策略执行前10天的时候,DATR都是N/A。

问题:在前10天,也会产生开仓,此时 “DATR <> InvalidNumeric” 应该为 false 进不去循环才对呀,求赐教~~~

OnBar(ArrayRef<Integer> indexs)

{

DATR = QQ_ATR(10); // 10天周期的日线ATR

if (Time >= daystart && Time <= dayfinish && DATR <> InvalidNumeric)

{

// 顺势开多

if (longCurrentContracts == 0 // 没多单

&& !reverse_long // long关闭

&& High > bbreak_1) // 当前bar最高价>bbreak_1

{

if (shortCurrentContracts == 0) // 没空单

{

Buy(lots, Max(Open, bbreak_1)); // 开多

barentrycnt = 0; // 开仓后置0

}else if(shortCurrentContracts > 0 && barentrycnt > 0) // 有空单,非当前bar开仓

{

BuyToCover(0, Max(Open, bbreak_1)); // 平空

Buy(lots, Max(Open, bbreak_1)); // 开多

barentrycnt = 0; // 开仓后置0

}

}

}

}

for语句执行问题
开仓条件执行语句有问题
请教!关于RANGE 和 IF()条件语句
导进
if条件不满足,值为什么?
请教版主关于判断语句异常执行的问题
关于分支条件判断语句结构与执行效率的问题
限定了时间,但还是在不断发送委托单
止损语句不能执行
各位大神持仓数量的条件语句怎么添加

缺少环境不太好分析。

建议直接通过print和commentary等工具输出关键节点的条件信息判断条件到底有没有满足

输出过了,确实不满足;但是将这个条件(DATR <> InvalidNumeric)放到第二层的if条件中,就能够控制住不开单。

找到原因了,if (条件1 || 条件2 && 条件3),没把 条件1||条件2 用括号圈起来