Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Есть вопросы по сервису MQL5 Cloud Network? FAQ поможет!
Andrey Chernous
207
Andrey Chernous 2015.11.05 09:15 

Уважаемые программисты, можете скинуть наглядный код того как узнать значение 2го хая, вершины ZigZag. Не второго пика, а 2й вершины?!

 

khorosh
8041
khorosh 2015.11.05 09:23  
Gruler:

Уважаемые программисты, можете скинуть наглядный код того как узнать значение 2го хая, вершины ZigZag. Не второго экстремума, а 2й вершины?!

 

А вы опишите, по каким признакам идентифицируете эту вторую вершину, тогда может кто-нибудь код и подкинет.
Andrey Chernous
207
Andrey Chernous 2015.11.05 09:49  
khorosh:
А вы опишите, по каким признакам идентифицируете эту вторую вершину, тогда может кто-нибудь код и подкинет.
Как бы тривиально не звучало)), но вторая вершина идентифицируется тем, что она выше первой, хоть на чуток, а между ними вершины, меньше которые - пропускаем. Т.е. я думаю, что есть какой то счетчит по барам, с массивами, который сравнивает значение хаев их, на перегибах зигзага, бар первой вершины с барами последующих, и если находит подходящее  значение, что хай бара с последующей вершиной больше бара первой вершины, тогда условие выполнено, узнаем это значение.
poruchik
906
poruchik 2015.11.05 11:29  

 Находит хай - лоу вчера и позавчера

Файлы:
abl.mq4 6 kb
Andrey Chernous
207
Andrey Chernous 2015.11.05 11:40  
poruchik:

 Находит хай - лоу вчера и позавчера

 

Спасибо, но мне это не нужно для обнаружения хай и лоу. Это нужно для выставления стоп лосса за вторую вершинку или низинку зигзага(смотря какой тип ордера), возможно на М1-М5-М15 Тф.
Vasyl Nosal
18196
Vasyl Nosal 2015.11.05 12:23  
.
Vasyl Nosal
18196
Vasyl Nosal 2015.11.05 12:27  

92 и 93 это пики обычные,94 и 95 это вершины.

Разобратся сложно, но работает:)))))))) 

//////////////////////////////////////////////main up dot
   int find_one_up;
   bool main_dot_up;
   int bar_found;
   
   for (int y = bars_to_count; y > 0; y--) 
   {
   //
   if(buf_92[y]!=0 && find_one_up==0)
   {
   bar_found=y;
   find_one_up++;
   }
   //
   if((buf_92[y]!=0) && find_one_up==1)
   {
   if(!main_dot_up)
   {
   if(buf_92[y]>buf_92[bar_found])
   buf_94[y]=High[y]+ Dot_from_candle*point;
   }
   if(main_dot_up)
   {
   if(buf_92[y]>buf_94[bar_found])
   {
   buf_94[y]=High[y]+ Dot_from_candle*point;
   buf_94[bar_found]=0;
   buf_92[bar_found]=High[bar_found]+ Dot_from_candle*point;
   }
   }
   find_one_up=0;
   }
   
    //
   if((buf_92[y]!=0 || buf_94[y]!=0) && find_one_up==0)
   {
   if(buf_92[y]!=0) main_dot_up=false;
   if(buf_94[y]!=0) main_dot_up=true;
   bar_found=y;
   find_one_up++;
   }
   
   }//end for2
   
   for (int x = bars_to_count; x > 0; x--) 
   {
   if(buf_94[x]!=0 && buf_92[x]!=0)
   buf_92[x]=0;
   }//end for3

//////////////////////////////////////////////main down dot
   int find_one_down;
   bool main_dot_down;
   int bar_found_d;
   
   for (int y2 = bars_to_count; y2 > 0; y2--) 
   {
   //
   if(buf_93[y2]!=0 && find_one_down==0)
   {
   bar_found_d=y2;
   find_one_down++;
   }
   //
   if((buf_93[y2]!=0) && find_one_down==1)
   {
   if(!main_dot_down)
   {
   if(buf_93[y2]<buf_93[bar_found_d])
   buf_95[y2]=Low[y2]- Dot_from_candle*point;
   }
   if(main_dot_down)
   {
   if(buf_93[y2]<buf_95[bar_found_d])
   {
   buf_95[y2]=Low[y2]- Dot_from_candle*point;
   buf_95[bar_found_d]=0;
   buf_93[bar_found_d]=Low[bar_found_d]- Dot_from_candle*point;
   }
   }
   find_one_down=0;
   }
   
    //
   if((buf_93[y2]!=0 || buf_95[y2]!=0) && find_one_down==0)
   {
   if(buf_93[y2]!=0) main_dot_down=false;
   if(buf_95[y2]!=0) main_dot_down=true;
   bar_found_d=y2;
   find_one_down++;
   }
   
   }//end for4
   
   for (int x2 = bars_to_count; x2 > 0; x2--) 
   {
   if(buf_95[x2]!=0 && buf_93[x2]!=0)
   buf_93[x2]=0;
   }//end for5
Andrey Chernous
207
Andrey Chernous 2015.11.05 15:38  
Спасибо за индикатор, и пример с частью кода его, интересные, немного разобрался, причесал, но даже не знаю как собачить зигзаг по этому.
Vasyl Nosal
18196
Vasyl Nosal 2015.11.05 19:43  
Gruler:
Спасибо за индикатор, и пример с частью кода его, интересные, немного разобрался, причесал, но даже не знаю как собачить зигзаг по этому.

92 и 93 это пики обычные

Вместо 92 и 93 буферов подставляешь пики зигзага. 

 

Кстати buf_92[y]!=0 зигзаг тоже 0 это пустое значение.

Так что просто вместо buf_92[y] надо iCustom(Symbol(),0,"ZigZag",...,1,y) 

Andrey Chernous
207
Andrey Chernous 2015.11.06 09:53  
Понял. А как быть с buf_92[bar_found],  buf_94[y], buf_94[bar_found] ?
Vasyl Nosal
18196
Vasyl Nosal 2015.11.06 15:48  
Gruler:
Понял. А как быть с buf_92[bar_found],  buf_94[y], buf_94[bar_found] ?
bar_found это внутреняя переменная.
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий