MQL 4 на MT 5 - страница 2

 
Alexey Volchanskiy:

А где же голоса тех, кто считает MQL5 более сложным языком, чем MQL4? Я прям в шоке, неужели клоуны покинули форум?

Алексей, но согласитесь, подключение индикаторов явно менее удобно, чем это реализовано в четвёрке, буквально в одну строку

 
Alexey Volchanskiy:

А где же голоса тех, кто считает MQL5 более сложным языком, чем MQL4? Я прям в шоке, неужели клоуны покинули форум?


На форуме 76% "клоунов" по вашим словам )

или может быть это вы клоун, если вы в меньшинстве)

https://www.mql5.com/ru/forum/187775

 
danminin:
а это что такое?

https://www.mql5.com/ru/code/16006

Подойдет для портирования, но нет гарантии, что в советнике не будет использоваться нечто, выходящее за рамки этой библиотеки - такие вещи придется допиливать самостоятельно (например, работу с индикаторами).

 
Yury Kirillov:

У меня немного по другому.

Главный модуль mq5 - он редактируется и пишется в облачное хранилище.

В него подключены модули трёх видов: 1 - независимые от платформы, 2 - для MQL5, 3 - для MQL4 (естественно все модули пишутся в хранилище).

Модули разнесены в разные ветки примерно так:

При необходимости компиляции под mq4 главный модуль временно сохраняется как mq4 (не редактируется и в хранилище не пишется).

Меня бы напрягала необходимость отслеживать изменения в модулях MQL5 и аналогичных MQL4. 

Поэтому, на мой взгляд, платформозависимого кода - должно быть как можно меньше. Фактически, у меня в .MQ5  и .MQ4 файлах - содержится одна-единственная строка "#include "EA316_Core.mqh" (в данном случае - эксперт с кодом 316).

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

Платформозависимых модулей у меня нет вобще. Только компилируемая пара файлов с вызовом ядра эксперта. Все библиотечные модули - кроссплатформенны.

Такая организация, на мой взгляд, максимально ограничивает возможные ошибки типа "в одном месте изменил, а в другом забыл". 

 
danminin:

На форуме 76% "клоунов" по вашим словам )

или может быть это вы клоун, если вы в меньшинстве)

https://www.mql5.com/ru/forum/187775


Сходите посмотрите в зеркало )))) Языки MQL4 и MQL5 одинаковы на 99%, а вот API разные. Но клоунам это понимание недоступно ))

 
George Merts:

Меня бы напрягала необходимость отслеживать изменения в модулях MQL5 и аналогичных MQL4. 

Поэтому, на мой взгляд, платформозависимого кода - должно быть как можно меньше. Фактически, у меня в .MQ5  и .MQ4 файлах - содержится одна-единственная строка "#include "EA316_Core.mqh" (в данном случае - эксперт с кодом 316).

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

Платформозависимых модулей у меня нет вобще. Только компилируемая пара файлов с вызовом ядра эксперта. Все библиотечные модули - кроссплатформенны.

Такая организация, на мой взгляд, максимально ограничивает возможные ошибки типа "в одном месте изменил, а в другом забыл"


У меня все классы MQL4/5 лежат в отдельной папке. А в редакторах использую символические ссылки на эту папку. При таком подходе не возникает конфликта версий и синхронизаций. 

А вообще стараюсь программировать только на двух терминалах - MQL4 и MQL5, хотя для тестов стоит довольно много от разных ДЦ. И хранилище использую по максимуму.

 
Alexey Volchanskiy:

Сходите посмотрите в зеркало )))) Языки MQL4 и MQL5 одинаковы на 99%, а вот API разные. Но клоунам это понимание недоступно ))

клоуны это те, что в меньшинстве. или их еще называют маргиналы.

 
danminin:

клоуны это те, что в меньшинстве. или их еще называют маргиналы.


да, лучше не думать и мычать в стаде