public static ResizeableArray <TickerCollection> GetItems(List <Exchange> exchanges) { ResizeableArray <TickerCollection> arbitrageList = new ResizeableArray <TickerCollection>(); List <List <Ticker> > markets = GetMarketsList(exchanges); if (markets.Count == 0) { return(arbitrageList); } //string[] marketItems = new string[] { "ETC", "LTC", "ADA", "XRP", "EOS", "NES", "ETH", "BTC", "STR", "XMR", "DASH", "ZEC", "NXT" }; var mFirst = markets[0]; for (int mi = 0; mi < mFirst.Count; mi++) { Ticker ticker = mFirst[mi]; //if(!marketItems.Contains(ticker.MarketCurrency)) // continue; //if(ticker.BaseCurrency != "BTC") // continue; TickerCollection info = new TickerCollection(); info.BaseCurrency = ticker.BaseCurrency; info.MarketCurrency = ticker.MarketCurrency; info.Add(ticker); for (int i = 1; i < markets.Count; i++) { Ticker tt = markets[i].FirstOrDefault((t) => t.BaseCurrency == ticker.BaseCurrency && t.MarketCurrency == ticker.MarketCurrency); if (tt == null) { continue; } info.Add(tt); } if (info.Count < 2) { continue; } info.UsdTicker = mFirst.FirstOrDefault((t) => t.MarketCurrency == info.BaseCurrency && t.BaseCurrency == "USDT"); arbitrageList.Add(info); } for (int ai = 0; ai < arbitrageList.Count; ai++) { TickerCollection coll = arbitrageList[ai]; for (int i = 0; i < coll.Count; i++) { coll.Tickers[i].UpdateMode = TickerUpdateMode.Arbitrage; } } return(arbitrageList); }
public static List <TickerCollection> GetItems() { List <TickerCollection> arbitrageList = new List <TickerCollection>(); List <List <Ticker> > markets = GetMarketsList(); foreach (Ticker ticker in markets.First()) { TickerCollection info = new TickerCollection(); info.BaseCurrency = ticker.BaseCurrency; info.MarketCurrency = ticker.MarketCurrency; info.Add(ticker); for (int i = 1; i < markets.Count; i++) { Ticker tt = markets[i].FirstOrDefault((t) => t.BaseCurrency == ticker.BaseCurrency && t.MarketCurrency == ticker.MarketCurrency); if (tt == null) { continue; } info.Add(tt); } if (info.Count < 2) { continue; } info.UsdTicker = markets.First().FirstOrDefault((t) => t.MarketCurrency == info.BaseCurrency && t.BaseCurrency == "USDT"); arbitrageList.Add(info); } foreach (TickerCollection coll in arbitrageList) { for (int i = 0; i < coll.Count; i++) { coll.Tickers[i].UpdateMode = TickerUpdateMode.Arbitrage; } } return(arbitrageList); }