/// <summary>
        /// Scans for possibility to open a new trade.
        /// </summary>
        /// <param name="candles">candle history</param>
        /// <param name="bar">currentcandle</param>
        /// <param name="tradeManager">tradeManager</param>
        private void ScanForEntry(List <MarketCandle> candles, int bar, ITradeManager tradeManager)
        {
            TradeType tradeType;

            if (IsValidEntry(candles, bar, out tradeType))
            {
                var candle     = candles[bar];
                var totalRebuy = 1m;
                if (MaxTimesRebuy >= 1)
                {
                    totalRebuy += FirstRebuyFactor;
                }
                if (MaxTimesRebuy >= 2)
                {
                    totalRebuy += SecondRebuyFactor;
                }
                if (MaxTimesRebuy >= 3)
                {
                    totalRebuy += ThirdRebuyFactor;
                }
                _bundleSize = tradeManager.AccountBalance / totalRebuy;
                var coins = _bundleSize / candle.ClosePrice;
                switch (tradeType)
                {
                case TradeType.Long:
                    _trade = tradeManager.BuyMarket(Symbol, coins);
                    break;

                case TradeType.Short:
                    _trade = tradeManager.SellMarket(Symbol, coins);
                    break;
                }
                if (_trade != null)
                {
                    _state = StrategyState.Opened;
                }
            }
        }