请问老师,为什么没有限制在32到 64的bar之间开仓,这个判断条件没有起作用?
Params
Vars
Integer lots_num;
Events
OnBar(ArrayRef<Integer> indexs)
{
Commentary("BarsSinceToday:"+Text(BarsSinceToday));
lots_num=1;
//做多
if(MarketPosition == 0)
{
if(BarsSinceToday >=32 And BarsSinceToday < 64)
{
Buy(lots_num,Close);
}
}
//做空
if(MarketPosition == 0)
{
if(BarsSinceToday >=32 And BarsSinceToday < 64)
{
SellShort(lots_num,Close);
}
}
//平仓
Commentary("MarketPosition = " + Text(MarketPosition));
if(BarsSinceToday == 67 and MarketPosition > 0)
{
Commentary("MarketPosition = " + Text(MarketPosition));
Sell(0, Close[1]);
}
if(BarsSinceToday == 67 And MarketPosition < 0)
{
Commentary("MarketPosition = " + Text(MarketPosition));
BuyToCover(0, Close[1]);
}
}
我不知道你想表达的是什么
在我看来
你的开仓条件是 当前bar是今天的第32到63根bar之间的任意一根,并且当前没有持仓,那么开多(开空条件是无法满足的)
当前bar是今天第67根bar的时候,平仓。
我看了一下图上信号是符合这个逻辑的,我不知道你在问什么