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

 
Sergey Gridnev #:
Вот описание функции IsStopped() и пример её использования, который противоречит описанию.

Помогает ли такая документация новичкам?
В чëм противоречие? 
 
Artyom Trishkin #:
В чëм противоречие? 
Был невнимателен, пардон те :)
Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2025.08.26
  • www.mql5.com
Общее обсуждение: Ошибки, баги, вопросы
 
Vasiliy Sokolov #:

Добрый день. Спасибо за отзыв. Может быть Вы составите пример? Понимаю, его составление займет у Вас время, но хочу понять какой вид сложности Вы имете в виду (их много).

Да просто объем кода раздут непомерно. Еще и ООП прикрутили, хотя оно совсем не нужно)
 
fxsaber #:

Тестеру стратегий все равно, в каком месте программы вызывается OrderSend. Можете его успешно вызвать даже ДО OnInit. Просто иногда могут быть нулевыми bid/ask.

Пробую вызвать OrderSend в OnInit.

Код ответа 10018 - Рынок закрыт.

GetLastError()= ERR_TRADE_SEND_FAILED, 4756, Не удалось отправить торговый запрос.

 
Putnik #:

Код ответа 10018 - Рынок закрыт.

Потому что закрыт для торгов.

2025.07.01 00:00:00   failed market buy 0.1 EURUSD [Market closed]
EURUSD : real ticks begin from 2025.07.01 00:00:00



В частности, для этого есть возможность корректировки спецификаций реальных символов.

 
secret #:
Да просто объем кода раздут непомерно. Еще и ООП прикрутили, хотя оно совсем не нужно)

Пишу только в MT4-style. Объем кода тот же тогда.

 
secret #:
Да просто объем кода раздут непомерно. Еще и ООП прикрутили, хотя оно совсем не нужно)
В MQL4 тот же ООП, и не мешает? 
 
Putnik #:

Не понятно, зачем в "MqlTradeRequest" опция ZaprosTorg.type_filling     (Тип ордера по исполнению ) ???

Я уже разобрался, установил значение, все работает хорошо. Но, она мне кажется избыточной. 

Это я о сложностях. Сам для себя создал таблицу с вариантами, которые разобрал и изучил.

//Свойство SYMBOL (флаги)      Значение    Для отправления        Значение 
//для распознования             (бит)         в запросе        (int значение)
//SYMBOL_FILLING_FOK              1       ORDER_FILLING_FOK         0        //Все или пусто
//SYMBOL_FILLING_IOC              2       ORDER_FILLING_IOC         1        //Все или частично
//SYMBOL_FILLING_BOC              4         См. учебник           [Нет]      //Не декларирован (Только для лимитных)

//           [Пусто]            [Нет]    ORDER_FILLING_RETURN       2        //Кроме Market Execution

Но, зачем мне надо было изучать все другие варианты? Приходится изучать все варианты, хотя нужен только один.

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

Сейчас: нужно сделать запрос брокеру, тот ли этот счет, что я подключал(?), и потом повторно отправить запрос, что да, я отправляю запрос на свой же счет. Получается два раза запрашиваю одно и тоже.

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

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

 
fxsaber #:

К сожалению, тогда не получится понять, что, с Вашей точки зрения, является сложным для новичков.

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

import MetaTrader as mt
orders = mt.SelectHistoryOrders(2025.01.01, 2025.08.01)
print(orders);

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

 
Vasiliy Sokolov #:

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

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

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

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

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

Stanislav Korotky, 2025.08.26 16:25

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

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