Долгое время прогона тестирования скрипта

 
Здравствуйте. Запускаю несложный скрипт, но любой тест занимает очень много времени, хотя тестируется всего лишь 1 месяц на 5 минутке. Даже без оптимизации, просто посмотреть, сколько даст с такими параметрами. Это же должно быть за 1 секунду сразу результат. В чем может быть проблема?
 
Fresto:
Здравствуйте. Запускаю несложный скрипт, но любой тест занимает очень много времени, хотя тестируется всего лишь 1 месяц на 5 минутке. Даже без оптимизации, просто посмотреть, сколько даст с такими параметрами. Это же должно быть за 1 секунду сразу результат. В чем может быть проблема?
  1. Скрипт или советник?
  2. Скриншот, пожалуйста, вставьте из тестера стратегий, вкладка "Настройки"
 
Fresto:
Здравствуйте. Запускаю несложный скрипт, но любой тест занимает очень много времени, хотя тестируется всего лишь 1 месяц на 5 минутке. Даже без оптимизации, просто посмотреть, сколько даст с такими параметрами. Это же должно быть за 1 секунду сразу результат. В чем может быть проблема?

У меня тоже терминал долго тестировал и подгружал котировки . Папка с терминалом весила аж около 12 ГБ , уже оперативки перестало хватать .В какую-то папку шло накопление файлов дампа, разбираться не стал.

Сделал так:

1) папку MQL4 скопировал в другое место .

2) терминал снёс и загрузил заново.

3) папку MQL4 на место.

Всё )  Тестер работает нормально , комп летает , я доволен. 

Файлы:
 
Vladimir Karputov:
  1. Скрипт или советник?
  2. Скриншот, пожалуйста, вставьте из тестера стратегий, вкладка "Настройки"
Только вернулся. Вот
.
 
Fresto:
Здравствуйте. Запускаю несложный скрипт, но любой тест занимает очень много времени, хотя тестируется всего лишь 1 месяц на 5 минутке. Даже без оптимизации, просто посмотреть, сколько даст с такими параметрами. Это же должно быть за 1 секунду сразу результат. В чем может быть проблема?

Fresto:
Только вернулся. Вот 


.

1. Всё таки не СКРИПТ, а СОВЕТНИК.

2. "Сложный" или "не сложный" - видно будет только после показа полного кода. 

3. Журнал тестера смотрели? Ошибки есть?

 
Vladimir Karputov:

1. Всё таки не СКРИПТ, а СОВЕТНИК.

2. "Сложный" или "не сложный" - видно будет только после показа полного кода. 

3. Журнал тестера смотрели? Ошибки есть?

Ошибок нету, просто долго тестирует, как будто каждый бар вырисовывает каждый раз, просто в другой программе сразу хоть тебе и год вырисовывался с 5 минутным таймфреймом со всеми сделками и эквити.
 
Fresto:
Ошибок нету, просто долго тестирует, как будто каждый бар вырисовывает каждый раз, просто в другой программе сразу хоть тебе и год вырисовывался с 5 минутным таймфреймом со всеми сделками и эквити.
Код. Нужен код. Без кода - это только к телепатам :).
 
Vladimir Karputov:
Код. Нужен код. Без кода - это только к телепатам :).
Вот)
Файлы:
TwoSides.mq5  20 kb
ATR.mq5  4 kb
 
Fresto:
Вот)

После получения хендл нужно всегда его проверять. На примере iADX:

//--- create handle of the indicator iADX
   handle_iADX=iADX(m_symbol.Name(),Period(),14);
//--- if the handle is not created
   if(handle_iADX==INVALID_HANDLE)
     {
      //--- tell about the failure and output the error code
      PrintFormat("Failed to create handle of the iADX indicator for the symbol %s/%s, error code %d",
                  m_symbol.Name(),
                  EnumToString(Period()),
                  GetLastError());
      //--- the indicator is stopped early
      return(INIT_FAILED);
     }

ATR - это стандартный индикатор, значит его хэндл можно получить так:

//--- create handle of the indicator iATR
   handle_iATR=iATR(m_symbol.Name(),Period(),5);
//--- if the handle is not created
   if(handle_iATR==INVALID_HANDLE)
     {
      //--- tell about the failure and output the error code
      PrintFormat("Failed to create handle of the iATR indicator for the symbol %s/%s, error code %d",
                  m_symbol.Name(),
                  EnumToString(Period()),
                  GetLastError());
      //--- the indicator is stopped early
      return(INIT_FAILED);
     }

 В итоге тест прошёл за 0:00:08.797 (за восемь секунд):

2017.03.01 11:25:29.375 Core 1  RTS Splice,H1: 4873548 ticks, 308 bars generated. Environment synchronized in 0:00:00.047. Test passed in 0:00:08.750 (including ticks preprocessing 0:00:00.359).
2017.03.01 11:25:29.375 Core 1  RTS Splice,H1: total time from login to stop testing 0:00:08.797 (including 0:00:00.047 for history data synchronization)
 
Vladimir Karputov:

После получения хендл нужно всегда его проверять. На примере iADX:

//--- create handle of the indicator iADX
   handle_iADX=iADX(m_symbol.Name(),Period(),14);
//--- if the handle is not created
   if(handle_iADX==INVALID_HANDLE)
     {
      //--- tell about the failure and output the error code
      PrintFormat("Failed to create handle of the iADX indicator for the symbol %s/%s, error code %d",
                  m_symbol.Name(),
                  EnumToString(Period()),
                  GetLastError());
      //--- the indicator is stopped early
      return(INIT_FAILED);
     }

ATR - это стандартный индикатор, значит его хэндл можно получить так:

//--- create handle of the indicator iATR
   handle_iATR=iATR(m_symbol.Name(),Period(),5);
//--- if the handle is not created
   if(handle_iATR==INVALID_HANDLE)
     {
      //--- tell about the failure and output the error code
      PrintFormat("Failed to create handle of the iATR indicator for the symbol %s/%s, error code %d",
                  m_symbol.Name(),
                  EnumToString(Period()),
                  GetLastError());
      //--- the indicator is stopped early
      return(INIT_FAILED);
     }

 В итоге тест прошёл за 0:00:08.797 (за восемь секунд):

2017.03.01 11:25:29.375 Core 1  RTS Splice,H1: 4873548 ticks, 308 bars generated. Environment synchronized in 0:00:00.047. Test passed in 0:00:08.750 (including ticks preprocessing 0:00:00.359).
2017.03.01 11:25:29.375 Core 1  RTS Splice,H1: total time from login to stop testing 0:00:08.797 (including 0:00:00.047 for history data synchronization)
Спасибо за это, я вас понял. А на счет тестирования, у вас все ядра участвуют на компьютере?? У меня только 1 работает всегда из 8
 
Fresto:
Спасибо за это, я вас понял. А на счет тестирования, у вас все ядра участвуют на компьютере?? У меня только 1 работает всегда из 8
При одиночном проходе всегда работает только одно ядро. А вот при оптимизации уже можно настраивать сколько агентов (один агент тестирования == одно ядро процессора) использовать.
Причина обращения: