Библиотеки: EAToMath - страница 8

 
fxsaber #:

В логе Тестера не будет никаких записей по этому поводу. Только в логе Терминала (вкладки Journal, не Experts).

На всякий случай скинул в ЛС последнюю версию MTTester.mqh.

Обновил.

Лог кажется не в том режиме скинул. Вот в режиме записи
2025.11.04 18:24:10.228    Core 1    1970.01.01 00:00:00   EAToMath.mqh 840: version 2025.09.01, https://www.mql5.com/ru/code/61283
2025.11.04 18:24:10.228    Core 1    1970.01.01 00:00:00   EAToMath.mqh 841: : testing of Experts\test3.ex5 from 1970.01.01 00:00:00 to 1970.01.01 00:00:00,
2025.11.04 18:24:10.228    Core 1    1970.01.01 00:00:00   EAToMath.mqh 867: TechData-inputs are invalid!
2025.11.04 18:24:10.228    Core 1    1970.01.01 00:00:00   EAToMath.mqh 1182: final balance 1000000000.00, OrdersHistoryTotal() = 0
2025.11.04 18:24:10.228    Core 1    OnTester result 0
2025.11.04 18:24:10.228    Core 1    0 : mathematical test passed in 0:00:00.060
2025.11.04 18:24:10.228    Core 1    170 Mb memory used
2025.11.04 18:24:10.228    Core 1    log file "C:\Users\0\AppData\Roaming\MetaQuotes\Tester\D0E8209F77C8CF37AD8BF550E51FF075\Agent-127.0.0.1-3000\logs\20251104.log" written
2025.11.04 18:24:10.230    Core 1    connection closed

EAToMath
EAToMath
  • 2025.07.09
  • www.mql5.com
Тестирование на истории в математическом режиме MT5-тестера.
 

Теперь получилось. Поля заполнились. Спасибо!

 
Forester # :
В разметочной все сделки подряд, на них обучается МО. Потом во второй виртуалке торговля отфильтрованое МО.
В общем 2 виртуалки нужны.
Не могли бы вы пояснить, как реализуется этот процесс?
 
hini #:
Не могли бы вы пояснить, как реализуется этот процесс?
Подключаю одну виртуалку, торгую в ней по базовой стратегии - хоть на каждом баре или на каждом развороте зигзага, результаты подаю на обучение.
Обученая модель торгует (фильтруя сделки) в другой виртуалке.
 
Forester # :
Подключаю одну виртуалку, торгую в ней по базовой стратегии - хоть на каждом баре или на каждом развороте зигзага, результаты подаю на обучение.
Обученая модель торгует (фильтруя сделки) в другой виртуалке.
Все ли это было реализовано с использованием MQL5?
 
hini #:
Все ли это было реализовано с использованием MQL5?
Переключения виртуалок и торговля - да. Модель МО - внешняя программа. Обмен данными с ней через файлы. Из  MQ сохраняю данные для обучения в файлы, потом считываю модель и использую ее для фильтрации сделок.
 
fxsaber #:

Одновременная торговля в двух окружениях.

Включите HTML-отчет, чтобы увидеть торговлю в каждом из окружений (входным inVirtual выбирается).

C этим так и не получилось. Решил, что свой код доработать будет проще. Что и сделал.

Из минусов:
- Virtual надо самостоятельно подключать. Но для меня это плюс, т.к. уже свободно с ним работаю.
- Размер файлов с тиками раза в 3 больше, чем у вас. Но работает быстрее раза в полтора-два, т.к. просто хранит цены в float - разжимать не нужно. Просто делаю NormalizeDouble().
Решил не сжимать, т.к. 10Гб на диске у меня найдется. В сравнении с 300Гб которые требует тестер MQ для 30 агентов - это мелочи.

Возможно добавлю свою библиотеку в кодобазу, как альтернативу.

 
Forester #:

C этим так и не получилось.

Я так и не понял, где затык образовался. Вроде, все показал.

- Размер файлов с тиками раза в 3 больше, чем у вас. Но работает быстрее раза в полтора-два, т.к. просто хранит цены в float - разжимать не нужно. Просто делаю NormalizeDouble().

На семь значащих цифр такого варианта будет хватать - почти на все. Если не используете time_msc, то можно использовать UINT32 для времени. Тогда будет всего 12 байтов на тик - только в два раза хуже.

Решил не сжимать, т.к. 10Гб на диске у меня найдется. В сравнении с 300Гб которые требует тестер MQ для 30 агентов - это мелочи.

RAM-диск использую для этих файлов. Представьте, что нужно лучшие 20 проходов opt-файла прогнать и получить общую картину по ним. Тогда это 20 раз нужно файл тянуть с диска. Мне такое не нравится. Поэтому только через RAM делаю. Конечно, MQ-вариант - убийство железа и здравого смысла.


ЗЫ В телеграме обновляемые торрент-тики предложил сделать. Если есть свои базы котировок - welcome. Чтобы все в одном месте, компактно (сжатие) и быстро.

 
fxsaber #:

Я так и не понял, где затык образовался.

Теперь понял.


Было так.

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

Библиотеки: EAToMath

fxsaber, 2025.11.04 14:59

  static const VIRTUAL_POINTER VirtualPointer = VIRTUAL::Create(AccountBalance()); // Создали виртуальное окружение для разметки


А надо так.

  // Создали виртуальное окружение для разметки.
  static const VIRTUAL_POINTER VirtualPointer = VIRTUAL::CreateSingle(VIRTUAL::GetSymbolBase(), // Взяли данные о символе из "реального" окружения.
                                                                      AccountBalance(),
                                                                      OrderSelect(0, SELECT_BY_POS, MODE_HISTORY) ? OrderOpenTime() : 0);


CreateSingle более независимый от окружения, чем просто Create.

 

Из-за этой особенности File Mapping (происходит, когда принудительно останавливается оптимизация в мат. режиме) стал использовать только RAMDrive-режим работы библиотеки.


Библиотеки: File Mapping без DLL
Библиотеки: File Mapping без DLL
  • 2023.03.26
  • www.mql5.com
File Mapping без DLL: Автор: o_o...