MQL4

 
Доброго времени. Сейчас MQL4 поддерживаться  так же как MQL5?. В компиляторе на MQL4 есть ограничения по сложности кода? На примерно 1000 строке перестал видеть не парность скобки }. и выдавать при ошибке в парности "return' - expressions are not allowed on a global scope ................../" На примерно 1200 строке к"return' - expressions are not allowed on a global scope ................../" добавилось  " not all control paths return a value ................................. 1259 .."

"
 

У меня в советнике более 10тысяч строк кода - все всегда видел, как МТ4, так и МТ5.

Думаю, что проблема в балансе скобок.

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

Лично я именно по этой причине стремлюсь, чтобы у меня любая функция (и сам советник) умещался на один экран. А сам текст советника любой сложности у меня занимает десять строк. Весь код подключается через инклюды, и каждый смысловой блок любого класса или алгоритма - всегда делается как можно компактнее. Если функция растягивается более, чем на два экрана - это явный показатель того, что пора ее часть выносить в отдельные функции.

 
George Merts:

У меня в советнике более 10тысяч строк кода - все всегда видел, как МТ4, так и МТ5.

Думаю, что проблема в балансе скобок.

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

Лично я именно по этой причине стремлюсь, чтобы у меня любая функция (и сам советник) умещался на один экран. А сам текст советника любой сложности у меня занимает десять строк. Весь код подключается через инклюды, и каждый смысловой блок любого класса или алгоритма - всегда делается как можно компактнее. Если функция растягивается более, чем на два экрана - это явный показатель того, что пора ее часть выносить в отдельные функции.


Спасибо за ответ. Проверял, но спросил чтоб знать есть смысл дальше искать или надо радикально, что то менять.
 
George Merts:

"Лично я именно по этой причине стремлюсь, чтобы у меня любая функция (и сам советник) умещался на один экран. А сам текст советника любой сложности у меня занимает десять строк. Весь код подключается через инклюды, и каждый смысловой блок любого класса или алгоритма - всегда делается как можно компактнее. Если функция растягивается более, чем на два экрана - это явный показатель того, что пора ее часть выносить в отдельные функции."

Очень правильные приёмы программирования. Я придерживаюсь примерно таких же правил. Это позволяет писать самые сложные, замысловатые алгоритмы.

 
IGHud:
Доброго времени. Сейчас MQL4 поддерживаться  так же как MQL5?. В компиляторе на MQL4 есть ограничения по сложности кода? На примерно 1000 строке перестал видеть не парность скобки }. и выдавать при ошибке в парности "return' - expressions are not allowed on a global scope ................../" На примерно 1200 строке к"return' - expressions are not allowed on a global scope ................../" добавилось  " not all control paths return a value ................................. 1259 .."

"

Сталкивался. При этом обратил внимание, что компилятор теряет баланс в разных циклах, что говорило о правильности кода. Перегружал MetaEditor, закрывал все лишние программы, (предполагая освободить память) и в итоге удавалось прорваться. :-)

 
IGHud:
Доброго времени. Сейчас MQL4 поддерживаться  так же как MQL5?. В компиляторе на MQL4 есть ограничения по сложности кода? На примерно 1000 строке перестал видеть не парность скобки }. и выдавать при ошибке в парности "return' - expressions are not allowed on a global scope ................../" На примерно 1200 строке к"return' - expressions are not allowed on a global scope ................../" добавилось  " not all control paths return a value ................................. 1259 .."

При редактировании файлов MQL4 и MQL5 используется одна и та же программа. Посмотрите Справка - О программе. Но в зависимости от расширения файла (MQ4 или MQ5) допустим разный набор функций. Интересно, а как для расширения mqh

 
STARIJ:

При редактировании файлов MQL4 и MQL5 используется одна и та же программа. Посмотрите Справка - О программе. Но в зависимости от расширения файла (MQ4 или MQ5) допустим разный набор функций. Интересно, а как для расширения mqh


А что "как для расширения mqh"? Всё то же самое, зависит от содержания. Можно написать так, что будет скушано без проблем и 4-й, и 5-й, а можно напихать что-то специфическое, поддерживаемое только одной версией.

 

Уважаемые коллеги, подскажите, как решить вопрос.

При загрузке терминала МТ4 индикатор инициализируется до обновления котировок.

Т.к. в нем много графических объектов, которые нет необходимости трогать далее в Start-е, соответственно, они отображаются неправильно.

Как выйти из положения?

Заранее благодарен.