Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Все программы в Code Base доступны из MetaTrader 5. Опубликуй и ты свою!
Fortesk
81
Fortesk 2016.08.08 20:07 

Пытаюсь запрограммировать индикатор, принцип его.

Берем из индикатора фракталл значения фракталов и заносим их буфер.

Где образовались фрактал, получаем значения времени фрактала и его максимум и минимум заносим в буфер

И по этим значениям рисуем наклонные линии всех фракталов. В учебнике что-то похожего нету, прошелся по всем найденным индикаторам в инете нашел что-то похожее, правда знаний не хватает.

Буду признателен, если подскажите где либо почитать об этом, либо разберете мои ошибки и поправите. 

Файлы:
Alexey Viktorov
5193
Alexey Viktorov 2016.08.09 05:50  

Ошибка 1, не привязаны массивы к буферам. Посмотри любой индикатор из набора имеющихся в мт4.

Ошибка 2, на нулевом баре фрактала быть не может по определению. Если фрактал есть на 2м баре, то не факт что он не пропадёт. На третьем уже никуда не денется.

Ошибка 3 и 4, если это будет индикатор, то линии можно и нужно отображать буферами, а не трендовыми линиями. А если уж так нужны именно трендовые или какие-то другие графические объекты, то они должны иметь уникальные имена.

Ошибка 5, функция OnCalculate должна возвращать не 0, а rates_total

Возможно это ещё не всё...

Fortesk
81
Fortesk 2016.08.09 09:22  
Очень был бы признателен если подсказали примеры где посмотреть
Alexey Viktorov
5193
Alexey Viktorov 2016.08.09 12:06  

Повтор

AlexeyVik:

Ошибка 1, не привязаны массивы к буферам. Посмотри любой индикатор из набора имеющихся в мт4.



Fortesk
81
Fortesk 2016.08.09 13:38  

 Я правильно понял как сделать 

 

#property strict
#property indicator_buffers 4 //2 буфера обмена для максимума и минимума
#property indicator_plots   4
//--- plot Label1

//--- input parameters

//--- indicator buffers
double         ExtMapBuffer1[]; //создаем буффер для обмена 
double         ExtMapBuffer2[]; //создаем буффер для обмена
double         ExtMapBuffer3[]; //создаем буффер для обмена
double         ExtMapBuffer4[]; //создаем буффер для обмена
int OnInit()
  {
 
SetIndexBuffer(0,ExtMapBuffer1,iHigh);
SetIndexBuffer(1,ExtMapBuffer2,iTime);
SetIndexBuffer(2,ExtMapBuffer3,iLow);
SetIndexBuffer(3,ExtMapBuffer4,iTime); 
  
  
  
   return(0);
}
Alexey Viktorov
5193
Alexey Viktorov 2016.08.09 13:52  

Почитай учебник Ковалёва, ссылка наверху, или поищи курс mql4 от programmer, на форуме альпари есть. Там хоть и используется старая редакция языка, но схожесть максимальная и если не обращать внимание на имена функций init и OnInit start и OnTick то вполне можно разобраться.

И почаще читай документацию. К чему в твоих строках iHigh, iTime и iLow? Ничего не надо придумывать, прежде чем чего-то сделать разберись как это делается, в документации это описано.

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