AI в MetaTrader 5: от анализа рынка до тестирования торговых стратегий

Искусственный интеллект в MetaTrader 5 — это не просто чат, которому можно задать вопрос о рынке. Благодаря поддержке Model Context Protocol (MCP) AI-агент может работать непосредственно с данными и функциями торговой платформы: анализировать котировки и торговую историю, изучать открытые позиции, работать с графиками, тестировать и оптимизировать советники, а также отправлять торговые ордера брокеру.

В этом видео мы подробно показываем, как устроена интеграция AI в MetaTrader 5, как начать работу со встроенным ассистентом и какие практические задачи можно ему поручать.


Как работает MCP в MetaTrader 5

Model Context Protocol — это открытый стандарт, который предоставляет AI-приложениям единый способ взаимодействия с внешними источниками данных и инструментами. В MetaTrader 5 он выступает связующим звеном между AI-агентом и торговой платформой.

Без такой интеграции пользователю приходится самостоятельно собирать рыночные данные, копировать информацию о счете, передавать скриншоты и переключаться между разными приложениями. MCP позволяет агенту получать необходимый контекст непосредственно из MetaTrader 5 и использовать доступные функции платформы для выполнения поставленной задачи.

Начните со встроенного AI Assistant

Самый простой способ попробовать новые возможности — использовать бесплатного AI-асситента, встроенного непосредственно в MetaTrader 5. Никакая первоначальная настройка не требуется: достаточно просто установить актуальную версию платформы и авторизоваться в MQL5.community.

Сразу после этого вы можете открыть AI-ассистента и поставить ему первую задачу. Например, спросить: «Что ты умеешь?» — агент покажет доступные ему возможности.

Основное преимущество AI-агента проявляется не в выполнении простых действий, которые пользователь и сам может сделать несколькими кликами. Гораздо интереснее многошаговые задачи, где необходимо собрать большой объем данных, проанализировать его, применить заданные условия и получить конкретный результат.

Анализ позиций и торговой истории

AI Assistant может использовать данные торгового счета для комплексного анализа. Например, ему можно поручить сгруппировать все открытые позиции, рассчитать объемы Buy и Sell, показать текущую прибыль или убыток и определить концентрацию по отдельным инструментам.

Диалог можно продолжить дополнительным сценарием: например, попросить оценить, какие из открытых позиций могут сильнее всего отреагировать на укрепление доллара США на 1%.

Еще один сценарий — анализ торговой истории. AI Assistant может изучить сделки за выбранный период и разбить результаты по символам, направлению, дням недели или времени удержания позиции. Это позволяет быстрее находить повторяющиеся закономерности без ручной обработки истории.

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

Анализ рынка непосредственно в MetaTrader 5

AI-агент может работать с тиками, барами, графиками, объемами, доступными символами и другими данными платформы. Например, можно попросить его проанализировать EURUSD на H1 и H4, определить тренд и волатильность, а также найти уровни поддержки и сопротивления. Агент самостоятельно получит необходимые данные для обоих периодов, проведет анализ и подготовит итоговое резюме.

Для более широкого обзора можно поручить AI Assistant проверить инструменты в «Обзоре рынка», найти символы вблизи семидневных максимумов и минимумов, ранжировать их по волатильности и выделить наиболее выраженные движения.

При разрешенном доступе к веб-ресурсам агент также может дополнять данные MetaTrader 5 внешним контекстом — например, новостями, экономическими событиями и общедоступной рыночной статистикой.

Работа с графиками и торговым окружением

AI Assistant способен не только анализировать информацию, но и подготавливать рабочее пространство MetaTrader 5. Можно одной командой открыть графики нужных инструментов на заданном таймфрейме и применить к ним сохраненный шаблон. Аналогичным образом агент может управлять составом «Обзора рынка» — например, оставить только инструменты с открытыми позициями или недавними сделками и отсортировать их по заданному критерию.

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

Торговые операции через AI

MCP предоставляет AI-агентам доступ к торговым операциям. Они могут открывать, закрывать и модифицировать ордера и позиции.

Наиболее интересны здесь комплексные сценарии. Например, можно попросить агента проверить валютные пары из «Обзора рынка» с помощью MACD, RSI и ATR, выбрать инструменты, наиболее соответствующие заданным условиям, и выполнить соответствующие торговые операции.

Другой пример — автоматическая установка Стоп Лосс и Тейк Профит для существующих позиций и отложенных ордеров с учетом текущей волатильности каждого инструмента и заданного соотношения риска и потенциальной прибыли.

Тестирование и оптимизация торговых роботов

Один из наиболее мощных сценариев применения агентного AI в MetaTrader 5 — работа с тестером стратегий. Обычное тестирование советника состоит из целой последовательности действий: необходимо настроить параметры, запустить тест, дождаться результата, изучить отчет, изменить условия и повторить процесс. Теперь значительную часть этой работы можно поручить AI Assistant.

Например, одной задачей можно попросить протестировать советник на нескольких валютных парах за последние два года с заданными параметрами, сравнить полученные результаты и подготовить выводы. Агент последовательно запустит необходимые тесты и проанализирует их результаты.

Аналогичный подход работает с оптимизацией. Можно указать параметры советника, которые требуется подобрать, и задать критерий — например, отдать приоритет меньшей просадке, а не максимальной чистой прибыли. AI Assistant сможет координировать этот процесс и анализировать полученные результаты.

AI-агент вместо обычного чат-бота

Главное преимущество интеграции AI в MetaTrader 5 заключается в контексте и возможности выполнять действия. Агент получает доступ к необходимым данным платформы и может использовать ее инструменты для решения многошаговых задач.

При этом MetaTrader 5 позволяет управлять доступом AI Assistant к функциям и данным платформы, включая чувствительные операции. Пользователь сам определяет доступные агенту возможности.

Попробуйте бесплатный AI Assistant непосредственно в MetaTrader 5. Начните с простой задачи, а затем переходите к комплексным сценариям: анализируйте рынки и торговую историю, настраивайте рабочее пространство, тестируйте и оптимизируйте советники.

Важно: результаты, созданные с помощью AI, могут содержать ошибки, быть неполными или не подходить для конкретной ситуации. Они не являются финансовой, инвестиционной или торговой рекомендацией. Проверяйте результаты и действия AI перед их использованием и самостоятельно принимайте торговые решения.

С версии 6245 мы включили в AI Assistant полный доступ к www.mql5.com и его поисковику.

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

В качестве примера:

1. Найди мне мои последние комментарии на mql5

Нашёл. Ваш аккаунт MQL5.com — Renat (Renat Fatkhullin, https://www.mql5.com/ru/users/Renat ), поэтому искал по фильтру author=Renat в русскоязычных разделах.

Последние комментарии — форум (10 самых свежих)

Всего в индексе по форуму (ru) для этого автора: 15136 сообщений. Последние по дате:

# Дата (МСК) Тема Ссылка
1 08.10.2026 12:46 Новая версия платформы MetaTrader 4 build 1490 https://www.mql5.com/ru/forum/517374/60528751#comment_60528751
2 08.10.2026 11:14 AI Assistant MT5 https://www.mql5.com/ru/forum/517761/60528406#comment_60528406
3 05.10.2026 18:24 Build 1491: кастомные индикаторы в Навигаторе есть, а на графике пустота https://www.mql5.com/ru/forum/517605/60511941#comment_60511941
4 03.10.2026 11:16 MT5 build 6230: больше возможностей AI https://www.mql5.com/ru/forum/516827/60502981#comment_60502981
5 03.10.2026 09:37 MT5 build 6230: больше возможностей AI https://www.mql5.com/ru/forum/516827/60502800#comment_60502800
6 27.09.2026 17:05 MT5 build 6180: больше ИИ-функций https://www.mql5.com/ru/forum/515540/60471215#comment_60471215
7 27.09.2026 15:24 MT5 build 6180: больше ИИ-функций https://www.mql5.com/ru/forum/515540/60471008#comment_60471008
8 27.09.2026 03:20 MT5 build 6180: больше ИИ-функций https://www.mql5.com/ru/forum/515540/60469984#comment_60469984
9 26.09.2026 21:48 MT5 build 6180: больше ИИ-функций https://www.mql5.com/ru/forum/515540/60469385#comment_60469385
10 15.09.2026 23:23 MT5 build 6180: больше ИИ-функций https://www.mql5.com/ru/forum/515540/60407462#comment_60407462

Кратко о содержании (текст в результатах поиска — фрагменты):

  • «Новая версия платформы MetaTrader 4 build 1490» — «Это исправлено в версии 1492».
  • «AI Assistant MT5» — обновление кластера обслуживания агента по зонам, переезд на новую систему.
  • «Build 1491…» — пояснение про ошибку загрузки EX4 и выпуск апдейта 1492.
  • «MT5 build 6230» — про нестабильность AI-кластера и совет обновить WebView2 (Evergreen Bootstrapper) и драйверы.
  • «MT5 build 6180» — серия ответов про внутренние бюджеты/контекстное окно агента, компактизацию контекста, UTF-8 как базовую кодировку для AI и «~3 триллиона токенов в MQL5 Lite».

Более старые — комментарии к блогам (3 записи)

Дата Пост Ссылка
21.12.2015 Обживаем компилятор MQL5 https://www.mql5.com/ru/blogs/post/656491#comment_2128374
15.02.2015 А СУДЬИ КТО? ИЛИ КОППЕРФИЛЬД ОТДЫХАЕТ! https://www.mql5.com/ru/blogs/post/379720#comment_1366964
15.02.2015 А СУДЬИ КТО? ИЛИ КОППЕРФИЛЬД ОТДЫХАЕТ! https://www.mql5.com/ru/blogs/post/379720#comment_1366666

Прочие разделы

В разделах «Статьи», «CodeBase», «Market», «Фриланс» (ru) под этим автором найдены только старые публикации, не комментарии: OpenCL Test (2012), Flame (2013), MD5 Cloud Decryptor (2015), статья про DLL для MQL5 (2010). То есть свежие комментарии у вас именно на форуме.

Notes:

  • Использован публичный MQL5 Search API ( search.mql5.com/api/query , hl=ru , module=mql5.com.ru.forum , author=Renat , сортировка method=2 — новые первыми).
  • Полнота ограничена поисковым индексом MQL5, русскоязычными разделами и доступными модулями; приведённые тексты — фрагменты выдачи, а не полные сообщения.
  • Если нужен другой аккаунт (не Renat ) или английские разделы ( hl=en ) — скажите, переспрошу с другими параметрами.


Под этот запрос сделано всего 5 MCP запросов, 4 из которых - к поисковику: это очень быстро и экономно

2026.10.08 17:30:34.627    127.0.0.1    get workspace environment
2026.10.08 17:30:34.836    127.0.0.1    web request GET https://search.mql5.com/llms.txt 13276 bytes
2026.10.08 17:30:41.405    127.0.0.1    web request GET https://search.mql5.com/api/query?hl=ru&module=mql5.com.ru.blogs&author=Renat&keyword=&from=0&count=10&method=2 3266 bytes
2026.10.08 17:30:41.423    127.0.0.1    web request GET https://search.mql5.com/api/query?hl=ru&module=mql5.com.ru.forum&author=Renat&keyword=&from=0&count=10&method=2 8645 bytes
2026.10.08 17:31:14.668    127.0.0.1    web request GET https://search.mql5.com/api/query?hl=ru&module=mql5.com.ru.articles%7Cmql5.com.ru.codebase%7Cmql5.com.ru.market%7Cmql5.com.ru.jobs&author=Renat&keyword=&from=0&count=10&method=2 5738 bytes



2. Покажи последнюю спецификацию OrderSend

Нашёл актуальную (последнюю) спецификацию — страница справочника MQL5 обновлена 2026.10.07 (в футере doc-файла: Docs file updated: 2026.10.07 ).

Источник: https://www.mql5.com/ru/docs/trading/ordersend (раздел «Торговые функции»)

Сигнатура

bool OrderSend(
   MqlTradeRequest&   request,     // структура запроса
   MqlTradeResult&    result       // структура ответа
   );

Назначение

Функция OrderSend() предназначена для совершения торговых операций через отправку запросов на торговый сервер.

Параметры

Параметр Направление Описание
request [in] Указатель на структуру типа MqlTradeRequest , описывающую торговое действие клиента
result [in,out] Указатель на структуру типа MqlTradeResult , описывающую результат торговой операции в случае успешного выполнения (возврата true )

Возвращаемое значение

При успешной базовой проверке структур (проверка указателей) возвращается true — это не свидетельствует об успешном выполнении торговой операции. Для подробного описания результата нужно анализировать поля структуры result .

Примечание (ключевые пункты)

  • Запрос проходит несколько стадий проверок на сервере: сначала проверяется корректность заполнения всех необходимых полей request ; при отсутствии ошибок сервер принимает ордер, и OrderSend() возвращает true .
  • Рекомендуется предварительно проверять запрос функцией OrderCheck() , которая вернёт код возврата, будущее значение баланса, средств, плавающей прибыли, требуемую маржу, оставшиеся свободные средства, уровень маржи и комментарий к коду ответа.
  • При отправке рыночного ордера ( action = TRADE_ACTION_DEAL ) true означает лишь, что ордер размещён в торговой системе для дальнейшего выполнения. Сервер может заполнить deal / order в result , если данные известны на момент ответа; события исполнения могут произойти уже после возврата из OrderSend() . Поэтому всегда сначала проверяйте retcode и, при необходимости, retcode_external в структуре result .
  • Принятый ордер хранится на сервере до одного из условий: истечение срока действия, появление встречного запроса, срабатывание ордера по цене исполнения, поступление запроса на отмену.
  • При обработке ордера сервер присылает терминалу событие Trade , обрабатываемое функцией OnTrade() .
  • Результат исполнения запроса можно отслеживать в OnTradeTransaction , причём один торговый запрос вызывает этот обработчик несколько раз (создание ордера, его исполнение, удаление из списка открытых, добавление в историю, добавление сделки, создание позиции).

Смотри также

Дополнительно (учебник, обновлён 20.01.2026): «Отправка торгового запроса: OrderSend и OrderSendAsync» — https://www.mql5.com/ru/book/automation/experts/experts_ordersend_ordersendasync

Notes:

  • На странице есть полный пример-скрипт ( OnStart + SendRandomPendingOrder , DeleteAllOrdersByMagic , GetRandomPrice ), который использует TRADE_ACTION_PENDING , request.magic , SYMBOL_TRADE_STOPS_LEVEL и проверяет result.retcode . Скажите — выгружу его в файл в MQL5/Files/Temp и, при желании, скомпилирую.
  • Сигнатура bool OrderSend(MqlTradeRequest&, MqlTradeResult&) в текущей версии справочника не изменилась по сравнению с предыдущими ревизиями; дата обновления страницы — 2026.10.07.


Всего два запроса MCP tools:

2026.10.08 17:35:45.783    127.0.0.1    web request GET https://search.mql5.com/api/query?hl=ru&module=mql5.com.ru.docs%7Cmql5.com.ru.book&keyword=OrderSend&from=0&count=10 19528 bytes
2026.10.08 17:35:49.990    127.0.0.1    web request GET https://www.mql5.com/ru/docs/trading/ordersend 82170 bytes



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

Прочитал все ветки из выборки (загрузка страниц выполнена субагентами, каждый отчёт ниже синтезирован из фактического содержимого страниц).

Что именно прочитано

  • Выборка за 08.10.2023–08.10.2026 (ru-форум, ключ OrderSendAsync ) — 18 совпадений, это полный набор по индексу за окно ( total=18 ).
  • Эти 18 совпадений относятся к 12 темам; для каждой прочитана страница с релевантными комментариями и соседние сообщения.
  • Оговорка: ветки forum/170952 , forum/160683 , forum/93352 содержат тысячи страниц, поэтому читались конкретные страницы с найденными комментариями (а не вся ветка целиком) — «все страницы» здесь означает все страницы, содержащие обсуждение OrderSendAsync за период.

Обсуждения (12 тем, 08.10.2023 – 08.10.2026)

Дата (МСК) Тема Ключевые участники Ссылка Суть по OrderSendAsync
19.05.2026 Как в алготрейдинге спастись от проскальзываний fxsaber, nektomk, Renat Akhtyamov, JRandomTrader, Scriptong 509851 Практика: OrderSend только на выставление отложки, всё остальное (модификация отложки, SL/TP позиции) — OrderSendAsync ; результат — в OnTradeTransaction . «Кругом подводные грабли»
05.05.2025 защита от копитрейдинга fxsaber 485968 При подписке на сигнал OrderSend / OrderSendAsync → RET_REQUEST_AT_DISABLED_CLIENT
16.02.2025 Библиотеки: MT4Orders fxsaber, hini 93352 В Тестере у первого удачного вызова request_id == 0 ; поэтому async в MT4Orders для тестера не реализован
15.02.2025 то же hini 55923665 На реале async даёт TRADE_RETCODE_PLACED , в тестере — TRADE_RETCODE_DONE
11.02.2025 Как гарантированно выставить один отложенный ордер в МТ5? glavforex, s22aa, Scriptong, kurscme 481225 Не async, а синхронный OrderSend + разбор retcode / deal / order ; при пинге > 400 мс OrderSend может вернуться без ответа
21.01.2025 Запуск сервиса из эксперта или индикатора Scriptong, komposter, nektomk 479785 Даже async из одного советника идёт последовательно и медленно; для батча нужен сервис/скрипт
13.09.2024 MT5 build 4570 (анонс) MetaQuotes 473034 Ограничение торговых функций MQL5/Python при подписке на сигнал (коды ответов перечислены)
10.04.2024 Как закрыть позиции без перебора в советнике? AlexeyVik, fxsaber, DNG, boyvlad 465394 Массовое закрытие/переворот — «асинхронка без каких-либо обработок транзакций»; критика закрытия в цикле
06.03.2024 Асинхронная обработка отсылки ордеров darkslane, trampampam, fxsaber, marketeer, nektomk, joo 463563 Как ловить завершение async: логировать события, следить за ORDER_STATE_REQUEST_MODIFY ; bool + «мёртвая» MqlTradeResult
15.01.2024 MT5 build 4150 elibrarius 459334 В тестере эмуляция задержек для async не реализована: логи как у OrderSend
27.11.2023 Не снимаются лимитные ордера в OnDeinit Scriptong, Dziuba, JRandomTrader, fxsaber 458113 Async не мгновенен; при массовых операциях в OnDeinit исчерпывается лимит времени (~2,5 с) и программа «убивается»
02.11.2023 Особенности языка mql5, тонкости и приёмы fxsaber, nektomk 170952 Зафиксирован случай: async-модификация выполнялась дольше 5 секунд ( TRADE_ACTION_MODIFY ); метод — замер до/после вызова
02.11.2023 Любые вопросы новичков по MQL4/MQL5 AlexeyVik, alexander_777 160683 Зависания по 3 минуты при OrderModify / OrderDelete (Финам, OnBookEvent ) → совет перейти на OrderSendAsync

Отчёт: особенности OrderSendAsync

Спецификация (актуальный справочник, ред. 07.10.2026):

bool OrderSendAsync(
   MqlTradeRequest&   request,     // структура запроса
   MqlTradeResult&    result       // структура ответа
   );
  1. Отправка запроса без ожидания ответа сервера; для высокочастотной торговли. true = запрос отправлен (не значит, что дошёл и принят); не отправлен — false .
  2. При успехе retcode = TRADE_RETCODE_PLACED (10008); значимо только request_id , дальше — OnTradeTransaction .
  3. OnTradeTransaction вызывается многократно на один запрос; request / result валидны только для TRADE_TRANSACTION_REQUEST . Ответ сервера даёт событие Trade → OnTrade .
  4. CTrade::SetAsyncMode(true) — официальная точка входа в async для стандартной библиотеки.

Особенности, подтверждённые в прочитанных ветках:

  • Async не быстрее синхронного вызова сам по себе. Scriptong: «Из одного советника даже OrderSendAsync будет выполняться последовательно, причем достаточно медленно… работа с сетью без ожидания ответа сервера — это всё равно дополнительное замедление». Выигрыш — только неблокирующий поток и разрыв «запрос → ответ» при медленном сервере (кейс Финам: синхронные OrderModify / OrderDelete зависали ровно по 3 минуты и давали timeout ).
  • Async не мгновенен и может «зависнуть». fxsaber: «OrderSendAsync может выполняться дольше пяти секунд» ( TRADE_ACTION_MODIFY ), замер — время до/после вызова. nektomk оспаривал измерение, но сам факт автор подтвердил повторным замером.
  • Управление состоянием — только через события. Обсуждение в 463563: trampampam советует сначала логировать OnTradeTransaction и от этого строить логику; marketeer: выводить в лог все структуры событий. Зафиксировано различие набора событий у разных брокеров и даже два ORDER_STATE_PLACED на одну операцию; для модификаций ловят ORDER_STATE_REQUEST_MODIFY .
  • Типовой рабочий шаблон сообщества: синхронный OrderSend на выставление отложки + async на модификации уровня и SL/TP (fxsaber, подхвачено joo и AlexeyVik; там же — «асинхронка без каких-либо обработок транзакций» для закрытий/модификаций, что снимает часть рисков дублей, но повышает риск незамеченных отклонений).
  • Тестер — не эквивалент реальности. Книга/ветка: «В тестере функция OrderSendAsync работает как OrderSend». В тестере retcode = TRADE_RETCODE_DONE вместо PLACED , request_id первого удачного запроса = 0, эмуляция задержек для async не реализована (логи идентичны синхронным). Поэтому fxsaber сознательно не реализовал async в MT4Orders для тестера.
  • Ограничения окружения. Build 4570: при подписке на сигнал все торговые функции MQL5/Python запрещены; OrderSend / OrderSendAsync возвращают RET_REQUEST_AT_DISABLED_CLIENT , OrdersTotal / PositionsTotal → 0 и т.п.

Частые ошибки и грабли

  1. Ждать тикет/статус из result async. nektomk: async возвращает «некий bool … и мёртвую структуру MqlTradeResult по ссылке, с которой ничего сделать нельзя». Тикет и результат — только в OnTradeTransaction (или через собственный реестр request_id ).
  2. Проверять только TRADE_RETCODE_PLACED . В тестере приходит TRADE_RETCODE_DONE (вопрос hini, ответ-подтверждение: на реале PLACED корректно, в тестере — DONE ) → проверка «сломается» ровно на тестере или на нестандартном брокере.
  3. Ждать подтверждения по request_id в тестере. request_id == 0 у первого удачного вызова — код «0 = ошибка» даст ложную тревогу; из-за этого async в MT4Orders для тестера не реализован.
  4. Массовые операции в OnDeinit . Scriptong: async выполняется не мгновенно и «выполнение OnDeinit() попросту исчерпает весь лимит времени»; JRandomTrader: на завершение даётся ~2,5 с, затем советник «убивается»; Dziuba в логе видел CTrade::OrderDelete: MQL5 program is stopped. Trading is disabled . Итог — часть ордеров не снимается.
  5. Ожидать «мгновенной» асинхронности. Зафиксировано > 5 с на async-модификацию; логика без тайм-аутов «залипает».
  6. Строить цепочки зависимых операций на async. Нет гарантии порядка/доставки — при зависимых шагах (закрыть → открыть) нужен синхронный вызов с разбором результата.
  7. Считать sync- OrderSend гарантией. s22aa: при пинге > 400 мс OrderSend может завершиться, не дождавшись ответа; glavforex: даже успешный OrderSend не гарантирует, что ордер выставлен (поле order может остаться пустым). Порядок разбора (Scriptong): сначала retcode , затем deal / order — «достаточно проанализировать три первых поля MqlTradeResult ».
  8. Не логировать транзакции. Без вывода структур в OnTradeTransaction невозможно понять, что реально произошло ( ORDER_STATE_REQUEST_MODIFY , дубли PLACED , отличия по брокерам) — типичная стартовая ошибка (463563).
  9. Ожидать параллелизма от одного советника. Батч «десятков приказов» быстрее и надёжнее делать через сервис/скрипт: «запуск скрипта/сервиса — всего одно сообщение» (Scriptong).
  10. Не учитывать отличия тестера. Async == sync, задержки не эмулируются → «режим с задержками для OrderSendAsync не реализован» (elibrarius). Оптимизации и тайминги из тестера непереносимы на реал.
  11. Ручные флаги ожидания без тайм-аута. Практика «флаг + событие» (kurscme) рабочая, но без аварийного сброса по времени даёт залипание и риск повторной отправки/дублей.
  12. Не проверять ограничения окружения. При подписке на сигнал async вернёт RET_REQUEST_AT_DISABLED_CLIENT — без обработки этого кода логика молча «не торгует».

Практические выводы

  • Учитывайте возврат функции и retcode ( 10008 / 10009 , а в тестере — DONE ), контролируйте request_id , ведите сопоставление request_id → заявка (символ, тип, объём, собственный magic ).
  • Обрабатывайте OnTradeTransaction с логированием структур и обязательным тайм-аутом; не полагайтесь на «мгновенность» и гарантированную доставку событий.
  • Разделяйте: OrderSend — где следующий шаг зависит от результата (постановка, цепочки); OrderSendAsync — независимые массовые операции (пакетные модификации SL/TP, закрытие/переворот пачкой, мультисоветники).
  • Не выполняйте большие пачки в OnDeinit (лимит ~2,5 с); для батчей рассматривайте сервис/скрипт.
  • Не переносите коды и тайминги из тестера на реал; тестируйте поведение в реальном окружении (в том числе на демо-счёте), учитывая, что один тест ничего не гарантирует.

Notes:

  • Ссылки сохранены на исходные страницы с якорями комментариев; тексты приведены как цитаты участников (фрагменты), а не как рекомендации — часть практик («модификации без проверок») повышает риск незамеченных отклонений и требует собственного контроля состояния.
  • Полнота ограничена поисковым индексом MQL5, языком ru и окном 08.10.2023–08.10.2026; крупные многотысячестраничные ветки читались на страницах с релевантными сообщениями, а не целиком.
  • При необходимости могу выгрузить полный список прочитанных сообщений (JSON/CSV) в MQL5/Files/Temp или прогнать дополнительный поиск по английским разделам.





Важно уточнение по работе с сайтом www.mql5.com:

  • не заставляйте выкачивать массово сайт, так как можно нарваться на блокировки
  • скоро мы улучшим защиту сайта, чтобы не блокировало лишний раз.

Существует ли официальный способ установки MT5 на Linux без GUI?

Я использую Claude Code на изолированной Ubuntu (на WSL). Агентам даны широкие разрешения (могут делать все, что не требует sudo).

Я бы с удовольствием подключил Claude Code к MT5. Но не готов заплатить за это безопастностью и не хочу переходить на GUI ради этого.

Не для поиска граалей, а для тестирования mql5 приложений на соответствие requirements specification. Не уверен по поводу тестера стратегий, но mql скрипты с unit тестами хуже не сделали бы.

круто. но с этим не вяжется:
  • не заставляйте выкачивать массово сайт, так как можно нарваться на блокировки