Exemple #1
0
        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);
        }
Exemple #2
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);
        }
Exemple #3
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);
        }
Exemple #4
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);
        }
Exemple #5
0
        //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);
        }