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

 
Что это за предположение через минут 5 работы:
"

Скрипт, видимо, долго обрабатывает данные. Попробую запустить с большим таймаутом и перенаправлю вывод в файл, чтобы избежать проблем с кодировкой.

"
Почему он не может знать, работает ещё скрипт на питоне или нет?
 

Общался я с ботом в ME нажал сдучайно CTRL+TAB вернулся на чат, а там нет большей части истории - печально.

И это не просто трёп был, а проект, который я делал.

 

Касательно комиссии


void OnStart()
  {
//--- объявляем динамический массив для получения правил начисления комиссии
   MqlCommission commissions[];
 
//--- получаем правила комиссии для текущего символа.
//--- если вместо NULL указать имя символа, функция вернет комиссии для этого символа.
   int total=SymbolInfoCommissions(NULL,commissions);
 
//--- проверяем результат выполнения функции
   if(total<0)
     {
      //--- в случае ошибки выводим код ошибки
      PrintFormat("SymbolInfoCommissions failed. Error %d",GetLastError());
      return;
     }
 
//--- выводим количество полученных правил комиссии
   PrintFormat("Commission rules: %d",total);
 
//--- перебираем все правила комиссии
   for(int i=0;i<total;i++)
     {
      //--- выводим основные параметры правила комиссии:
      //--- валюту, режим выбора диапазона и режим начисления
      PrintFormat("Rule %d: currency=%s, range mode=%d, charge mode=%d",
                  i,
                  commissions[i].currency,
                  commissions[i].mode_range,
                  commissions[i].mode_charge);
 
      //--- получаем количество уровней комиссии в текущем правиле
      int tiers_total=ArraySize(commissions[i].tiers);
 
      //--- перебираем уровни комиссии
      for(int j=0;j<tiers_total;j++)
        {
         //--- выводим параметры уровня комиссии:
         //--- способ расчета, значение, диапазон применения и валюту
         PrintFormat("  Tier %d: mode=%d, value=%G, range=%G - %G, currency=%s",
                     j,
                     commissions[i].tiers[j].mode,
                     commissions[i].tiers[j].value,
                     commissions[i].tiers[j].range_from,
                     commissions[i].tiers[j].range_to,
                     commissions[i].tiers[j].currency);
        }
     }
  }

--

Закрываем позицию и смотрим Историю

--

Вывод: как не было возможности получить комиссию на открытой позиции - так и не появилось.

Будем использовать старый и проверенный способ получать через историю.

 

какие-то чудеса на поворотах,

есть подвальный индикатор - в буферах всякие линии. Отдельно от буферов выводит стрелки в своё подокно и на основной чарт. 

работает как часы. 

Ровно до момента пока на него не наложить сверху любой индикатор с "Apply to first indicator data". ObjectCreate первого перестаёт работать

есть идеи отчего такое может быть ?

 
Maxim Kuznetsov #:
есть идеи отчего такое может быть ?

после переключения тайм-фрейма ChartWindowFind() первого индикатора, то есть того на который применён другой

перестаёт находить собственное окно. 

а чтобы рисовал хотя-бы в основном пришлось пересобирать ОБА в одну архитектуру. Когда один был x64, другой AVX2 было вообще не в протык. После пересборки обоих в AVX2 начало рисоваться хотя-бы в окне 0, то есть в основном чарте

как минимум -4 часа личного времени

 
Maxim Kuznetsov #:

какие-то чудеса на поворотах,

есть подвальный индикатор - в буферах всякие линии. Отдельно от буферов выводит стрелки в своё подокно и на основной чарт. 

работает как часы. 

Ровно до момента пока на него не наложить сверху любой индикатор с "Apply to first indicator data". ObjectCreate первого перестаёт работать

есть идеи отчего такое может быть ?

Я думаю надо проверить номер окна индикатора, до и после.
 
Alexey Viktorov #:
Я думаю надо проверить номер окна индикатора, до и после.

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

Сразу после наложения другого индикатора сверху - какое-то время работает. После "по колёсам постучал" и пересобрал в одну архитектуру.

После смены ТФ - все вызовы ChartWindowsFind() в -1

Детальнее лоцировать и генерить отдельный тест-кейс с обрезанными индюками нет уже ни сил ни настроения...у меня и так непрерывный спурт за сутки ушёл

 
В ME при попытки продолжить диалог с Ассистентом произошло "ничего" при отправке сообщения, в логе такое:
2026.07.23 18:01:10.031 ACP     session 20260723_1 loaded in D:\FX\MT5_Test
2026.07.25 14:44:02.130 ACP     transport error: failed to write ACP line to engine stdin
2026.07.25 14:44:02.154 ACP     failed to write ACP line to engine stdin (code=-4, win32=232)
2026.07.25 14:44:02.154 ACP     call 'session/prompt' failed: JSON-RPC transport was closed
2026.07.25 14:44:02.154 ACP     async promt failed: JSON-RPC transport was closed (code=-1, win32=0)
 

Всем привет. После крайнего обновления перестал запускаться терминал на Windows 7. Подскажите, кто разбирается. Без отката на предыдущий билд не смогу продолжить работу под Windows 7? Скрин для наглядности


 
Maxim Kuznetsov #:
После смены ТФ - все вызовы ChartWindowsFind() в -1

утро вечера мудренее, поковырял код : вопрос снимается.

полученный эффект - это от изменения порядка OnInit/OnDeinit (или асинхронных команд которые они в чарт отсылают)
при наложении дополнительного индикатора

редьки не слаще :-)