Скачать MetaTrader 5

Как добавить в советник Трейлинг стоп? - страница 2

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Форматируй текст в редакторе сообщений. Это удобно!
artemov2012
25
artemov2012 2014.02.24 12:40  

Просил прикрутить в советник Трейлинг не для того, чтобы торговать им, а для того, чтобы понять как это было сделано.

Мне легче разобраться уже с готовым вариантом, чем если бы вы расписали как прикрутить по пунктам

___________________

Поэтому кто может это сделать, прикрутите если не сложно

Vitalie Postolache
12135
Vitalie Postolache 2014.02.24 13:00  
extern int TrailingStop = 3; 
//расстояние стоплосса от рыночной цены
extern int TrailingStep = 3; 
//шаг изменения трала

int tralStops()
{ 
   if(TrailingStop==0) return(0); //если трал не нужен, присваиваем TrailingStop==0 и трал отключается
   for( int i = OrdersTotal()-1; i >=0 ; i-- ) 
   {
      double ordsl = 0;
      if (OrderSelect(i, SELECT_BY_POS ) == true) 
      {  
        if(OrderSymbol()==Symbol() && (MagicNumber!=0 && OrderMagicNumber()==MagicNumber) && OrderType()<=1)
        {
         if(OrderType()==OP_BUY)
         {
            if(Bid-_Point*(TrailingStop+TrailingStep) > OrderOpenPrice())
              {
               if(Bid-_Point*(TrailingStop+TrailingStep) > OrderStopLoss() || (OrderStopLoss()==0))
                 {
                  ordsl=NormalizeDouble(Bid-_Point*TrailingStop,_Digits);
                 }
              }
         }
         else
         {
            if(Ask+_Point*(TrailingStop+TrailingStep) < OrderOpenPrice())
              {
               if(Ask+_Point*(TrailingStop+TrailingStep) < OrderStopLoss() || OrderStopLoss()==0)
                 {
                  ordsl=NormalizeDouble(Ask+_Point*TrailingStop,_Digits);
                 }
              }
         }
         if(ordsl!=OrderStopLoss() && ordsl!=0)
         OrderModify(OrderTicket(),OrderOpenPrice(),ordsl,OrderTakeProfit(),0);
        }
      }  
   }  
return(0);   
}
Добавлять в конце кода (с новой строки), вызывать из OnTick() (просто добавить строку tralStops(); в начале функции OnTick() )
Виталий Мухин
8
Виталий Мухин 2015.10.21 22:17  

что значит добавить строчку в начале функции 

  



12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий