void ISimulationDataProvider.OnNewItem(IInputDataWithTime item) { ArbitrageStatisticsItem st = (ArbitrageStatisticsItem)item; TickerCollection coll = Listener.ArbitrageList.FirstOrDefault(c => c.BaseCurrency == st.BaseCurrency && c.MarketCurrency == st.MarketCurrency); if (coll == null) { return; } coll.Arbitrage.LowestAskHost = st.LowestAskHost; coll.Arbitrage.HighestBidHost = st.HighestBidHost; coll.Arbitrage.Time = st.Time; coll.Arbitrage.LowestAskEnabled = st.LowestAskEnabled; coll.Arbitrage.HighestBidEnabled = st.HighestBidEnabled; coll.Arbitrage.LowestAsk = st.LowestAsk; coll.Arbitrage.HighestBid = st.HighestBid; coll.Arbitrage.Spread = st.Spread; coll.Arbitrage.Amount = st.Amount; coll.Arbitrage.MaxProfit = st.MaxProfit; coll.Arbitrage.MaxProfitUSD = st.MaxProfitUSD; if (coll.Arbitrage.UsdTicker != null) { coll.Arbitrage.UsdTicker.Last = st.RateInUSD; } coll.Arbitrage.History.Add(st); OnArbitrageChanged(Listener, new ArbitrageChangedEventArgs() { Arbitrage = coll.Arbitrage, TickersInfo = coll }); }
public IInputDataWithTime NextSimulationItem() { if (SimulationDataItemIndex >= SimulationData.Count) { return(null); } IInputDataWithTime res = SimulationData[SimulationDataItemIndex]; SimulationDataItemIndex++; return(res); }