private void ProcessOrderReject(CtpInputOrder input, CtpRspInfo rspInfo) { var login = _client.CtpLoginInfo; var localId = $"{login.FrontID}:{login.SessionID}:{input.OrderRef}"; ProcessOrderReject(localId, rspInfo); }
private void OnRspUserLogin(object sender, CtpRspUserLogin response, CtpRspInfo rspInfo, int requestId, bool isLast) { if (response != null && CtpConvert.CheckRspInfo(rspInfo)) { if (Connected) { Resubscribe(); return; } Connected = true; UserLogin = new RspUserLoginField(); var now = DateTime.Now; UserLogin.TradingDay = now.Year * 10000 + now.Month * 100 + now.Day; UserLogin.LoginTime = now.Hour * 10000 + now.Minute * 100 + now.Second; UserLogin.UserID = User.UserID; UserLogin.SessionID = string.Empty; _publisher.Post(ConnectionStatus.Logined, UserLogin); _publisher.Post(ConnectionStatus.Done); } else { SendError(rspInfo, nameof(OnRspUserLogin)); _publisher.Post(ConnectionStatus.Disconnected); } }
public CtpResponse(string userID, byte id, int intValue, CtpRspInfo rspInfo = null) : this(null, id) { Item1 = new CtpAny(intValue); Item2 = rspInfo; UserID = userID; }
public CtpResponse(byte[] clientID, byte id, object objValue, CtpRspInfo rspInfo = null) : this(clientID, id) { Item1 = new CtpAny(objValue); Item2 = rspInfo; UserID = ""; }
private void ProcessOrderReject(CtpInputOrder input, CtpRspInfo rspInfo) { var login = _client.CtpLoginInfo; var id = CtpConvert.GetId(input, login); ProcessOrderReject(id, rspInfo); }
private void ProcessOrderReject(string localId, CtpRspInfo rspInfo) { _orders.TryGetByLocalId(localId, out var order); if (order != null) { ReportOrder(order, ExecType.Rejected, OrderStatus.Rejected, rspInfo); } }
private void ProcessCancelReject(string localId, CtpRspInfo rspInfo) { _orders.TryGetByLocalId(localId, out var order); if (order != null) { ReportOrder(order, ExecType.CancelReject, order.Status, rspInfo); } }
///错误应答 private void NativeOnRspError(CtpRspInfo rspInfo, int requestId, bool isLast) { var rsp = new CtpResponse(); rsp.TypeId = CtpResponseType.OnRspError; rsp.Item1 = new CtpAny(rspInfo); rsp.RequestID = requestId; rsp.IsLast = isLast; ProcessResponse(ref rsp); }
///登出请求响应 private void NativeOnRspUserLogout(CtpUserLogout userLogout, CtpRspInfo rspInfo, int requestId, bool isLast) { var rsp = new CtpResponse(); rsp.TypeId = CtpResponseType.OnRspUserLogout; rsp.Item1 = new CtpAny(userLogout); rsp.Item2 = rspInfo; rsp.RequestID = requestId; rsp.IsLast = isLast; ProcessResponse(ref rsp); }
///取消订阅询价应答 private void NativeOnRspUnSubForQuoteRsp(CtpSpecificInstrument specificInstrument, CtpRspInfo rspInfo, int requestId, bool isLast) { var rsp = new CtpResponse(); rsp.TypeId = CtpResponseType.OnRspUnSubForQuoteRsp; rsp.Item1 = new CtpAny(specificInstrument); rsp.Item2 = rspInfo; rsp.RequestID = requestId; rsp.IsLast = isLast; ProcessResponse(ref rsp); }
private void ProcessCancelReject(CtpInputOrderAction action, CtpRspInfo rspInfo) { var localId = $"{action.FrontID}:{action.SessionID}:{action.OrderRef}"; ProcessCancelReject(localId, rspInfo); }
private void OnRspError(object sender, CtpRspInfo rspInfo, int requestId, bool isLast) { SendError(rspInfo, nameof(OnRspError)); }
private void ProcessOrderReject(CtpInputOrder input, CtpRspInfo rspInfo) { ProcessOrderReject(input.OrderRef, rspInfo); }
private void ProcessCancelReject(CtpInputOrderAction action, CtpRspInfo rspInfo) { ProcessCancelReject(action.OrderSysID, rspInfo); }
private void OnRspSubMarketData(object sender, CtpSpecificInstrument response, CtpRspInfo info, int requestId, bool last) { if (response == null) { return; } _spi.ProcessLog(new LogField(LogLevel.Debug, $"Ctpse subscribe {response.InstrumentID}")); }
private void ReportOrder(OrderField order, ExecType execType, OrderStatus newStatus, CtpRspInfo rspInfo) { ReportOrder(order, execType, newStatus, rspInfo.ErrorID, rspInfo.ErrorID, rspInfo.ErrorMsg); }
public CtpResponse(byte[] clientID, byte id, int intValue, CtpRspInfo rspInfo = null) : this(clientID, id) { Item1 = new CtpAny(intValue); Item2 = rspInfo; }
private void ProcessCancelReject(CtpOrderAction action, CtpRspInfo rspInfo) { ProcessCancelReject(action.OrderRef, rspInfo); }
internal void SendError(CtpRspInfo info, string source) { SendError(new ErrorField(info.ErrorID, info.ErrorID, info.ErrorMsg, source)); }
public static bool CheckRspInfo(CtpRspInfo info) { return(info == null || info.ErrorID == 0); }