protected void UpdateMarketDataVM(MarketDataVM mktVM, PBMarketData md) { //var contractInfo = ClientDbContext.FindContract(md.Contract); mktVM.LastPrice = md.MatchPrice; mktVM.BidPrice = md.BidPrice[0]; mktVM.AskPrice = md.AskPrice[0]; mktVM.BidSize = md.BidVolume[0]; mktVM.AskSize = md.AskVolume[0]; mktVM.Volume = md.Volume; mktVM.OpenValue = md.OpenValue; mktVM.PreCloseValue = md.PreCloseValue; mktVM.HighValue = md.HighValue; mktVM.LowValue = md.LowValue; mktVM.UpperLimitPrice = md.HighLimit; mktVM.LowerLimitPrice = md.LowLimit; mktVM.SettlePrice = md.SettlePrice; mktVM.PreSettlePrice = md.PreSettlePrice; mktVM.AveragePrice = md.AveragePrice; mktVM.HighLimint = md.HighLimit; mktVM.LowLimint = md.LowLimit; mktVM.OpenInterest = md.OpenInterest; mktVM.OpenValue = md.OpenValue; mktVM.PreOpenInterest = md.PreOpenInterest; mktVM.PriceChange = md.PriceChange; mktVM.CloseValue = md.CloseValue; mktVM.Turnover = md.Turnover; mktVM.MidPrice = (mktVM.BidPrice + mktVM.AskPrice) / 2; mktVM.AveragePriceMultiplier = mktVM.AveragePrice / mktVM.Multiple; mktVM.UpdateTime = string.Format("{0:D2}:{1:D2}:{2:D2}", md.UpdateTime / 3600, (md.UpdateTime / 60) % 60, md.UpdateTime % 60); }
protected virtual void RetMDSuccessAction(PBMarketData md) { var mktVM = FindMarketData(md.Contract); if (mktVM != null) { UpdateMarketDataVM(mktVM, md); RaiseNewMD(mktVM); } else { UnsubMarketData(new[] { new ContractKeyVM(md.Exchange, md.Contract) }); } }
public void SendSimMarketData(MarketDataOpt mdo) { if (mdo == null) { return; } var mktData = new PBMarketData(); mktData.Exchange = mdo.Exchange; mktData.Contract = mdo.Contract; mktData.AskPrice.Add(mdo.AskPrice); mktData.BidPrice.Add(mdo.BidPrice); mktData.AskVolume.Add(mdo.AskSize); mktData.BidVolume.Add(mdo.BidSize); MessageWrapper?.SendMessage((uint)BusinessMessageID.MSG_ID_RET_MARKETDATA, mktData); }
private void RetMDSuccessAction(PBMarketData obj) { }