根据期货数据用A函数交易期权的代码问题
老师好,能否麻烦帮忙看下以下在onsigal 域用A函数开仓、平仓期权的代码准确吗?下单时是用图层取实时价格data5.close 还是用函数Q_AskPrice取价格比较好?谢谢! OnSignal(ArrayRef<Signal> sigs) { If(BarStatus != 2) { Return; } // 最小变动价位 Numeric MP = MinMove * PriceScale; String callOptionSymbol;//看涨期权代码 String putOptionSymbol;//看跌期权代码 Numeric callOptionprice;//看涨期权价格 Numeric putOptionprice;//看跌期权价格 //确定期权的合约代码和期权合约的价格 IF(IO_MO) { callOptionSymbol= data5.symbol;//data5为看涨期权; putOptionSymbol=data8.symbol;//data8为看跌期权; callOptionprice=data5.close+data5.MinMove*data5.PriceScale*3;//data5当前价格+3倍最小变动; putOptionprice=data8.close+data8.MinMove*data8.PriceScale*3;//data5当前价格+3倍最小变动; }Else { callOptionSymbol= data6.symbol;//data6为看涨期权; putOptionSymbol=data7.symbol;//data7为看跌期权; callOptionprice=data6.close+data6.MinMove*data6.PriceScale*3;//data5当前价格+3倍最小变动; putOptionprice=data7.close+data7.MinMove*data7.PriceScale*3;//data5当前价格+3倍最小变动 } Print("========================"); // 信号域发单 Print("===" + Text(SystemDateTime) + "==="); Integer i = 0; For i = 0 To GetArraySize(sigs) - 1 { SignalRef sig = sigs[i]; If(!BitHas(sig.flag, Enum_Signal_NotSend) && QuoteStatus == Enum_QuoteStatus_RealTime) { // 开仓信号处理 If(sig.combOffset == Enum_Entry) { // 判断是买入还是卖出信号 If(sig.side == Enum_Buy) { // 买入信号 -> 购买看涨期权 If(callOptionSymbol != "") { Array<Integer> orders; Bool orderRet = A_SendOrderEx(callOptionSymbol, Enum_Buy, Enum_Entry, lotsoption,Q_AskPrice, orders, "", A_GetOrderCreateSource); Print("买入看涨期权: " + callOptionSymbol + ", 结果: " + IIFString(orderRet, "成功", "失败")); If(orderRet) { optionHoldingSymbol = callOptionSymbol; } } } Else If(sig.side == Enum_Sell) { // 卖出信号 -> 购买看跌期权 If(putOptionSymbol != "") { Array<Integer> orders; Bool orderRet = A_SendOrderEx(putOptionSymbol, Enum_Buy, Enum_Entry, lotsoption, Q_AskPrice, orders,"",A_GetOrderCreateSource); Print("买入看跌期权: " + putOptionSymbol + ", 结果: " + IIFString(orderRet, "成功", "失败")); If(orderRet) { optionHoldingSymbol = putOptionSymbol; } } } } // 平仓信号处理 Else If(sig.combOffset == Enum_Exit && optionHoldingSymbol != "") { Array<Integer> orders; //这里的期权平仓价格用“Q_AskPrice”合适吗? Bool orderRet = A_SendOrderEx(optionHoldingSymbol, Enum_sell, Enum_Exit, lotsoption, Q_AskPrice, orders, "", A_GetOrderCreateSource); Print("平仓" + "期权: " + optionHoldingSymbol + ", 结果: " + IIFString(orderRet, "成功", "失败")); If(orderRet) { optionHoldingSymbol = ""; } } } } }