private void Send(SPOrderItem item) { if (item == null) { return; } SingleOrder order = item.Leg[0].Order; SingleOrder order2 = item.Leg[1].Order; string symbol = item.GetSymbol(); double price = order.Price - order2.Price; int qty = (int)order.OrderQty; // 是否要做价格调整? byte[] bytes = { (byte)CTPAPI.ToCTP(item.Leg[0].OpenClose), (byte)CTPAPI.ToCTP(item.Leg[1].OpenClose) }; string szCombOffsetFlag = System.Text.Encoding.Default.GetString(bytes, 0, bytes.Length); byte[] bytes2 = { (byte)HedgeFlagType, (byte)HedgeFlagType }; string szCombHedgeFlag = System.Text.Encoding.Default.GetString(bytes2, 0, bytes2.Length); TThostFtdcDirectionType Direction = order.Side == Side.Buy ? TThostFtdcDirectionType.Buy : TThostFtdcDirectionType.Sell; TThostFtdcOrderPriceTypeType OrderPriceType = TThostFtdcOrderPriceTypeType.LimitPrice; TThostFtdcTimeConditionType TimeCondition = TThostFtdcTimeConditionType.GFD; TThostFtdcContingentConditionType ContingentCondition = TThostFtdcContingentConditionType.Immediately; TThostFtdcVolumeConditionType VolumeCondition = TThostFtdcVolumeConditionType.AV; int nRet = 0; #if CTP nRet = TraderApi.TD_SendOrder(m_pTdApi, -1, symbol, Direction, szCombOffsetFlag, szCombHedgeFlag, qty, price, OrderPriceType, TimeCondition, ContingentCondition, 0, VolumeCondition); #endif if (nRet > 0) { orderMap.CreateNewOrder(string.Format("{0}:{1}:{2}", _RspUserLogin.FrontID, _RspUserLogin.SessionID, nRet), item); } }