Новая версия платформы MetaTrader 5 build 5120: улучшения и исправления - страница 30

 
Igor Zakharev #:

Неожиданные результаты работы функции ArrayInitialize(), версии для long в частности. Функция вообще не работает.

https://www.mql5.com/ru/forum/488793/page5#comment_57048233
 
Igor Zakharev # :

Unexpected results from the ArrayInitialize() function, the long version in particular. The function does not work at all.

Video confirmation.



Уже исправлено. Build 5133.

2025.06.27 20:11:44.135 BugArrayInitialize20250607 (EURUSD,M5) int ArrayInitializeWrapper<char>(char&[],char) ВСЕ ОК
2025.06.27 20:11:44.135 BugArrayInitialize20250607 (EURUSD,M5) int ArrayInitializeWrapper<short>(short&[],short) ВСЕ ОК
2025.06.27 20:11:44.135 BugArrayInitialize20250607 (EURUSD,M5) int ArrayInitializeWrapper<int>(int&[],int) ВСЕ ОК
2025.06.27 20:11:44.135 BugArrayInitialize20250607 (EURUSD,M5) int ArrayInitializeWrapper<long>(long&[],long) ВСЕ ОК
2025.06.27 20:11:44.135 BugArrayInitialize20250607 (EURUSD,M5) int ArrayInitializeWrapper<uchar>(uchar&[],uchar) ВСЕ ОК
2025.06.27 20:11:44.135 BugArrayInitialize20250607 (EURUSD,M5) int ArrayInitializeWrapper<ushort>(ushort&[],ushort) ВСЕ ОК
2025.06.27 20:11:44.135 BugArrayInitialize20250607 (EURUSD,M5) int ArrayInitializeWrapper<uint>(uint&[],uint) ВСЕ ОК
2025.06.27 20:11:44.135 BugArrayInitialize20250607 (EURUSD,M5) int ArrayInitializeWrapper<ulong>(ulong&[],ulong) ВСЕ ОК
2025.06.27 20:11:44.135 BugArrayInitialize20250607 (EURUSD,M5) int ArrayInitializeWrapper<bool>(bool&[],bool) ВСЕ ОК
2025.06.27 20:11:44.135 BugArrayInitialize20250607 (EURUSD,M5) int ArrayInitializeWrapper<double>(double&[],double) ВСЕ ОК
2025.06.27 20:11:44.135 BugArrayInitialize20250607 (EURUSD,M5) int ArrayInitializeWrapper<float>(float&[],float) ВСЕ ОК
2025.06.27 20:11:44.135 BugArrayInitialize20250607 (EURUSD,M5) int ArrayInitializeWrapper<цвет>(цвет&[],цвет) ВСЕ ОК
2025.06.27 20:11:44.135 BugArrayInitialize20250607 (EURUSD,M5) int ArrayInitializeWrapper<datetime>(datetime&[],datetime) ВСЕ ОК
2025.06.27 20:11:44.135 BugArrayInitialize20250607 (EURUSD,M5) int ArrayInitializeWrapper<ENUM_OBJECT_PROPERTY_DOUBLE>(ENUM_OBJECT_PROPERTY_DOUBLE&[],ENUM_OBJECT_PROPERTY_DOUBLE) ВСЕ ОК

 
Alain Verleyen #:

Уже исправлено. Build 5133.

2025.06.27 20:11:44.135 BugArrayInitialize20250607 (EURUSD,M5) int ArrayInitializeWrapper<char>(char&[],char) ВСЕ ОК
2025.06.27 20:11:44.135 BugArrayInitialize20250607 (EURUSD,M5) int ArrayInitializeWrapper<short>(short&[],short) ВСЕ ОК
2025.06.27 20:11:44.135 BugArrayInitialize20250607 (EURUSD,M5) int ArrayInitializeWrapper<int>(int&[],int) ВСЕ ОК
2025.06.27 20:11:44.135 BugArrayInitialize20250607 (EURUSD,M5) int ArrayInitializeWrapper<long>(long&[],long) ВСЕ ОК
2025.06.27 20:11:44.135 BugArrayInitialize20250607 (EURUSD,M5) int ArrayInitializeWrapper<uchar>(uchar&[],uchar) ВСЕ ОК
2025.06.27 20:11:44.135 BugArrayInitialize20250607 (EURUSD,M5) int ArrayInitializeWrapper<ushort>(ushort&[],ushort) ВСЕ ОК
2025.06.27 20:11:44.135 BugArrayInitialize20250607 (EURUSD,M5) int ArrayInitializeWrapper<uint>(uint&[],uint) ВСЕ ОК
2025.06.27 20:11:44.135 BugArrayInitialize20250607 (EURUSD,M5) int ArrayInitializeWrapper<ulong>(ulong&[],ulong) ВСЕ ОК
2025.06.27 20:11:44.135 BugArrayInitialize20250607 (EURUSD,M5) int ArrayInitializeWrapper<bool>(bool&[],bool) ВСЕ ОК
2025.06.27 20:11:44.135 BugArrayInitialize20250607 (EURUSD,M5) int ArrayInitializeWrapper<double>(double&[],double) ВСЕ ОК
2025.06.27 20:11:44.135 BugArrayInitialize20250607 (EURUSD,M5) int ArrayInitializeWrapper<float>(float&[],float) ВСЕ ОК
2025.06.27 20:11:44.135 BugArrayInitialize20250607 (EURUSD,M5) int ArrayInitializeWrapper<цвет>(цвет&[],цвет) ВСЕ ОК
2025.06.27 20:11:44.135 BugArrayInitialize20250607 (EURUSD,M5) int ArrayInitializeWrapper<datetime>(datetime&[],datetime) ВСЕ ОК
2025.06.27 20:11:44.135 BugArrayInitialize20250607 (EURUSD,M5) int ArrayInitializeWrapper<ENUM_OBJECT_PROPERTY_DOUBLE>(ENUM_OBJECT_PROPERTY_DOUBLE&[],ENUM_OBJECT_PROPERTY_DOUBLE) ВСЕ ОК

У меня терминал MT5 Exness (текущий) - не обновляется дальше. Стоит на билде 5120 с багом и всё, LiveUpdate ничего не предлагает. Exness не дает к себе логиниться с чужих терминалов. Ловушка.

Сейчас видео пруф запишу. Так что сорри если что :)

 
Igor Zakharev #:

У меня терминал MT5 Exness (текущий) - не обновляется дальше. Стоит на билде 5120 с багом и всё, LiveUpdate ничего не предлагает. Exness не дает к себе логиниться с чужих терминалов. Ловушка.

Сейчас видео пруф запишу. Так что сорри если что :)

Вы можете войти с других терминалов. Пожалуйста, поищите в Google, как это сделать.

 

Vladislav Boyko #:

Почему "Ghost"?

Наверное потому, что оно принимает только существующих пользователей. Можно указать кого-угодно, к стати:

(сотрудника MQ я указал исключительно ради рофла)

[edit] Удалю репозиторий через пару дней [/edit]

https://forge.mql5.io/boyvlad/AnnotatedTagTest/releases/tag/v1.1



 
5135 перестал открываться Навигатор
 

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

#property tester_no_cache

input int inRange = 0;

double OnTester() { return(0.12345678); }



В математическом режиме не округляется.

Долго искал причины несоответствия.


Просьба при наведении на GUI-округленное число в таблице показывать неокругленное число. Спасибо.

Строка для поиска: Uluchshenie 124.
 
fxsaber #:

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

Похоже, получилось.


В прицепе советник, который демонстрирует ускорение с экономией памяти. Опишу шаги.


RAMDrive.

Для начала создадим RAMDrive через батник.

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

Новая версия платформы MetaTrader 5 build 5120: улучшения и исправления

fxsaber, 2025.06.25 13:32

В Common-папке запустил такой bat-файл.

rem Создали RAM-Drive для Тестера.
imdisk -a -o awe -s 3G -m Z: -p "/fs:ntfs /q /y /v:MT5Tester"
mkdir z:\RAMDrive
mklink /j RAMDrive z:\RAMDrive


Сохраняем тики.

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

Он сохранит тестерные тики на созданный RAMDrive.


Оптимизация не в мат. режиме.

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


На выходе получим результат.

Скоростные характеристики показаны на скрине: 27 секунд шла оптимизация, производительность 8 миллионов тиков в секунду.

Остальные параметры ранее описывались.


Оптимизация в режиме математических вычислений.

Переключаемся на режиме мат. вычислений и снова запускаем оптимизацию.


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


Результат вычислений тот же, но при этом скорость кратно возросла: шесть секунд на расчеты и 51 миллион тиков в секунду. И это при том, что все агенты использовали одну единую память на всех!


Входные параметры.

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

inBlockSize - какими порциями (сколько тиков) читать тики из единого хранилища.

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


Итог.

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

Новая версия платформы MetaTrader 5 build 5120: улучшения и исправления

fxsaber, 2025.06.25 13:32

Потребление Агентами памяти практически нулевое! Память используется только для единого хранения исторических данных на всех агенты. Даже при 100 одновременно работающих агентах потребление памяти будет минимальным.


Например, на машине только 12 Гб. Через данный способ можно взять историю на 8 Гб и задействовать пять агентов. При обычном использовании Тестера понадобится, соответственно, 40 гигов свободной памяти. При обходном маневре - чуть больше 8 гигов. Соответственно, скорость оптимизации на машине вырастает в пять раз: вместо одного агента можно задействовать пять (было бы 100 агентов, то 12 Гб RAM хватило бы и на такое количество).


Можно очень круто ускорить оптимизацию ТС

Предложенная реализация не требует RAMDrive (использовался для удобства, на производительность оптимизации не влияет).
Файлы:
 

В зависимости от софта можно еще скорость увеличить


http://de77.com/comparison-of-ram-drives-with-benchmarks