public void InitiateSell(SellOptions options)
        {
            IPairConfig pairConfig = tradingService.GetPairConfig(options.Pair);

            if (!options.ManualOrder && !options.Swap && pairConfig.SellTrailing != 0)
            {
                if (!trailingSells.ContainsKey(options.Pair))
                {
                    trailingBuys.TryRemove(options.Pair, out BuyTrailingInfo buyTrailingInfo);

                    ITradingPair tradingPair = tradingService.Account.GetTradingPair(options.Pair);
                    tradingPair.SetCurrentValues(tradingService.GetCurrentPrice(options.Pair), tradingService.GetCurrentSpread(options.Pair));

                    var trailingInfo = new SellTrailingInfo
                    {
                        SellOptions        = options,
                        SellMargin         = pairConfig.SellMargin,
                        Trailing           = pairConfig.SellTrailing,
                        TrailingStopMargin = pairConfig.SellTrailingStopMargin,
                        TrailingStopAction = pairConfig.SellTrailingStopAction,
                        InitialPrice       = tradingPair.CurrentPrice,
                        LastTrailingMargin = tradingPair.CurrentMargin,
                        BestTrailingMargin = tradingPair.CurrentMargin
                    };

                    if (trailingSells.TryAdd(options.Pair, trailingInfo))
                    {
                        if (LoggingEnabled)
                        {
                            loggingService.Info($"Start trailing sell {tradingPair.FormattedName}. Price: {tradingPair.CurrentPrice:0.00000000}, Margin: {tradingPair.CurrentMargin:0.00}");
                        }
                    }
                }
                else
                {
                    if (LoggingEnabled)
                    {
                        //loggingService.Info($"Cancel trailing sell {tradingPair.FormattedName}. Reason: already trailing");
                    }
                }
            }
            else
            {
                PlaceSellOrder(options);
            }
        }
        public void InitiateSell(SellOptions options)
        {
            if (tradingService.Account.HasTradingPair(options.Pair))
            {
                IPairConfig pairConfig = tradingService.GetPairConfig(options.Pair);
                if (!options.ManualOrder && pairConfig.SellTrailing != 0)
                {
                    if (!trailingSells.ContainsKey(options.Pair))
                    {
                        StopTrailingBuy(options.Pair);
                        ITradingPair tradingPair = tradingService.Account.GetTradingPair(options.Pair);
                        tradingPair.SetCurrentValues(tradingService.GetPrice(options.Pair), tradingService.Exchange.GetPriceSpread(options.Pair));

                        var trailingInfo = new SellTrailingInfo
                        {
                            SellOptions        = options,
                            SellMargin         = pairConfig.SellMargin,
                            Trailing           = pairConfig.SellTrailing,
                            TrailingStopMargin = pairConfig.SellTrailingStopMargin,
                            TrailingStopAction = pairConfig.SellTrailingStopAction,
                            InitialPrice       = tradingPair.CurrentPrice,
                            LastTrailingMargin = tradingPair.CurrentMargin,
                            BestTrailingMargin = tradingPair.CurrentMargin
                        };

                        if (trailingSells.TryAdd(options.Pair, trailingInfo))
                        {
                            if (LoggingEnabled)
                            {
                                loggingService.Info($"Start trailing sell {tradingPair.FormattedName}. " +
                                                    $"Price: {tradingPair.CurrentPrice:0.00000000}, Margin: {tradingPair.CurrentMargin:0.00}");
                            }
                        }
                    }
                }
                else
                {
                    orderingService.PlaceSellOrder(options);
                }
            }
            else
            {
                loggingService.Info($"Cancel initiate sell for {options.Pair}. Reason: pair does not exist");
            }
        }