public CZQThostFtdcInputOrderField InsertOrder(string exchangeID, string symbolCode, CTPStockDirectionType direct, double price, int volume) { CTPStockOffsetFlagType flag = CTPStockOffsetFlagType.Open; switch (direct) { case CTPStockDirectionType.Buy: case CTPStockDirectionType.ETFPur: case CTPStockDirectionType.MarginTrade: case CTPStockDirectionType.RepayMargin: case CTPStockDirectionType.DirectRepayMargin: flag = CTPStockOffsetFlagType.Open; break; case CTPStockDirectionType.Sell: case CTPStockDirectionType.ETFRed: case CTPStockDirectionType.ShortSell: case CTPStockDirectionType.RepayStock: case CTPStockDirectionType.DirectRepayStock: flag = CTPStockOffsetFlagType.Close; break; case CTPStockDirectionType.TransferSecurities: flag = CTPStockOffsetFlagType.Open; break; default: break; } CZQThostFtdcInputOrderField order = CreateInputOrder(exchangeID, symbolCode, direct, flag, price, volume); SendInsertOrder(order); return(order); }
private CZQThostFtdcInputOrderField CreateInputOrder(string exchangeID, string symbolCode, CTPStockDirectionType direct, CTPStockOffsetFlagType flag, double price, int volume, string orderRef = "") { CZQThostFtdcInputOrderField order = new CZQThostFtdcInputOrderField(); order.BrokerID = this.BrokerID; order.InvestorID = this.InvestorID; //合约 order.ExchangeID = exchangeID; order.InstrumentID = symbolCode; if (string.IsNullOrEmpty(orderRef)) { order.OrderRef = System.Threading.Interlocked.Increment(ref this.currentOrderRef).ToString(); } else { order.OrderRef = orderRef; } //限价单 order.OrderPriceType = CTPStockOrderPriceType.LimitPrice; //方向 order.Direction = direct; //开平仓 order.CombOffsetFlag = new byte[] { (byte)flag, 0, 0, 0, 0 }; //投机/套保 order.CombHedgeFlag = new byte[] { (byte)CTPStockHedgeFlagType.Speculation, 0, 0, 0, 0 }; ///价格 order.LimitPrice = price.ToString(); ///数量: 1 order.VolumeTotalOriginal = volume; ///有效期类型: 当日有效 order.TimeCondition = CTPStockTimeConditionType.GFD; ///GTD日期 // TThostFtdcDateType GTDDate; ///成交量类型: 任何数量 order.VolumeCondition = CTPStockVolumeConditionType.AV; ///最小成交量: 1 order.MinVolume = 1; ///触发条件: 立即 order.ContingentCondition = CTPStockContingentConditionType.Immediately; ///强平原因: 非强平 order.ForceCloseReason = CTPStockForceCloseReasonType.NotForceClose; ///自动挂起标志: 是 order.IsAutoSuspend = true; ///用户强评标志: 否 order.UserForceClose = false; //条件单处理内容 //if (parameter.OrderType == OrderType.ConditionOrder) //{ // //条件触发价 // order.StopPrice = (double)parameter.ConditionPrice; // //报价方式 // if (order.OrderPriceType != CTPStockOrderPriceType.LimitPrice) // { // order.LimitPrice = "0"; // } //} return(order); }
private CZQThostFtdcInputOrderField CreateInputOrder(string exchangeID,string symbolCode, CTPStockDirectionType direct, CTPStockOffsetFlagType flag,double price,int volume, string orderRef = "") { CZQThostFtdcInputOrderField order = new CZQThostFtdcInputOrderField(); order.BrokerID = this.BrokerID; order.InvestorID = this.InvestorID; //合约 order.ExchangeID = exchangeID; order.InstrumentID = symbolCode; if (string.IsNullOrEmpty(orderRef)) { order.OrderRef = System.Threading.Interlocked.Increment(ref this.currentOrderRef).ToString(); } else { order.OrderRef = orderRef; } //限价单 order.OrderPriceType = CTPStockOrderPriceType.LimitPrice; //方向 order.Direction = direct; //开平仓 order.CombOffsetFlag = new byte[] { (byte)flag, 0, 0, 0, 0 }; //投机/套保 order.CombHedgeFlag = new byte[] { (byte)CTPStockHedgeFlagType.Speculation, 0, 0, 0, 0 }; ///价格 order.LimitPrice = price.ToString(); ///数量: 1 order.VolumeTotalOriginal = volume; ///有效期类型: 当日有效 order.TimeCondition = CTPStockTimeConditionType.GFD; ///GTD日期 // TThostFtdcDateType GTDDate; ///成交量类型: 任何数量 order.VolumeCondition = CTPStockVolumeConditionType.AV; ///最小成交量: 1 order.MinVolume = 1; ///触发条件: 立即 order.ContingentCondition = CTPStockContingentConditionType.Immediately; ///强平原因: 非强平 order.ForceCloseReason = CTPStockForceCloseReasonType.NotForceClose; ///自动挂起标志: 是 order.IsAutoSuspend = true; ///用户强评标志: 否 order.UserForceClose = false; //条件单处理内容 //if (parameter.OrderType == OrderType.ConditionOrder) //{ // //条件触发价 // order.StopPrice = (double)parameter.ConditionPrice; // //报价方式 // if (order.OrderPriceType != CTPStockOrderPriceType.LimitPrice) // { // order.LimitPrice = "0"; // } //} return order; }