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)); } }
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); } }