Библиотеки: MultiTester - страница 42

 

Добрый день!

Можно ли из скрипта изменить начальную и конечную даты периода оптимизации, которые были установлены при запуске скрипта?


В этом случае можно было бы расширить варианты оптимизации.


С уважением, Александр

 
klycko #:

Можно ли из скрипта изменить начальную и конечную даты периода оптимизации, которые были установлены при запуске скрипта?

MTTESTER::SetValue(Settings, "FromDate", TimeToString(D'2020.01.01', TIME_DATE));
MTTESTER::SetValue(Settings, "ToDate", TimeToString(TimeCurrent(), TIME_DATE));
 
fxsaber #:

Спасибо!

 
Фантастическая библиотека !!!
 
fxsaber #:
Вы получили opt-файл в байтовый массив. Дальше его надо подать в Cache.

Добрый день!


Вопрос касается процедуры Run.

Не могу понять, почему команда:      Settings[0] = Cache.TesterString(Pos);

сильно портит строку настроек Settings[0] .

Ниже текст кода, а данные из лога прикреплены.

С уважением, Александр.


      Run(Settings[0]);                          // Прогон генетической оптимизации по параметру TF

      TESTERCACHE<ExpTradeSummary> Cache;

      GLOC = MTTESTER::GetLastOptCache(Bytess);  // Получили opt-файл в байтовый массив Bytess

      CL = Cache.Load(Bytess);                   // Подаём в Cache байтовый массив Bytess

      Print(" GLOC = ",GLOC," CL = ",CL);        // Диагноз записи и чтения

  

      // ProfitNow = Cache[GetMaxProfitPos(Cache)].profit;        // Максимальная прибыль       https://www.mql5.com/ru/forum/318998/page2#comment_13846951

      int NomProchMaxProfit = Cache[GetMaxProfitPos(Cache)].Pass; // Номер прохода с максимальной прибылью

      // Cache.GetInputs(IndexMaxProfitRuna,Paramas);

      // prWrite2 = Cache.Save(OptFile);         // Сохранили результат Run в opt-файл в MQL5\Files

      // prRead2 = Cache.Load(OptFile);          // Прочитали для проверки из MQL5\Files

      // Print(OptFile+" записали = ",prWrite2,"   прочитали = ",prRead2); // Диагноз записи и чтения

      Pos = GetMaxProfitPos(Cache);

      Cache.SaveSet(Pos);                        // Создали set-файл самого прибыльного прохода в MQL5\Files


      Print("Pos = ",Pos," NomProchMaxProfit = ",NomProchMaxProfit);

      Print("Перед Cache.TesterString(Pos) ",PrGenetic," NumPeriod=",NumPeriod,"\nКонтроль генетики: \n",Settings[0]);


      Settings[0] = Cache.TesterString(Pos);     // Запись новых настроек в строку текущих настроек

// В предыдущей команде строка Settings[0] сильно уродуется, хотя значение TF=20 установливается правильное

      

      Print("После Cache.TesterString(Pos) ",PrGenetic," NumPeriod=",NumPeriod,"\nКонтроль генетики: \n",Settings[0]);


Библиотеки: TesterCache - Что такое 0xCACA?
Библиотеки: TesterCache - Что такое 0xCACA?
  • 2019.08.31
  • Good Beer
  • www.mql5.com
Да и дальше взаимодействия с Оптимизатором нет никакого. в кеше Оптимизатора по каждому проходу хранятся все стат. Бонусом идет возможность запуска любого прохода из обновленной таблицы стандартными средствами в два щелчка
Файлы:
kbrl69.txt  12 kb
 
klycko #:

// В предыдущей команде строка Settings[0] сильно уродуется, хотя значение TF=20 установливается правильное

Не понял.
 
fxsaber #:
Не понял.

Добрый день!

Команда  Settings[0] = Cache.TesterString(Pos);  устанавливает в  Settings[0] сильно искаженную информацию, хотя найденное оптимальное значение TF=20 устанавливается правильно.

Но уже сама структура  Settings[0] разрушена. Даже правая граница интервала для TF заменена с H1 на M12.

В приложенном log строка  Settings[0] распечатана до и после исполнения указанной команды.

Не могу понять, почему эта команда так сильно искажает  строку  Settings[0].

 
klycko #:

Не могу понять, почему эта команда так сильно искажает  строку  Settings[0].

Пришлите в ЛС opt-файл.

 
klycko #:

Optimization=1                                                             изменен, хотя не должен меняться

Если выбрали ГА, но при этом малое количество проходов, то Тестер автоматически переходит в режим полного перебора. Поэтому opt-файл после выбора ГА иногда показывает, что был полный перебор. Чтение этого значения верное.

 
klycko #:

Далее изменены структуры данных по многим параметрам:

Baza=46                                            Правильно должно быть:      Baza=46||20||1||50||N

Диапазоны неоптимизируемых параметров не прописываются (исключение - bool-параметры) в opt-файл. Как следствие, изменение такого диапазона не влияет на генератор названия opt-файла. Здесь верная работа.

Применение таких "сокращенных" настроек не нарушает ранее выбранные диапазоны неоптимизируемых входных параметров.