Переписать код с mql4 в mql5

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

Привет! Начинаю изучать язык mql5  и столкнулся с проблемой... Не могу реализовать функцию с mql4!

int    i, k=iBars(Symbol(), 0);
for (i=1; i<k; i++) 

 пробовал так, но терминал МТ5 начинает глючит)) Ребята нужна ваша помощь)  Как будет правильно выглядеть код для mql5?) Спасибо!

int    i, k=Bars(_Symbol, _Period);
for (i=1; i<k; i++) 
Dmitry Fedoseev
55345
Dmitry Fedoseev  

Как глючит? 

Наверно тормозит? Если тормозит, то, наверно, потому-что на графике много баров, а на каждом тике выполняются расчеты по всем барам. 

Aibek Mugiynov
5948
Aibek Mugiynov  
Dmitry Fedoseev:

Как глючит? 

Наверно тормозит? Если тормозит, то, наверно, потому-что на графике много баров, а на каждом тике выполняются расчеты по всем барам. 

Да, тормозит) Когда убираю этот код, всё работает нормально...
Dmitry Fedoseev
55345
Dmitry Fedoseev  
Aibek Mugiynov:
Да, тормозит) Когда убираю этот код, всё работает нормально...
Если этот код убрать, что вместо него?
Sergey Deev
265646
Sergey Deev  
Aibek Mugiynov:
Да, тормозит) Когда убираю этот код, всё работает нормально...
Вам реально нужно перебирать все бары? Ограничьте общую длину или количество обрабатываемых значений за один заход.
Aibek Mugiynov
5948
Aibek Mugiynov  
В общем с этим кодом я получаю значения вершин индикатора зигзаг в mql4, а тут в mql5 не знаю как... Или есть другой код для mql5? А то я всё с mql4 беру и переписываю под mql5))
Sergey Deev
265646
Sergey Deev  
Aibek Mugiynov:
В общем с этим кодом я получаю значения вершин индикатора зигзаг в mql4, а тут в mql5 не знаю как... Или есть другой код для mql5? А то я всё с mql4 беру и переписываю под mql5))

Вам реально нужны вершины за весь период? И их пересчет на каждом баре?

Вы код приведите полностью - проще будет подсказать, а не тыкать пальцем в небо.

В mql4 и mql5 абсолютно разная схема обработки индикаторных буферов

Sergey Deev
265646
Sergey Deev  
Aibek Mugiynov:
Вот так я получаю значения цены вершин индикатора зигзаг, а как можно реализовать его в mql5? 

Вообще-то как-то лениво писать полный код. У вас вроде есть своя реализация для mql5 - выложите ее.

iCustom должен быть в инит-функции.

В OnCalculate нужно проверить загрузился ли индикатор посредством BarsCalculated, затем скопировать буфер во внутренний массив посредством CopyBuffer и уже с ним работать.

пример в доке 

https://www.mql5.com/en/docs/indicators/icustom

Documentation on MQL5: Technical Indicators / iCustom
Documentation on MQL5: Technical Indicators / iCustom
  • www.mql5.com
Technical Indicators / iCustom - Reference on algorithmic/automated trading language for MetaTrader 5
Dmitry Fedoseev
55345
Dmitry Fedoseev  
Два варианта: или сменить зигзаг (в кодабазе есть быстрый зигзаг (от Юрича)), или  в настройках терминала уменьшить количество баров на графике. Лучше первый вариант, потому-что с этим зигзагом тестировать все равно не получится.
Aibek Mugiynov
5948
Aibek Mugiynov  
Неужели такой сложный язык mql5))  Весь рунет перерыл, нету ни одной темы подходящей...
Maxim Kuznetsov
11820
Maxim Kuznetsov  
Aibek Mugiynov:
Вот так я получаю значения цены вершин индикатора зигзаг, а как можно реализовать его в mql5? 
посмотрите детали реализации zigzag в Mt4/Mt5 - что то сдаётся что
      if(d1>0) break;

неправильно и в MT5 цикл бежит действительно по всем барам на каждом тике

то есть индикатор вместо 0 заполняет буфер EMPTY_VALUE которое совсем не 0 :-)

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