protected override void OnMarketData(CLRDFITCDepthMarketDataField MarketDataField) { if (ProgramTradeEvents.RspEventHandler.ContainsKey(RspSpiModules.RtnMarket) && null != ProgramTradeEvents.RspEventHandler[RspSpiModules.RtnMarket]) { TypedRspEventArgs <CLRDFITCDepthMarketDataField, object> evt = new TypedRspEventArgs <CLRDFITCDepthMarketDataField, object> { RequestID = 0, ErrorID = 0, Message = MarketDataField.instrumentID, Data = MarketDataField, Error = null, IsLast = true }; Parallel.ForEach(ProgramTradeEvents.RspEventHandler[RspSpiModules.RtnMarket].GetInvocationList(), handler => { (handler as EventHandler <RspEventArgs>).BeginInvoke(this, evt, null, null); }); } }
public static MarketDetail CreateMarketDetail(CLRDFITCDepthMarketDataField market) { MarketDetail result = new MarketDetail(); switch (market.exchangeID) { case "DCE": result.ExchangeID = ExchangeID.DCE; break; case "CZCE": result.ExchangeID = ExchangeID.CZCE; break; case "SHFE": result.ExchangeID = ExchangeID.SHFE; break; case "CFFEX": result.ExchangeID = ExchangeID.CFFEX; break; case "INE": result.ExchangeID = ExchangeID.INE; break; } result.InstrumentID = market.instrumentID; result.LatestPrice = market.lastPrice; result.OpenPrice = market.openPrice; result.HighestPrice = market.highestPrice; result.LowestPrice = market.lowestPrice; result.ClosePrice = market.closePrice; result.Volume = market.Volume; result.TopLimitPrice = market.upperLimitPrice; result.BottomLimitPrice = market.lowerLimitPrice; return(result); }
protected override void OnRspQryDepthMarketData(CLRDFITCDepthMarketDataField DepthMarketData, CLRDFITCErrorRtnField ErrorInfo, bool bIsLast) { throw new NotImplementedException(); }