Новая версия платформы MetaTrader 5 build 5200: расширение OpenBLAS и усиление контроля в MQL5 - страница 26

 
Stanislav Korotky #:

Проверьте пожалуйста у себя - вот такой тестовый минимальный индикатор роняет МТ5 без всяких сообщений и логов:

Есть подозрение, что глюк случается только при наличии групп во входных параметрах.

ЗЫ. Кстати, после этого невозможно отлаживаться, т.к. перезапущенный МТ5 при попытке запуска программы пишет в лог:

Нужно перезапускать и ME.

5200 резкое закрытие терминала без зависания

 

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

Новая версия платформы MetaTrader 5 build 5200: расширение OpenBLAS и усиление контроля в MQL5

Ilyas, 2025.08.04 14:08

Для однозначности, операция 'TYPE NAME = INITIALIZER', больше не будет разбиваться на две операции DECL + ASSIGNMENT, а останется одной 'DECL [has initializer]'
Если требуется объявить переменную и вызвать для неё оператор =, разбивайте операцию на две части вручную: DECL; ASSIGNMENT; (да, с констаностью переменной придётся расстаться)

Здесь немного раскрыл Вашу фразу. Однако, нарвался на случай ее несоответствия.
struct A
{
  int Tmp;
  
  A() {}
  A( /*const*/ A& ) { Print(__FUNCSIG__); }
  
  void operator =( const A& ) { Print(__FUNCSIG__); }
};

void OnStart()
{
  const A a1;
  const A a2 = a1; // void A::operator=(const A&)
}

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

Строка для поискаOshibka 144.

Особенности языка mql5, тонкости и приёмы работы
Особенности языка mql5, тонкости и приёмы работы
  • 2025.08.26
  • www.mql5.com
В данной теме будут обсуждаться недокументированные приёмы работы с языком mql5 , примеры решения тех, или иных задач...
 
Stanislav Korotky #:

Проверьте пожалуйста у себя такой тестовый минимальный индикатор:

Суть в том, что для любого индикаторного хендла (здесь берем самого себя, но это для простоты) вызов CopyBuffer происходит успешно на 1 большее число раз, чем количество буферов в индикаторе. В данном случае, индикатор безбуферный и вызов CopyBuffer должен завершаться ошибкой. Кроме того возвращаются какие-то данные с потолка.

ИМХО, это баг или расскажите мне, в чем здесь логика.

Спасибо, исправили.

В следующей бете не будем такого.

 
Rashid Umarov #:



Обратите, пожалуйста, внимание на проблему:

 
fxsaber #:
Здесь немного раскрыл Вашу фразу. Однако, нарвался на случай ее несоответствия.

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

Просьба в СБ Internal\TimeSpan\TimeSpan.mqh облачить следующие конструктор и оператор в макрос.

#ifndef __MQL5__
  //+------------------------------------------------------------------+
  //| Constructor with parameters.                                     |
  //+------------------------------------------------------------------+  
                   TimeSpan(TimeSpan &value)
   {
    m_ticks=value.Ticks();
   }
  
  //+------------------------------------------------------------------+
  //| Operator (=).                                                    |
  //+------------------------------------------------------------------+     
  void operator=(const TimeSpan &t)
   {
    this.m_ticks=t.Ticks();
   }
#endif // #ifndef __MQL5__

Они теперь не нужны в MQL5 и создают проблему.

Строка для поиска: Uluchshenie 132.
Latest MetaTrader upgrade: Operator not behaving as expected...
Latest MetaTrader upgrade: Operator not behaving as expected...
  • 2025.08.25
  • www.mql5.com
Hello All, With the latest MT5 update, I am hitting something I don't understand; a little script to illustrate the compiler warning am hitting: I...
 
fxsaber #:

облачить следующие конструктор и оператор в макрос.

Они теперь не нужны в MQL5

Проверил на проблему изменения поведения MQL5.

Мне повезло, что изменения в языке не повлияли на итоговый результат.

#define PRINT(A) ::Print(#A + " = " + (string)(A));

#include <TypeToBytes.mqh> // https://www.mql5.com/ru/code/16280

void OnStart( void )
{
  MqlTick Tick;
  SymbolInfoTick(Symbol(), Tick);

// Получение смещения поля структуры
  const int Offset = _OFFSET(Tick, bid); // Нашли смещение в байтах поля bid в объекте структуры MqlTick

  PRINT(__MQLBUILD__);

  _W(Tick)[Offset] = 1.23456;            // Записали по найденному смещению значение (double)1.23456

  PRINT(Tick.bid)
}


Однако, я вставил в вызываемую библиотеку два принта.

  // Нужен для вышестоящей return(this)
  void operator =( const STRUCT_WRITE<T> &Value )
  {
    Print(__FUNCSIG__);
    this.Data = Value.Data;
    this.Pos = Value.Pos;

    return;
  }

  // Нужен для вышестоящей return(this)
  STRUCT_WRITE( void )
  {
    Print(__FUNCSIG__);
  }


И запустил скрипт выше. Вот такая разность поведения.

__MQLBUILD__ = 5147
STRUCT_WRITE<MqlTick>::STRUCT_WRITE<MqlTick>()
void STRUCT_WRITE<MqlTick>::operator=(const STRUCT_WRITE<MqlTick>&)
STRUCT_WRITE<MqlTick>::STRUCT_WRITE<MqlTick>()
void STRUCT_WRITE<MqlTick>::operator=(const STRUCT_WRITE<MqlTick>&)
Tick.bid = 1.23456
__MQLBUILD__ = 5232
Tick.bid = 1.23456


@Ilyas, прошу объяснить эту разницу. Спасибо.


ЗЫ Понял причину. Но тогда реально очень сильно повезло, что итоговый результат не сломался.

 

Просто сводка разрозненных сообщений, которые я заметил и которые связаны со сбоями в работе «вкладок» в тестере стратегий ...

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

MT5 с 5200 тестер стратегий не обновляет графики разных таймфреймов

AMuxi , 2025.08.23 22:09

Всем привет,

после обновления до 5200 (а теперь и до 5227) тестер стратегий не обновляет графики, если я переключаюсь между разными таймфреймами.

Мой эксперт использует 3 разных таймфрейма — 3 индикатора с разделенным временем.

После обновления 5220 внизу графика тестера отображаются три вкладки (Daily, M30, M5). Но если выбрать другую вкладку, график не обновляется — вкладки переключаются, но содержимое графика не меняется.

Если я переключаюсь во время работы/тестирования эксперта, переключение графика происходит корректно. Но если эксперт завершён, обновление графика не запускается. Поэтому я не могу проанализировать логику и действия эксперта.

Это известная ошибка? Я не нашёл информацию о ней на форуме.

С уважением

Андреас

Торговый форум, автоматизированные торговые системы и тестирование торговых стратегий

ВЕРСИЯ: 5.00 сборка 5200. Тестер стратегий. Окна с разными таймфреймами.

Марсело Ласерда , 2025.08.11 20:55

Добрый день всем.

До установки сборки 5200 я видел в тестере стратегий графики с двумя разными таймфреймами: 5 мин и 1 мин. Теперь, в этой сборке, MT5 открывает две вкладки графиков, 5 мин и 1 мин, но оба окна одинаковые — 5 мин. Мне нужно видеть результаты тестов на обоих таймфреймах для анализа. Кто-нибудь ещё сталкивался с этой проблемой?


Gráfico estrategy tester

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

Новая сборка платформы MetaTrader 5 5200: расширенная поддержка OpenBLAS и улучшенное управление в MQL5

Цзянь Чжао Сюй , 2025.08.05 12:50

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


 

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

Новая сборка платформы MetaTrader 5 5200: расширенная поддержка OpenBLAS и улучшенное управление в MQL5

Фернандо Каррейру , 26.08.2025 19:41

Кто-нибудь заметил, что функционал MQL5 Forge Git считает допустимыми только файлы Unicode/UTF16 (зеленая галочка после фиксации)?

Другие форматы файлов, такие как ASCII, UTF-8 (с BOM или без него) успешно фиксируются, но остаются отмеченными красным предупреждающим кружком, даже если на сервере они все корректно обновляются и отображаются.

Ссылка: Сборка 5200 ...



 

Не факт, что проблема началась именно с этого билда, но тем не менее.

Раньше, при выполнении оптимизации советника, когда начиналось форвард-тестирование, была возможность "подглядеть" что там натестировалось, не дожидаясь конца процесса, и не прерывая его принудительно.

Правой кнопкой кликаешь на таблице с результатами оптимизации (в любом месте) и в списке выбираешь "результаты форвард-тестирования" (вторая сверху строка). Кнопки отдельной нет, но открывался НОВЫЙ список, с теми самыми результатами..

Теперь же, если кликнуть на эту строчку (она по-прежнему активна и доступна, если начался форвард-тест) - ничего не происходит, просто пропадает фокус с вкладки "оптимизация", причем таблица результатов не изменяется.

Терминал переустанавливал (в т.ч. от разных брокеров), даже переустанавливал Windows (не из-за этого, просто так совпало), но возможность обратно не вернулась.

Можно ее обратно не ждать?..

Работаем с результатами оптимизации через графический интерфейс
Работаем с результатами оптимизации через графический интерфейс
  • 2018.04.05
  • www.mql5.com
Продолжаем развивать тему обработки и анализа результатов оптимизации. На этот раз задача состоит в том, чтобы выбрать 100 лучших результатов оптимизации и отобразить их в таблице графического интерфейса. Сделаем так, чтобы пользователь, выделяя ряд в таблице результатов оптимизации, получал мультисимвольный график баланса и просадки на отдельных графиках.
 
Ilyas #:

Спасибо за сообщение.
Исправление будет доступно в следующей бете.

У OBJ_EDIT собираетесь убирать белую полоску под объектом? Когда-то её не было.