public CZQThostFtdcInputOrderActionField DeleteOrder(CZQThostFtdcInputOrderField order)
        {
            //撤单时,会引发报单时间小于登录时间的报单回报,
            //因此需要关闭过滤 FLag
            this.filterRestart = false;


            CZQThostFtdcInputOrderActionField orderAction = new CZQThostFtdcInputOrderActionField();

            orderAction.BrokerID   = order.BrokerID;
            orderAction.InvestorID = order.InvestorID;

            orderAction.FrontID   = this.FrontID;
            orderAction.SessionID = this.SessionID;
            orderAction.OrderRef  = order.OrderRef;

            orderAction.InstrumentID = order.InstrumentID;

            orderAction.ActionFlag = CTPStockActionFlagType.Delete;

            //CTPWrapper.TraderReqOrderAction(this._instance, orderAction, CreateRequestID());
            InvokeAPI(CTPStockRequestAction.OrderActionAction, orderAction);

            return(orderAction);
        }
 private void OnRspOrderAction_callback(IntPtr pTraderApi, ref CZQThostFtdcInputOrderActionField pInputOrderAction, ref CZQThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast)
 {
     if (null != OnRspOrderAction)
     {
         OnRspOrderAction(this, new OnRspOrderActionArgs(pTraderApi, ref pInputOrderAction, ref pRspInfo, nRequestID, bIsLast));
     }
 }
Exemple #3
0
 public OnRspOrderActionArgs(IntPtr pTraderApi, ref CZQThostFtdcInputOrderActionField pInputOrderAction, ref CZQThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast)
 {
     this.pTraderApi        = pTraderApi;
     this.pInputOrderAction = pInputOrderAction;
     this.pRspInfo          = pRspInfo;
     this.nRequestID        = nRequestID;
     this.bIsLast           = bIsLast;
 }
        public CZQThostFtdcInputOrderActionField DeleteOrder(CZQThostFtdcOrderField order)
        {
            CZQThostFtdcInputOrderActionField orderAction = new CZQThostFtdcInputOrderActionField();

            orderAction.BrokerID   = order.BrokerID;
            orderAction.InvestorID = order.InvestorID;
            orderAction.TraderID   = order.TraderID;

            orderAction.FrontID      = order.FrontID;
            orderAction.SessionID    = order.SessionID;
            orderAction.RequestID    = order.RequestID;
            orderAction.OrderRef     = order.OrderRef;
            orderAction.OrderLocalID = order.OrderLocalID;

            orderAction.ExchangeID   = order.ExchangeID;
            orderAction.InstrumentID = order.InstrumentID;

            orderAction.ActionFlag = CTPStockActionFlagType.Delete;

            InvokeAPI(CTPStockRequestAction.OrderActionAction, orderAction);

            return(orderAction);
        }
        private void OnRspOrderAction(IntPtr pTraderApi, ref CZQThostFtdcInputOrderActionField pInputOrderAction, ref CZQThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast)
        {
            SingleOrder order;
            string      strKey = string.Format("{0}:{1}:{2}", pInputOrderAction.FrontID, pInputOrderAction.SessionID, pInputOrderAction.OrderRef);

            if (_OrderRef2Order.TryGetValue(strKey, out order))
            {
                OrdStatus status;
                if (_PendingCancelFlags.TryGetValue(order, out status))
                {
                    _PendingCancelFlags.Remove(order);
                    EmitExecutionReport(order, status);
                }

                tdlog.Error("CTPZQ回应:{0},价{1},变化量{2},前置{3},会话{4},引用{5},{6}#{7}",
                            pInputOrderAction.InstrumentID, pInputOrderAction.LimitPrice,
                            pInputOrderAction.VolumeChange,
                            pInputOrderAction.FrontID, pInputOrderAction.SessionID, pInputOrderAction.OrderRef,
                            pRspInfo.ErrorID, pRspInfo.ErrorMsg);

                order.Text = string.Format("{0}|{1}#{2}", order.Text.Substring(0, Math.Min(order.Text.Length, 64)), pRspInfo.ErrorID, pRspInfo.ErrorMsg);
                EmitCancelReject(order, order.OrdStatus, order.Text);
            }
        }