Как найти проход в таблице по его номеру из FrameNext() ?

 

Всех приветствую. 

Такой вопрос - при сборе статистике в функции FrameNext() первым параметром идёт: 

ulong&   pass,      // номер прохода в оптимизации, на котором добавлен фрейм

И, как я понимаю, это  линейный номер прохода, общий для всех проходов. 

Однако, в таблице проходов генетической оптимизации МТ номер прохода состоит из двух значений через запятую. Как я понимаю - номер поколения и номер прохода в поколении. 

Вопрос: как по линейному номеру - найти этот проход в таблице? 

(Если уже где-то обсуждалось - ткните носом, не могу ничего близкого найти)

 

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

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

Slava, 2019.04.19 15:11

//--- кешируемая запись содержит номер прохода (при генетике - номер по порядку), структуру результатов тестирования (если математика, то 1 double), буфер оптимизируемых параметров и генетический проход
   m_header.record_size=sizeof(INT64)+m_header.opt_params_size;
 
fxsaber #:

Ага! Это прямо из .OPT - файла, как я понял? 

Благодарю. 

 
#property script_show_inputs

input string inFileName = "Tester.opt"; // opt-FileName
input int inPass = 0;

#include <fxsaber\TesterCache\TesterCache.mqh> // https://www.mql5.com/ru/code/26223

void OnStart()
{
  TESTERCACHE<ExpTradeSummary> Cache; 

  if (Cache.Load(inFileName)) // Прочитали оптимизационный кеш.
    Print(Cache.TesterString(inPass));
}
 

Да-да, тут уже даже не надо выбирать проход - прямо можно создать готовый set-файл интересующего прохода. Что, собственно, и требуется. 

Ещё раз благодарю.