Esempio n. 1
0
        public void TickerConnectedHandler(object sender, EventArgs args)
        {
            while (isBuysyDisposingCurStrategy)
            {
                Logger.WriteLog("Already busy updating intervals after reconnect, waiting for current operation to complete...");
                return;
            }


            //check open orders

            MyProductOrderBook.SyncOpenOrders();

            if (MyProductOrderBook.MyChaseOrderList.Count == 0)
            {
                Logger.WriteLog("Resetting WaitingBuySell flag to False since no more active orders in list");
                CurContextValues.WaitingBuyOrSell = false;
            }


            Logger.WriteLog("Ticker connected... resuming buy sell");

            //Logger.WriteLog("SMA updating starts here");
            //Task.Run(()=> UpdateSmaParameters(SmaTimeInterval, SmaSlices, true)).Wait();


            //clear serverdata, a redownload will be forced
            MovingAverage.SharedRawExchangeData.Clear();


            var updateIntervalResult = CreateUpdateStrategyInstance(CurContextValues.CurrentIntervalValues);

            updateIntervalResult.Wait();

            Logger.WriteLog("SMA updating ends here");
            //System.Threading.Thread.Sleep(2 * 1000);



            if (CurContextValues.UserStartedTrading)
            {
                Logger.WriteLog("waiting 5 sec for data refresh");
                Thread.Sleep(5 * 1000);
                Logger.WriteLog("buy sell resumed here");

                //check if any orders exists in order list
                //set buy sell waiting flag to off only when there are no order in the orderbook
                if (CurContextValues.MyOrderBook.MyChaseOrderList.Count == 0)
                {
                    CurContextValues.WaitingBuyOrSell = false;
                }

                CurContextValues.StartAutoTrading = true;
                AutoTradingStartedEvent?.Invoke(this, EventArgs.Empty);
            }

            TickerConnectedEvent?.Invoke(this, EventArgs.Empty);

            UpdateFunds();
        }