Траллинг-стоп по свингам - страница 3

 

Вот скрин. Параметры указаны на скрине.


 

стоп будет перенесен когда красный и желтый свинг будут рисовать общую точку и она будет выше пред идушей точке

и все это ещё к томуже должно быть выше текушего стопа.



ещё трелиться будут все позиции по текущему символу

 
CoreWinTT >>:

стоп будет перенесен когда красный и желтый свинг будут рисовать общую точку и она будет выше пред идушей точке

и все это ещё к томуже должно быть выше текушего стопа.



ещё трелиться будут все позиции по текущему символу

Да, все правильно. :)

 

надо другую проверку по равершению отрисовки свинга делать

потомучто следующая вершина не обязательно будет выше пред идушей

 
CoreWinTT >>:

надо другую проверку по равершению отрисовки свинга делать

потомучто следующая вершина не обязательно будет выше пред идушей

Хм....Тогда можно попробовать после формирования свинга подождать N свечек, либо сравнивать каждый следующий свинг с предыдущими 3-4 свингами, и выяснять какой из них является лоу или хай.

 

подождать свечек в принципе можно но как правило может дальше вниз начать рисоваться

либо поставить условие что следующий свинг ваше начал рисоваться (в общем вот такой алгоритм)


а вот про последние не понял =)

как сравнивать


так

 
CoreWinTT >>:

подождать свечек в принципе можно но как правило может дальше вниз начать рисоваться

либо поставить условие что следующий свинг ваше начал рисоваться (в общем вот такой алгоритм)


а вот про последние не понял =)

как сравнивать


так

Ну всмысле допустим образовался новый свинг, а мы хотим подтянуть стоп-лосс. Тот свинг, что образовался, сравниваем с предыдущими 3-4 и получаем следующе:

 а) если свинг начал образоватся нам в убыток, т.е. идет в противоход, то ждем образования свинга до тех пор, пока не пойдет в обратную сторону.

 б) свинг образовался в нашу сторону, то перемещаем стоп-лосс как и надо :) 

 

ну да както так.

щаз поробую чонить набросать

но быстро не обещаю

надо както собрат данные с 2х зига загов и както обработать

наверно с долгово зига зага надо последнее значение а с быстрой зиго заги 2 последних

 
UP!
 

попробуй сделал по 1 свингу

незнаю как в тестере тестить

без открытия позиций а встраивать в советник влом

поидее должно работать

//+------------------------------------------------------------------+
//|                                                    SwingTral.mq4 |
//|                      Copyright © 2010, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
extern int minBars = 1;
extern int ExtLabel= 1; 
extern int Отступ =10;
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
  double ZZ[];
  int ii=0;
  int Total=OrdersTotal()-1;
  int Limit = Bars;

  
//----
 for (int i = 0;i < Limit; i++ ) 
 {
   if (iCustom(NULL,0," Swing_ZZ_1_1",minBars,ExtLabel,0,i) != 0 )
      {
         ZZ[ii] = iCustom(NULL,0," Swing_ZZ_1_1",minBars,ExtLabel,0,i);
         ii++;
         if ( ii > 3 ) break;
      }
 }



   for( i = Total; i >= 0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == false) break;
      if(OrderSymbol() == Symbol())
      { 
            
 //---tral for buy 
            if (OrderType() == 0) 
              {                 
               if(ZZ[0] > ZZ[1])
                 {
                  if((OrderStopLoss() < (ZZ[1] - Point*Отступ)) || (OrderStopLoss()==0))
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),ZZ[1] - Point*Отступ,OrderTakeProfit(),0,Red);
                     return(0);
                    }
                 }
              }     
//      
 //---tral for sell
            if (OrderType() == 1) 
              {                 
               if(ZZ[0] < ZZ[1])
                 {
                  if((OrderStopLoss() > (ZZ[1] + Point*Отступ)) || (OrderStopLoss()==0))
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),ZZ[1] + Point*Отступ,OrderTakeProfit(),0,Red);
                     return(0);
                    }
                 }
              }     
//      
       }
      }
//----
   return(0);
  }
//+------------------------------------------------------------------+
Причина обращения: