老师好:空头开仓Enum_SellShort,平仓Enum_BuyToCover变量没有声明的原因
OnSignal(ArrayRef<Signal> sigs) { Integer Timeid; Integer i; String TradeSymbol; Tick Tick1; Array<Integer> OrderId; Position Position1; For i = 0 To GetArraySize(sigs) - 1 { If(TradeFlg[sigs[i].index] == 0) { TradeFlg[sigs[i].index] = 1; If(sigs[i].flag == 0) { TradeSymbol = TradeSymbols; If(!GetTick(TradeSymbol, Tick1)) { LogFile("获取Tick失败,品种:" + TradeSymbol); Continue; } If(A_GetPosition(TradeSymbol, Position1, "", 0)) { // ========== 1. 无净持仓时:开多 / 开空 ========== If(Position1.longCurrentVolume == Position1.shortCurrentVolume) { // 多头开仓(正确:Enum_Buy + Enum_Entry) If(sigs[i].side == Enum_Buy) { A_SendOrderEx(TradeSymbol, Enum_Buy, Enum_Entry, Lots, Tick1.bidask1.askP, OrderId, "", A_GetOrderCreateSource(), 0); Timeid = CreateTimer(5000); OrderId_timer[Timeid] = OrderId; LogFile("多头开仓下单:品种=" + TradeSymbol + " 手数=" + Text(Lots) + " 价格=" + Text(Tick1.bidask1.askP)); } // 空头开仓(修正:用Enum_Sell + Enum_Entry) If(sigs[i].side == Enum_SellSellShort) { A_SendOrderEx(TradeSymbol, Enum_SellSellShort, Enum_Entry, Lots, Tick1.bidask1.bidP, OrderId, "", A_GetOrderCreateSource(), 0); Timeid = CreateTimer(5000); OrderId_timer[Timeid] = OrderId; LogFile("空头开仓下单:品种=" + TradeSymbol + " 手数=" + Text(Lots) + " 价格=" + Text(Tick1.bidask1.bidP)); } } // ========== 2. 持有净多头持仓时:平多 ========== If(Position1.longCurrentVolume > Position1.shortCurrentVolume) { // 平多仓(正确:Enum_Sell + Enum_Exit) If(sigs[i].side == Enum_Sell) { A_SendOrderEx(TradeSymbol, Enum_Sell, Enum_Exit, Lots, Tick1.bidask1.bidP, OrderId, "", A_GetOrderCreateSource(), 0); Timeid = CreateTimer(5000); OrderId_timer[Timeid] = OrderId; LogFile("多头平仓下单:品种=" + TradeSymbol + " 手数=" + Text(Lots) + " 价格=" + Text(Tick1.bidask1.bidP)); } } // ========== 3. 持有净空头持仓时:平空 ========== If(Position1.shortCurrentVolume > Position1.longCurrentVolume) { // 平空仓(修正:用Enum_Buy + Enum_Exit) If(sigs[i].side == Enum_BuyToCover) { A_SendOrderEx(TradeSymbol, Enum_BuyToCover, Enum_Exit, Lots, Tick1.bidask1.askP, OrderId, "", A_GetOrderCreateSource(), 0); Timeid = CreateTimer(5000); OrderId_timer[Timeid] = OrderId; LogFile("空头平仓下单:品种=" + TradeSymbol + " 手数=" + Text(Lots) + " 价格=" + Text(Tick1.bidask1.askP)); } } } Else { LogFile("获取持仓失败,品种:" + TradeSymbol); } } } } }老师好:空头开仓Enum_SellShort变量,平仓Enum_BuyToCover没有声明的原因,用Enum_Sell,和Enum_Buy开空,平空可以吗