Exemplo n.º 1
0
 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();
 }
Exemplo n.º 2
0
 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();
 }