[MQL4] Функция трейлинга стоп-лосс

romanzif

Постоялец
Команда форума
Администратор
Монет
50,702
Форекс робот VolnaFX
Код:
//+------------------------------------------------------------------+
void TrailSL()
  {
   double sl;

   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS))
        {
         if(OrderMagicNumber()==Magic && OrderSymbol()==Symbol() && OrderProfit()>0)
           {
            if(OrderType()==OP_BUY)
              {
               sl=NormalizeDouble(Bid-TrailDistance*Point,Digits); // расчет стоп-лосса к текущей цене - расстояние

               if(OrderStopLoss()>sl || OrderStopLoss()==sl) continue;

               bool res=OrderModify(OrderTicket(),OrderOpenPrice(),sl,OrderTakeProfit(),OrderExpiration(),clrOrangeRed);
               if(!res) Print("Modify Error: ",GetLastError());
              }

            if(OrderType()==OP_SELL)
              {
               sl=NormalizeDouble(Ask+TrailDistance*Point,Digits); // расчет стоп-лосса к текущей цене + расстояние

               if(OrderStopLoss()<sl || OrderStopLoss()==sl) continue;

               bool res=OrderModify(OrderTicket(),OrderOpenPrice(),sl,OrderTakeProfit(),OrderExpiration(),clrOrangeRed);
               if(!res) Print("Modify Error: ",GetLastError());

              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
 

romanzif

Постоялец
Команда форума
Администратор
Монет
50,702
Форекс робот VolnaFX
Метода расчёта куда перемещать СЛ можно менять.
Тогда строку sl=NormalizeDouble(Bid-TrailDistance*Point,Digits); и sl=NormalizeDouble(Ask+TrailDistance*Point,Digits);
нужно заменить на то по какому принципу вы хотите тралить СЛ.

Например можно тралить не на фиксированное расстояние как в примере выше, а за хай/лоу ближайших Н свечей или за ближайший хай/лоу.
Или за фрактал.
Или за скользящую среднюю.

Так же можно выбирать как вызывать эту функции, только на новой свече или каждый тик.
 

Проверенные Брокеры

Реклама

Weltrade 50
Secret Book
VPS сервера форекс

Заработок онлайн

Верх