Новички, с какими трудностями в программировании на MQL вы сталкиваетесь в 2025 году? - страница 6

 
Vasiliy Sokolov #:

Ок. Раз новички молчат. Скажем на Питоне в jupyter notebook примерный вывод ордеров в виде готовой, удобочитаемой таблицы был бы примерно такой:

Теперь сравните сколько строк кода для аналогичной операции пришлось бы писать в MetaTrader. Вот собственно и все.

Не корректно. 
Сколько строк кода в импортированной библиотеке? 
 
fxsaber #:

Мало строк, потому что.

Как в Питоне подключаются библиотеки, так и в MQL5.

Если базово, на уровне API и ключевых слов, язык не поддерживает сложные типы данных и взаимодействия с ними, то пиши не пиши обертки, ими будут пользоваться лишь энтузиасты, но не новички. Опять-таки, в учебник "супер-мега-удобную" обертку не засунешь, потому что это не часть языка.

Stanislav Korotky #:

Я предположу, что идея MQ в том, что MQL5 - язык для профессионалов, которые на нем напишут красивые классы-обертки (сложные внутри и простые снаружи), и этими классами будет легко пользоваться даже новичкам. Правильный ли это подход, и как бы лично я делал язык программирования для трейдеров - вопрос отдельный и очень обширный ;-).

В частности (если продолжить контекст вышеупомянутой проблемы в цитате), в книге я пытался "изобрести" обертку классов, которые внутри автоматически выбирают режим заполнения на основе спецификаций символа и эккаунта, так что простому пользователю будет достаточно сделать в своем коде #include <MQL5Book/MqlTradeSync.mqh>, а потом MqlTradeRequestSync request; request.buy(lot);

И вот собственно круг замкнулся. Если мы признаем что MQL5 - он для профессионалов, что бы те писали обертки для новичков, которые должны читать документацию, которая для профессионалов, потому что язык для профессионалов... В этом замкнутом круге новичку сначала надо проштудировать низкоуровневую базу в документации, а потом переходить на использование простых user-friendly библиотек-оберток. Вот только после изучения этой самой базы, уже ничего другого изучать не захочится.

Artyom Trishkin #:
Не корректно. 
Сколько строк кода в импортированной библиотеке? 
Если управление сложностью в языке не реализовано, то можно сколько угодно делегировать управление этой сложностью сторонним библиотекам, но сам язык при этом сложным останется. В Питоне есть базовые коллекции, управляемые списки и словари, рефлексия, много чего еще. А потому взаимодействие возможно уже не на базовом ассемблерном уровне при помощи трех типов скаляров string, long, double.
 
Вот ветка плавно переходит из опроса мнений новичков, в дискуссию опытных разрабов на тему "что на самом деле надо новичкам". Поэтому я честно говоря не хотел отвечать на вопрос fxaber'a о примере, так как ответ на этот вопрос моментально уводит обсуждения из плоскости "спросить новичков" в плоскость "я лучше знаю каким MQL должен быть".
Новички не молчите. Пишите о ваших проблемах.
 
Vasiliy Sokolov #:

Если базово, на уровне API и ключевых слов, язык не поддерживает сложные типы данных

Хороним тогда и MQL4.
[Удален]  
Ну, вообще, трудности возникли после попытки запустить в действие код из примера в документации. Сразу были получены ошибки. Войд никак не онстартил. 

Ну вот примерно так:

Программисту нужно попасть на двенадцатый этаж. Он заходит в лифт, нажимает кнопку «1», затем «2» и долго ещё безуспешно ищет глазами клавишу Enter…

 
fxsaber #:
Хороним тогда и MQL4.

Вот здесь почему-то сработало. Имхо, прокатило, потому что API часть у MQL4 сверхкомпактная. По сути тот же низкоуровневый ассемблер, но в нем было настолько мало свойств и функций, что это не сложно было охватить за два три дня. 

 
Evgenii Shugurov #:
Ну, вообще, трудности возникли после попытки запустить в действие код из примера в документации. Сразу были получены ошибки. Войд никак не онстартил. 

Есть такой момент. Старые коды часто не компилируются в новых версиях МТ. Но здесь либо на антресоль МQL поставить и больше его никогда не изменять, либо прикладывать титанические усилия для актуализации всей кодовой базы.

 
Vasiliy Sokolov #:

Вот здесь почему-то сработало. Имхо, прокатило, потому что API часть у MQL4 сверхкомпактная. По сути тот же низкоуровневый ассемблер, но в нем было настолько мало свойств и функций, что это не сложно было охватить за два три дня. 

Ну так сделайте прокладку, чтобы писать, как на MQL4.

 
fxsaber #:

Ну так сделайте прокладку, чтобы писать, как на MQL4.

Такие прокладки - худшее, что можно предложить новичку. В итоге человек не знает ни MQL4, ни MQL5, ни устройство и поведение прокладки.

 
Vasiliy Sokolov #:

Ок. Раз новички молчат. Скажем на Питоне в jupyter notebook примерный вывод ордеров в виде готовой, удобочитаемой таблицы был бы примерно такой:

Теперь сравните сколько строк кода для аналогичной операции пришлось бы писать в MetaTrader. Вот собственно и все.

Вот как новичок в Питоне, отвечу. Мне Питон кажется сложнее (в понимании концепций), чем MQL5. И хоть мне и приходилось иногда, как админу, править код питоновских программ, но вот писать на нём торговых роботов - нафиг, нафиг!