private async Task RetryTimeGappedMarkets(List <MarketQueryResponse> markets) { do { var mkQueries = new List <MarketQueryResponse>(markets); foreach (MarketQueryResponse mk in mkQueries) { bool opened = await BtrexData.TryOpenMarket(mk); if (opened) { markets.Remove(mk); } } if (markets.Count == 0) { break; } for (int i = 10; i > 0; i--) { Trace.Write(string.Format("\r ({0}) TimeGapped Markets (TradeFills->Candles), Retry in {1} seconds...\r", markets.Count, i)); Thread.Sleep(1000); } Trace.Write("\r \r"); } while (markets.Count > 0); }
static async Task RunAsync() { //UPDATE LOCALLY STORED 5m CANDLES, AND .CSV RECORDS: await HistoricalData.UpdateHistData(); //INITIALIZE DATA, THEN CONNECT WEBSOCKET BtrexData.NewData(); await BtrexWS.Connect(); ConfigTraceLogging(); //SUBSCRIBE TO DESIRED MARKETS, THEN START-DATA-UPDATES: await BtrexController.InitializeMarkets(); //START DATA THREAD await BtrexData.StartDataUpdates(); //START CALCS/STRATEGY WORK: BtrexController.StartWork(); //START TRADING THREAD BtrexREST.TradeController.StartTrading(); Console.WriteLine("\r\n\r\n-PRESS ENTER 3 TIMES TO EXIT-\r\n\r\n"); Console.ReadLine(); Console.ReadLine(); Console.ReadLine(); Environment.Exit(0); }
static async Task RunAsync() { BtrexData.NewData(); Console.Write("Connecting websocket1..."); await websocket1.Connect(); Console.WriteLine("DONE"); Console.Write("Connecting websocket2..."); await websocket2.Connect(); Console.WriteLine("DONE"); Console.Write("Connecting websocket3..."); await websocket3.Connect(); Console.WriteLine("DONE"); await websocket1.SubscribeMarketsList(SubSpecificDeltas1.ToList()); await websocket2.SubscribeMarketsList(SubSpecificDeltas2.ToList()); await websocket3.SubscribeMarketsList(SubSpecificDeltas3.ToList()); //START DATA THREAD await BtrexData.StartDataUpdates(); Console.WriteLine("\r\n\r\n-PRESS ENTER 3 TIMES TO EXIT-\r\n\r\n"); Console.ReadLine(); Console.ReadLine(); Console.ReadLine(); Environment.Exit(0); }
public static async Task <List <MarketQueryResponse> > SubscribeMarketsList(List <string> deltas) { List <MarketQueryResponse> failedList = new List <MarketQueryResponse>(); var subList = deltas.Select(d => WSSharpTransport.HubProxy.Invoke("SubscribeToExchangeDeltas", d)).ToArray(); await Task.WhenAll(subList); foreach (string d in deltas) { var delta = "BTC-" + d; Trace.Write("\rSUBBING: " + delta + " \r"); await WSSharpTransport.HubProxy.Invoke("SubscribeToExchangeDeltas", delta); MarketQueryResponse marketQuery = await WSSharpTransport.HubProxy.Invoke <MarketQueryResponse>("QueryExchangeState", delta); marketQuery.MarketName = delta; bool opened = await BtrexData.TryOpenMarket(marketQuery); if (!opened) { failedList.Add(marketQuery); } } return(failedList); }
//public readonly static HubConnection hubConnection = new HubConnection("https://socket.bittrex.com/"); //public static IHubProxy btrexHubProxy; public async Task SubscribeMarket(string delta) { await WSSharpTransport.HubProxy.Invoke("SubscribeToExchangeDeltas", delta); MarketQueryResponse marketQuery = WSSharpTransport.HubProxy.Invoke <MarketQueryResponse>("QueryExchangeState", delta).Result; marketQuery.MarketName = delta; await BtrexData.OpenMarket(marketQuery); }