Data[0]图层为原油加权30分钟
Data[1]图层为原油加权1分钟
平空单条件为Data[1]. H>= Data[0]. ShortExitPrice
条件在图中满足,为什么没有平仓呢?
空单平仓代码如下:
// 平空仓:从开仓后最低点往上涨1.6%时平仓
If (MarketPosition == -1)
{
//
If (BarsSinceEntry==0)
{
LowestSinceEntry = LOW;
Commentary("LowestSinceEntry= "+Text(LowestSinceEntry));
}
If (BarsSinceEntry>0)
{
LowestSinceEntry =Min(LowestSinceEntry[1],Low); //随后的bar更新最高价
Commentary("LowestSinceEntry= "+Text(LowestSinceEntry));
}
// 计算回撤平仓价格
ShortExitPrice = LowestSinceEntry * (1 + DrawdownPercent / 100);
Commentary("ShortExitPrice= "+Text(ShortExitPrice));
Data[1]. PlotNumeric("ShortExitPrice", Data[0]. ShortExitPrice);
// 检查是否需要平仓
If (Data[1]. H>= Data[0]. ShortExitPrice )
{
BuyToCover(TradeLots, ShortExitPrice);
}
} 我觉得这个问题好像也不难诊断吧,在平仓的业务逻辑代码前输出一下marketposition,还有你的平仓条件的变量数据,总是能发现哪里不对的
data0这个图层之前开过仓的,如图二所示

data0这个图层之前开过仓么?