Новая версия платформы MetaTrader 5 build 6060: Интеграция с ИИ, Passkey и удобная работа с кодом в MetaEditor - страница 7

 
Aleksey Vyazmikin #:
Потому что я не понял Вашу просьбу, видимо.

Вот её смысл в визуальной интерпретации. 1 это как сейчас и 2 как можно было бы исходя из стиля Visual Studio Code


 
Igor Zakharev #:

Вот её смысл в визуальной интерпретации. 1 это как сейчас и 2 как можно было бы исходя из стиля Visual Studio Code


Спасибо за пояснение. Я исходил из того, что где значок для свёртывания кода, там он полностью и будет свёрнут, но Вы пояснили, что это не так должно работать. Против правки не имею возражений.
 
Vitaly Muzichenko #:

Каюсь 😊

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

и TerminalInfo* ?
 

для меня, не имеющего опыт программирования, это просто супер удобный инструмент

находит ошибки, объясняет, предлагает решения

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

респект прогам за этот механизм

 

Баг-репорт: MT5 AI Assistant / MCP (Beta build 6033-6034)

1. WebView2 не рендерится под Wine на macOS (критично)

Симптомы (по нарастающей, наблюдал все стадии):

  • Изначально:  WebView2 couldn't find WebView2 Runtime  в Journal, панель AI Assistant пустая
  • После ручной установки полного Edge + правки реестра детекции: ошибка ушла, но панель осталась серой заглушкой
  • После смены аргументов запуска ( --no-zygote  вместо  --single-process ): панель стала прозрачной — сквозь неё видно график на заднем плане (окно не композитится)

Окружение: Windows 11 build 22000 on Wine 11.1 Darwin 24.6.0 — это официальная сборка терминала от MetaQuotes (bundled Wine внутри MetaTrader5.dmg ), не самодельная. То есть баг воспроизводится на родном дистрибутиве MetaQuotes для macOS.

Что установлено верно (проверено побайтово): WebView2 Runtime 109.0.1518.78, полный Edge, win11-бутылка, msxml/vcrun/.NET4, ключи реестра детекции {F3017226-...} во всех трёх ветках (HKLM native/WOW6432/HKCU) с корректным pv .

Вопрос разработчикам: какой именно WebView2 Runtime и набор флагов запуска Chromium ожидает встроенный AI Assistant внутри их же .wine -бандла? Если это известная проблема совместимости Chromium-под-Wine — стоит явно задокументировать минимальные версии macOS/Wine, при которых AI Assistant вообще может работать.


2. MCP-сервер ( trade_send_market_order ) не поддерживает выбор filling mode → retcode 10030 на инструментах с ограниченной маской SYMBOL_FILLING_MODE

Воспроизведение:

  • Символ:  BTCUSD  на Tickmill-Demo,  SYMBOL_FILLING_MODE  бит-маска = 2 (только IOC, FOK не поддерживается)
  • Вызов  trade_send_market_order  (buy, 0.1 лот, без SL/TP) → ответ  {"retcode": 10030, "retcode_details": "Invalid fill"}
  • Тот же ордер через самописный MQL5-скрипт с ручным перебором  ENUM_ORDER_TYPE_FILLING  (IOC/FOK/RETURN по маске символа) — исполняется штатно

Причина: инструмент схемы trade_send_market_order не принимает параметр filling mode и, судя по поведению, жёстко использует один режим (похоже на FOK) без чтения SYMBOL_FILLING_MODE перед отправкой.

Предложение: добавить опциональный параметр filling_mode в схему инструмента, либо (лучше) реализовать авто-fallback внутри сервера — читать битовую маску символа и перебирать поддерживаемые режимы при retcode 10030, как это давно принято делать в любом торговом коде под MT5.


3. MCP-сервер не поднимается, если MetaEditor закрыт при старте Claude-сессии

Не баг терминала как такового, но стоит упомянуть как UX-проблему: MCP.MetaEditor (порт 22345) слушает только пока MetaEditor открыт. Если MCP-клиент подключается раньше, чем пользователь открыл MetaEditor, инструменты компиляции остаются недоступны до перезапуска клиента. Разумно: держать сервер живым (или хотя бы порт открытым с очередью) даже когда окно MetaEditor не активно, раз уж это заявлено как «внутренний сервер».

 
Alex FXPIP #:
Разумно: держать сервер живым (или хотя бы порт открытым с очередью) даже когда окно MetaEditor не активно, раз уж это заявлено как «внутренний сервер».
Между прочим внутренние MCP самого Claude устроены также - например, MCP Chrome "не поднимается" пока приложение Chrome.exe не запущено. И он сам не сообразил, что его нужно запустить, чтобы MCP заработало, пришлось явно прописывать это в claude.md. Рекомендую то же самое сделать для metaeditor64.exe, если тут такая же история
 

Баг: MCP-сервер MetaTrader не даёт ИИ повесить индикатор или советник на график

1. Индикатор — chart_id ломается из-за потери точности в JSON

  • chart_open(symbol="BTCUSD", period="H1")  → возвращает  chart_id: 134289325670721690  (18 цифр)
  • Тот же самый ID, переданный обратно в  chart_apply_template  или  chart_close , отклоняется обоими инструментами без объяснения причины
  • Причина: в схеме MCP-инструментов  chart_id  объявлен как  "type": "number"  — это IEEE-754 double, точное представление целых чисел только до 2^53 (≈9×10¹⁵). MT5 отдаёт  chart_id  как 64-битный  long , реальные значения на 1–2 порядка больше этого предела → при сериализации в JSON число округляется, и сервер потом не находит график с «своим же» ID
  • Итог: накинуть индикатор через  .tpl -шаблон нельзя в принципе — не только на чужой график, а вообще ни на один, потому что даже штатно созданный чарт закрыть/зашаблонить не получается
  • Фикс: передавать  chart_id  строкой (или int64 нативно в транспорте), а не JSON  number

2. Нет вообще инструмента «прикрепить индикатор/советник к графику» напрямую

  • В списке из 38 инструментов MCP-сервера MetaTrader есть  chart_open ,  chart_close ,  chart_apply_template  — и всё. Нет  attach_indicator  /  attach_expert  /  run_script
  • Единственный обходной путь — собрать  .tpl -файл вручную и применить его через  chart_apply_template , но (а) формат  .tpl  для кастомных индикаторов (не встроенных) нигде не задокументирован и не совпадает 1-в-1 с тем, что сохраняет сам терминал, и (б) даже это упирается в баг №1 выше
  • Советника (EA) прикрепить к живому графику через MCP вообще невозможно ни одним способом — только через Strategy Tester ( tester_run_backtest ), что не то же самое, что живой запуск на графике

Что нужно: добавить в MCP-сервер MetaTrader прямые инструменты chart_attach_indicator(chart_id, indicator_path, inputs) и chart_attach_expert(chart_id, expert_path, inputs) , аналогично тому, как это делает IndicatorCreate / ExpertAdd изнутри MQL5 — без необходимости городить .tpl -файлы руками и без обхода через баг с chart_id.

 
Ilya Malev #:
Между прочим внутренние MCP самого Claude устроены также - например, MCP Chrome "не поднимается" пока приложение Chrome.exe не запущено. И он сам не сообразил, что его нужно запустить, чтобы MCP заработало, пришлось явно прописывать это в claude.md. Рекомендую то же самое сделать для metaeditor64.exe, если тут такая же история

Да, согласен насчёт MetaEditor — это ровно та же история, что с Chrome MCP: сервер на порту 22345 просто не поднимается, пока MetaEditor64.exe не запущен, а обнаружить и сообразить это самостоятельно ИИ не может. Тут поможет либо явный текст ошибки при недоступном порте («MetaEditor MCP requires MetaEditor64.exe running»), либо автозапуск MetaEditor терминалом при первом обращении к его MCP — «пропиши в CLAUDE.md» тут не сработает, потому что это не мой проектный файл, а ваш сервер, к нему пользовательская инструкция не применится.

А вот два других найденных бага к этой истории не относятся — их запуском чего-либо не починить:

  1. chart_id теряет точность. chart_open возвращает 64-битный ID (18 цифр), а в JSON-схеме параметр объявлен как "type": "number" — это double, точные целые только до 2^53. Реальный ID в разы больше этого предела, округляется при сериализации, и chart_apply_template / chart_close потом не находят график с «его же» ID. Это никак не связано с тем, запущен MetaEditor или нет — воспроизводится всегда. Чинится сменой типа параметра на string (или int64 в транспорте).

  2. Нет инструментов attach_indicator/attach_expert. Единственный путь повесить что-то на график — собирать .tpl руками через chart_apply_template , а формат .tpl для кастомных индикаторов не задокументирован. Это отсутствующая функциональность сервера, а не проблема обнаружения сервиса.

 
История чата в метаэдиторе не сохраняется в ИИ ассистант при перезапуске сесии 
 

в терминале, в навигаторе, сбита индексация как минимум в скриптах:

Если попытаться запустить скрипт Scripts/Group/xxx, то есть скрипт из под-каталога - то запуститься не он а тот который рядом. Что двойным кликом запускать что перетаскиванием на график.

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