コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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;
        }