public async Task Begin() { var priceTracker = PriceTracker.Current; await priceTracker.Initialize(); var arbList = ArbitrationTracker.GetMarketsThatExchangeOnBothBtcAndEth(priceTracker.GetMarkets("poloniex")); foreach (var item in arbList) { sortedArbList.Add(item); } priceTracker.OnPriceChangeAction = this; }
public void OnPriceChange(PriceChange pc) { if (sortedArbList.Contains(pc.CurrencyPair)) { var arbOpp = ArbitrationTracker .FindArbitrationOpportunitiesForExchangeCurrency( pc.Exchange, getCurrencyPair(pc.CurrencyPair).currency); if (arbOpp != null) { Console.WriteLine(arbOpp); } } (string basePair, string currency) getCurrencyPair(string input) { var split = input.Split('-'); return(split[0], split[1]); } }
static async Task TestArbitration() { //await new ArbitrationPriceActionTracker().Begin(); var priceTracker = PriceTracker.Current; await priceTracker.Initialize(); while (true) { await Task.Delay(10000); var sw = System.Diagnostics.Stopwatch.StartNew(); var arbOpps = ArbitrationTracker.FindArbitrationOpportunities(); sw.Stop(); foreach (var arbOpp in arbOpps) { Console.WriteLine(arbOpp); } Console.WriteLine($"Above calculations took {sw.ElapsedMilliseconds}ms to calculate"); Console.WriteLine(); } }