public void WrapTradeInTradingDistance(bool forceMove = false) { if (Trades.Any() && (SuppRes.All(sr => !sr.InManual) || forceMove)) { SuppRes.ForEach(sr => sr.ResetPricePosition()); BuyLevel.InManual = SellLevel.InManual = true; double offset = CalculateTradingDistance(); if (Trades.HaveBuy()) { BuyLevel.Rate = Trades.NetOpen(); SellLevel.Rate = BuyLevel.Rate - offset; } else { SellLevel.Rate = Trades.NetOpen(); BuyLevel.Rate = SellLevel.Rate + offset; } SuppRes.ForEach(sr => sr.ResetPricePosition()); } RaiseShowChart(); }
public void WrapTradeInCorridor(bool forceMove = false, bool useTakeProfit = true) { if (Trades.Any() && (SuppRes.All(sr => !sr.InManual) || forceMove)) { SuppRes.ForEach(sr => sr.ResetPricePosition()); var isActive = IsTradingActive; IsTradingActive = false; BuyLevel.InManual = SellLevel.InManual = true; double offset = HeightForWrapToCorridor(useTakeProfit); if (Trades.HaveBuy()) { BuyLevel.Rate = Trades.NetOpen(); SellLevel.Rate = BuyLevel.Rate - offset; } else { SellLevel.Rate = Trades.NetOpen(); BuyLevel.Rate = SellLevel.Rate + offset; } SuppRes.ForEach(sr => sr.ResetPricePosition()); IsTradingActive = isActive; } RaiseShowChart(); }