private void OnRtnInstrumentStatus_callback(IntPtr pTraderApi, ref CThostFtdcInstrumentStatusField pInstrumentStatus) { if (null != OnRtnInstrumentStatus) { OnRtnInstrumentStatus(this, new OnRtnInstrumentStatusArgs(pTraderApi, ref pInstrumentStatus)); } }
private void OnRtnInstrumentStatus_callback(object sender, ref CThostFtdcInstrumentStatusField pInstrumentStatus) { if (null != OnRtnInstrumentStatus) { OnRtnInstrumentStatus(this, new OnRtnInstrumentStatusArgs(ref pInstrumentStatus)); } }
public void FireOnRtnInstrumentStatus(CThostFtdcInstrumentStatusField pInstrumentStatus) { if (null != OnRtnInstrumentStatus) { OnRtnInstrumentStatus(pInstrumentStatus); } }
private void CTPOnRtnInstrumentStatus(ref CThostFtdcInstrumentStatusField pInstrumentStatus) { ExchangeStatusType status = ExchangeStatusType.BeforeTrading; switch (pInstrumentStatus.InstrumentStatus) { case TThostFtdcInstrumentStatusType.THOST_FTDC_IS_Continous: status = ExchangeStatusType.Trading; break; case TThostFtdcInstrumentStatusType.THOST_FTDC_IS_Closed: status = ExchangeStatusType.Closed; break; case TThostFtdcInstrumentStatusType.THOST_FTDC_IS_NoTrading: status = ExchangeStatusType.NoTrading; break; } DicExcStatus[pInstrumentStatus.InstrumentID] = status; if (IsLogin) { _OnRtnExchangeStatus?.Invoke(this, new StatusEventArgs { Exchange = pInstrumentStatus.InstrumentID, Status = status }); } }
void OnRtnInstrumentStatus(CThostFtdcInstrumentStatusField pInstrumentStatus) { // 由于只在有新消息过来时才会收到,所以可能认为不好测试,看不出效果 // 在测试时,把插件属性的ResumeType改成THOST_TERT_RESTART,然后连接CTP就可以看到效果了。 Console.WriteLine("==交易所状态"); Console.WriteLine("{0},{1},{2}", pInstrumentStatus.ExchangeID, pInstrumentStatus.InstrumentID, pInstrumentStatus.InstrumentStatus); }
private void OnRtnInstrumentStatus(IntPtr pTraderApi, ref CThostFtdcInstrumentStatusField pInstrumentStatus) { tdlog.Info("{0},{1},{2},{3}", pInstrumentStatus.ExchangeID, pInstrumentStatus.InstrumentID, pInstrumentStatus.InstrumentStatus, pInstrumentStatus.EnterReason); //通知单例 CTPAPI.GetInstance().FireOnRtnInstrumentStatus(pInstrumentStatus); }
private void OnRtnInstrumentStatus(IntPtr pTraderApi, ref CThostFtdcInstrumentStatusField pInstrumentStatus) { tdlog.Info("{0},{1},{2},{3},{4},{5},{6},{7}", pInstrumentStatus.ExchangeID, pInstrumentStatus.InstrumentID, pInstrumentStatus.InstrumentStatus, pInstrumentStatus.EnterReason, pInstrumentStatus.EnterTime, pInstrumentStatus.TradingSegmentSN, pInstrumentStatus.ExchangeInstID, pInstrumentStatus.SettlementGroupID); //通知单例 CTPAPI.GetInstance().FireOnRtnInstrumentStatus(pInstrumentStatus); // 到IF的交割日,是否会收到两个有关IF的记录?如果在此进行清理是否会有问题? // 只会收到一条 // 遍历是否过期 if (pInstrumentStatus.InstrumentStatus == TThostFtdcInstrumentStatusType.Closed) { Dictionary <GenericOrderItem, CThostFtdcOrderField> tmp = new Dictionary <GenericOrderItem, CThostFtdcOrderField>(); foreach (var pair in orderMap.OrderItem_OrderField) { if (pair.Value.ExchangeID == pInstrumentStatus.ExchangeID) { int cnt = pair.Key.GetLegNum(); foreach (var pair2 in orderMap.Order_OrderItem) { // 得找到OpenQuant层的单子 if (pair.Key == pair2.Value) { --cnt; EmitExpired(pair2.Key); if (cnt <= 0) { break; } } } tmp[pair.Key] = pair.Value; } } foreach (var pair in tmp) { OnLastStatus(pair.Key, pair.Value.OrderSysID, pair.Value.OrderRef); } tmp.Clear(); } }
private void OnRtnInstrumentStatus_callback(IntPtr pTraderApi, ref CThostFtdcInstrumentStatusField pInstrumentStatus) { if (null != OnRtnInstrumentStatus) { OnRtnInstrumentStatus(this, new OnRtnInstrumentStatusArgs(pTraderApi, ref pInstrumentStatus)); } }
public OnRtnInstrumentStatusArgs(IntPtr pTraderApi, ref CThostFtdcInstrumentStatusField pInstrumentStatus) { this.pTraderApi = pTraderApi; this.pInstrumentStatus = pInstrumentStatus; }
///合约交易状态通知 public void OnRtnInstrumentStatus(CThostFtdcInstrumentStatusField pInstrumentStatus) { Console.WriteLine("OnRtnInstrumentStatus"); }
private void OnRtnInstrumentStatus_3(ref CThostFtdcInstrumentStatusField pInstrumentStatus) { OnRtnInstrumentStatus_1(this, ref pInstrumentStatus); }
private void OnRtnInstrumentStatus(ref CThostFtdcInstrumentStatusField pInstrumentStatus) { Log($"{pInstrumentStatus.InstrumentID}:{pInstrumentStatus.InstrumentStatus}"); }
public OnRtnInstrumentStatusArgs(IntPtr pTraderApi, ref CThostFtdcInstrumentStatusField pInstrumentStatus) { this.pTraderApi = pTraderApi; this.pInstrumentStatus = pInstrumentStatus; }
private void OnRtnInstrumentStatus_3(IntPtr pTraderApi, ref CThostFtdcInstrumentStatusField pInstrumentStatus) { OnRtnInstrumentStatus_1(this, pTraderApi, ref pInstrumentStatus); }
private void OnRtnInstrumentStatus_3(IntPtr pTraderApi, ref CThostFtdcInstrumentStatusField pInstrumentStatus) { OnRtnInstrumentStatus_1(this, pTraderApi, ref pInstrumentStatus); }
public OnRtnInstrumentStatusArgs(ref CThostFtdcInstrumentStatusField pInstrumentStatus) { this.pInstrumentStatus = pInstrumentStatus; }
public override void OnRtnInstrumentStatus(CThostFtdcInstrumentStatusField pInstrumentStatus) { _callbackApi.OnRtnInstrumentStatus(pInstrumentStatus); }
internal static global::System.Runtime.InteropServices.HandleRef getCPtr(CThostFtdcInstrumentStatusField obj) { return((obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr); }