Индикатор гармонических паттернов и оптимизация кода MQL5 - страница 2

 
Evgeny Belyaev:


Что такое N?

 
Nikolai Semko:

Когда Ваш код станет рабочим, используйте инструмент "профилирования кода" для выяснения причин, где происходят основные утечки ресурсов  процессора. Тоже почитайте в справке метаедитора. Справка -> MetaEditor -> Разработка программ -> Профилирование кода. 

Успехов Вам в Ваших начинаниях! :)

Именно для этого индюка у меня все кнопки заблочены)

Файлы:
3.PNG  4 kb
 
Nikolai Semko:

если amount=0 и этот параметр не меняется в цикле, тогда это бесконечный цикл while:

Это и грузит Ваш процессор.

А дальше у вас идет деление на ноль в Pattern_Conditions()


Не понимаю где деление на ноль?

 
Roman Sharanov:

Именно для этого индюка у меня все кнопки заблочены)


Странно. Так бывает, например, когда компилятор воспринимает программу как библиотеку. Но у библиотеки расширение mqh.

 
Roman Sharanov:


Не понимаю где деление на ноль?


Возникают ситуации когда  XA=0 или AB=0. А они у вас там в знаменателях.
достаточно вставить 

if(XA==0 || AB==0) return;
 
Nikolai Semko:

Возникают ситуации когда  XA=0 или AB=0. А они у вас там в знаменателях.
достаточно вставить 


Поставил. А большое количество условий сильно грузит?

 
Roman Sharanov:

Поставил. А большое количество условий сильно грузит?


Условия совсем не грузят. Профилировали?

 
Nikolai Semko:

Условия совсем не грузят. Профилировали?


Да, я пересоздал индикатор и заработали кнопки.
Такие результаты, есть что сказать?

Мне кажется очень сильно грузит потиковый поиск последних 5 зигзагов, тк индюку нужно пробегаться по барам пока не найдет 5 зигзагов
Файлы:
1.PNG  108 kb
2.PNG  65 kb
 
Roman Sharanov:

Да, я пересоздал индикатор и заработали кнопки.
Такие результаты, есть что сказать?

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

Ну насколько я вижу больше всего грузят коменты (80%). При Вашем профилировании он используется почти сто тысяч раз. А ведь каждый комент перерисовывает полностью весь экран. И почему Вы используете только ТФ 15 мин? Может все же использовать текущий ТФ. Тогда не нужно использовать CopyClose(),CopyTime(), CopyTickVolume (), а использовать готовые массивы close[], time[], tick_volume[]

 
Nikolai Semko:

Ну насколько я вижу больше всего грузят коменты (80%). При Вашем профилировании он используется почти сто тысяч раз. А ведь каждый комент перерисовывает полностью весь экран. И почему Вы используете только ТФ 15 мин? Может все же использовать текущий ТФ. Тогда не нужно использовать CopyClose(),CopyTime(), CopyTickVolume (), а использовать готовые массивы close[], time[], tick_volume[]


Хм, а эти массивы те же таймсерии, то есть например close[1] даст закрытие предыдущей свечи по аналогии с MQL4?

Насчет комментов не знал что так грузят, это спасибо!
Причина обращения: