Оптимизация работы кода индикатора\советника

Frim_mgn

Активный участник
Пишу на mq4 сравнительно недавно, поэтому прошу опытных прораммистов помочь!
Заметил иногда кидаешь сложного советника или инидкатор с множеством вычислений и терминал зависает, либо поработает несколько минут и зависает потом) При это проц грузится почти на всю, и оперативы съедает около 400-500 Мб. У меня мощный ноутбук 2х ядерный проц 2.6 и оперативый 4Гб. Зацикливания нету

У кого большой опыт программрования на этом языке подскажи как лучше писать код, чтобы работало быстрее, и не зависало)) Использовать больше массивы, или функции, или минимизировать кол-во переменных в start(). На что обращать внимание.

Или это просто язык такой, что сложные вычисления просто вешают терминал? Я больше конечно склоняюсь к тому, что все таки дело в руках пишушего))

Заранее спасибо
 

Чингачгук

Активный участник
Нет, тут дело не в руках, а именно в терминале. Обещают, что в МТ5 скрипты будут работать намного быстрее.
 

ale002

::: __,,,^._.^,,,__ :::
У меня не оч большой опыт с MQL, с др языками - порядочный. Вогнать систему в ступор не проблема любым языком. Елементарные правила для MQL - ограничивать кол-во вызовов внешних индюков (iCustom), иногда лучше перенести код индюка в советник; не пересчитывать всю историю с нуля по каждому тику (использовать по назначению IndicatorCounted()); не увлекаццо слишком сложными if в циклах, лучше разбить на неск вложенных
 

costy

Активный участник
Пишу на mq4 сравнительно недавно, поэтому прошу опытных прораммистов помочь!
Заметил ... все таки дело в руках пишушего))

Заранее спасибо
Оперативка это многомерные массивы (их размерность),
процессор висит, это не правильно зациклено, каждый раз считает все бары ...
HTML:
for(i=0; i < Bars-IndicatorCounted(); i++)
правильно а вот
HTML:
for(i=0; i < Bars; i++)
нет.
это основная проблема у новичков.
Функции, библиотеки прочее не вызывают больших ресурсов.
А, еще создание объектов (большое кол-во >20000) занимает довольно большое кол-во времени.
Алерт и коментарии тоже тормозят, а так вроде все.:without:
 
Верх