Ошибки, баги, вопросы - страница 3746

 
Sergei Samokhin #:
Выше ответил.
Логи скинул скриншот.

Есть понимание почему так тестер стратегий работает?

Из поддержки есть кто? 

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

Ошибки, баги, вопросы

Alain Verleyen, 2026.06.02 15:31

Какую версию сборки вы используете?

Пожалуйста, опубликуйте логи.

Не скриншот, не выдержка. Пожалуйста, предоставьте полный лог-файл.
 
fxsaber #:
Наверное, вы не пробовали эту рекомендацию.

Я тоже не пробовал. Да и вряд ли попробую. Чисто теоретически. Надеюсь вы поймёте…

Если при каждом MathSrand() подставлять одно и то же значение, то и результат  MathRand() будет одинаковый. Может сто́ит попробовать в  MathSrand() подставлять предыдущее значение MathRand() на втором и последующих вызовах?

 
Alain Verleyen #:
Не скриншот, не выдержка. Пожалуйста, предоставьте полный лог-файл.
Откуда его брать полный лог файл?
 
Alexey Viktorov #:

в  MathSrand() подставлять предыдущее значение MathRand() на втором и последующих вызовах?

Кроме Common-варианта не вижу способов реализации подобного.

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

Ошибки, баги, вопросы

fxsaber, 2026.05.14 12:42

Да, можно через Common-файл сделать. Но этот вариант не хотелось бы использовать.

 

fxsaber # : Apart from the Common option, I don't see any way to implement something like this.

#property tester_no_cache

input  int inRange = 0 ;

double  OnTester ()
{
  //MathSrand (( uint ) GetMicrosecondCount ());
  
  // Works in tester -> optimization (with only one local agent enabled)
  MathSrand (( uint ) MQLInfoInteger (MQL_GLOBAL_COUNTER) * 1000);
  
  // For random numbers with better variability
  //MathSrand (( uint ) MQLInfoInteger (MQL_GLOBAL_COUNTER) * inRange);
    
  return ( MathRand ());
}


See: MQL_GLOBAL_COUNTER

 
amrali #:

See: MQL_GLOBAL_COUNTER

Спасибо большое! Удивительно, что в Документации до сих пор не появилась соответствующая запись.

Интересно, как ведет себя этот счетчик, когда Агент получает новый пакет с заданиями для оптимизации.

 

Improved!

#property tester_no_cache

input  int inRange = 0 ;

double  OnTester ()
{
  // Output random number streams un-correlated to the optimization pass number
  MathSrand (fmix32 ( MQLInfoInteger (MQL_GLOBAL_COUNTER) ));

  return ( MathRand ());
}

// Hashing 32-bit integer seeds
uint fmix32(uint x) 
{
  // strong 32-bit mixer (bijective over 32-bit)
  x ^= x >> 16; x *= 0x7feb352d;
  x ^= x >> 15; x *= 0x846ca68b;
  x ^= x >> 16;
  return x;
}



Strong RNG: https://www.mql5.com/en/code/42098 

#property tester_no_cache

input  int inRange = 0 ;

#include "Xoshiro256.mqh"

double  OnTester ()
{
  // xoshiro256 random number generator object
  Xoshiro256 rng;
    
  return ( rng.RandomInteger() );
}
xoshiro256 Random Number Generator
xoshiro256 Random Number Generator
  • 2023.01.05
  • www.mql5.com
The 64-bit xoshiro256** Random Number Generator.
 
amrali #:

Improved!

Strong RNG: https://www.mql5.com/en/code/42098 

Спасибо!

 
fxsaber #:

I wonder how this counter behaves when the Agent receives a new package with tasks for optimization.

This counter continues to the next number with each call until the terminal itself is closed. The counter resets to the value 1 upon terminal restart.
 
Alain Verleyen #:
Не скриншот, не выдержка. Пожалуйста, предоставьте полный лог-файл.
Вот лог тестера. В аттаче скриншот 

По нему видно что тестирование началось в 21:11:24 до 21:11:36 он подгружал историю котировок.
Далее пауза до 21:20 почти 9 минут. И далее тест за секунду провелся! Причем  миллисекунды до конца теста одинаковые.
Такое ощущение что тест он провел до или во время "паузы" длиной 9 минут, а потом просто отобразил резалт вза одну миллисекунду. 


Вот начало лога. 

2026.06.04 21:11:24.957 Tester "PhoenixHiLowBars.ex5" AVX
2026.06.04 21:11:36.408 Core 1 connecting to 127.0.0.1:3000
2026.06.04 21:11:36.425 Core 1 connected
2026.06.04 21:11:36.432 Core 1 authorized (agent build 5833)
2026.06.04 21:11:36.439 Tester XAUUSD,H1 (RoboForex-Pro): testing of Experts\PhoenixHiLowBars.ex5 from 2024.07.01 00:00 to 2025.01.30 00:00
2026.06.04 21:11:36.456 Core 1 common synchronization completed
2026.06.04 21:20:43.147 Tester quality of analyzed history is 100%
2026.06.04 21:20:46.204 Core 1 test Experts\PhoenixHiLowBars.ex5 on XAUUSD,H1 thread finished
2026.06.04 21:20:46.204 Core 1 prepare for shutdown
2026.06.04 21:20:46.204 Core 1 shutdown finished
2026.06.04 21:20:46.204 Core 1 login (build 5833)
2026.06.04 21:20:46.204 Core 1 account info found with currency USD
2026.06.04 21:20:46.204 Core 1 8900 bytes of input parameters loaded
2026.06.04 21:20:46.204 Core 1 3649 Mb available, 45 blocks set for ticks generating
2026.06.04 21:20:46.204 Core 1 initial deposit 100000.00 USD, leverage 1:100
2026.06.04 21:20:46.204 Core 1 successfully initialized
2026.06.04 21:20:46.204 Core 1 858 bytes of total initialization data received
2026.06.04 21:20:46.204 Core 1 AMD PRO A8-8650B R7, 10 Compute Cores 4C+6G, 7865 MB
2026.06.04 21:20:46.204 Core 1 XAUUSD: symbol to be synchronized
2026.06.04 21:20:46.204 Core 1 XAUUSD: symbol synchronized already, 18 bytes received
2026.06.04 21:20:46.204 Core 1 XAUUSD: load 504 bytes of history data to synchronize in 0:09:06.594
2026.06.04 21:20:46.204 Core 1 XAUUSD: history synchronized from 2023.01.03 to 2025.09.30
2026.06.04 21:20:46.204 Core 1 XAUUSD,H1: history cache allocated for 12476 bars and contains 8790 bars from 2023.01.03 01:00 to 2024.06.28 23:00
2026.06.04 21:20:46.204 Core 1 XAUUSD,H1: history begins from 2023.01.03 01:00
2026.06.04 21:20:46.204 Core 1 XAUUSD,H1 (RoboForex-Pro): 1 minutes OHLC ticks generating
2026.06.04 21:20:46.204 Core 1 XAUUSD,H1: testing of Experts\PhoenixHiLowBars.ex5 from 2024.07.01 00:00 to 2025.01.30 00:00 started with inputs:



Здесь видно промежуток времени 

2026.06.04 21:11:36.456 Core 1 common synchronization completed
2026.06.04 21:20:43.147 Tester quality of analyzed history is 100%

9 мин тестер мигал зелёным значком в статусбаре. 
И за секунду прогнал весь тест 

Лог заканчивается этим текстом

2026.06.04 21:20:46.204 Core 1 2025.01.29 23:54:59 position closed due end of test at 2759.09 [#397 buy 0.01 XAUUSD 2665.31 sl: 2645.31 tp: 2810.31]
2026.06.04 21:20:46.204 Core 1 2025.01.29 23:54:59 deal #341 sell 0.01 XAUUSD at 2759.09 done (based on order #490)
2026.06.04 21:20:46.204 Core 1 2025.01.29 23:54:59 deal performed [#341 sell 0.01 XAUUSD at 2759.09]
2026.06.04 21:20:46.204 Core 1 2025.01.29 23:54:59 order performed sell 0.01 at 2759.09 [#490 sell 0.01 XAUUSD at 2759.09]
2026.06.04 21:20:46.204 Core 1 2025.01.29 23:54:59 order canceled due end of test [#460 sell stop 0.01 XAUUSD at 2689.22]
2026.06.04 21:20:46.204 Core 1 2025.01.29 23:54:59 order canceled due end of test [#459 buy stop 0.01 XAUUSD at 2785.98]
2026.06.04 21:20:46.204 Core 1 final balance 101412.28 USD
2026.06.04 21:20:46.204 Core 1 XAUUSD,H1: 817848 ticks, 3424 bars generated. Environment synchronized in 0:09:06.620. Test passed in 0:00:03.144 (including ticks preprocessing 0:00:00.094).
2026.06.04 21:20:46.204 Core 1 XAUUSD,H1: total time from login to stop testing 0:09:09.764 (including 0:09:06.620 for history data synchronization)
2026.06.04 21:20:46.204 Core 1 56 Mb memory used including 0.94 Mb of history data, 64 Mb of tick data
2026.06.04 21:20:46.204 Core 1 log file "C:\Users\user\AppData\Roaming\MetaQuotes\Tester\D0E8209F77C8CF37AD8BF550E51FF075\Agent-127.0.0.1-3000\logs\20260604.log" written
2026.06.04 21:20:46.427 Core 1 connection closed
 
Файлы: