您好,我想问一下,以下两种表达方式一样吗?如果一样的话,为什么他们开单效果差异很大,明明该开单的,用上CROSS指令就是不开单。如果不一样的话,他们区别在哪,有没有TB中关于CROSSOVER或CROSSUNDER的定义, 表达方式一:And (Close[1]<=BOTTOM[1])And (Close>BOTTOM) 表达方式二: CrossOver(C,BOTTOM)
If ((MarketPosition <>1)And A_BuyPosition() < KCSS and TradingDayLeft>=34 And (Symbol == MainSymbol)
And((b10 - dma20) / dma20 <= 0.01 * (1 + 0.2 * N2)) And ((Close - dma20)/ dma20 <= 0.03)
And dma60 > dma60[1]
And dma20 > dma20[1]
And dma20> dma60
And (Close >dma20)
And (CurrentBar > 0)
And ((Close-b5) <= (3 + N1 * 0.2) * atr)
//And (Close[1]<=BOTTOM[1])And (Close>BOTTOM)And (RSI[1]<=44)And (RSI>44))
And CrossOver(C,BOTTOM) And CrossOver(RSI,44))
{
Buy(0, Close);
} 您好,老师,假如上面开仓代码中,我想用CROSOVER指令,我该怎么写,需要将CrossOver(C,BOTTOM),用括号括起来, And (CrossOver(C,BOTTOM) )And (CrossOver(RSI,44)) ),还是有其他的写法,或者开仓指令较多时,就不能用CROSSOVER指令了,我还是不太清楚,辛苦再帮忙指导一下
逻辑上两者一致。但是crossover是序列对象,要遵守序列对象的使用规则,即不能放在and 或者or连接词后面,或者放在if for while等控制结构内。这样会导致计算出错。