private bool HasAlreadyHipe(HipeBaseStrategyItemData data) { for (int i = StrategyData.Count - 1; i >= 0; i--) { HipeBaseStrategyItemData prev = (HipeBaseStrategyItemData)StrategyData[i]; if ((data.Time - prev.Time).TotalHours > 24) { return(false); } if (prev.BaseCurrency != data.BaseCurrency || prev.MarketCurrency != data.MarketCurrency) { continue; } if (prev.Mark == "HP") { return(true); } } return(false); }
private void OnArbitrageChanged(object sender, ArbitrageChangedEventArgs e) { HipeBaseStrategyItemData data = new HipeBaseStrategyItemData(); data.Time = DataProvider.CurrentTime; data.BaseCurrency = e.TickersInfo.BaseCurrency; data.MarketCurrency = e.TickersInfo.MarketCurrency; data.LowestAsk = e.Arbitrage.LowestAsk; data.HighestBid = e.Arbitrage.HighestBid; data.Spread = e.Arbitrage.Spread; data.Profit = e.Arbitrage.MaxProfit; data.ProfitUSD = e.Arbitrage.MaxProfitUSD; if (HasPositiveArbitrage(e.Arbitrage)) { if (!HasAlreadyHipe(data)) { data.Mark = "HP"; } } StrategyData.Add(data); }