Так какой все же результат выбирать после форвард-тестирования? - страница 4

 
fxsaber #:

В КБ-исходнике все есть. Скачайте mqh-файл, а не zip (их лучше никогда не смотреть).

Хорошо, сейчас займусь этим вопросом плотнее.

UPD: посмотрел, нашел, исправил, пересобираю так, как было задумано изначально.

 

Здравствуйте всем еще раз.

Пока идет первое настоящее тестирование с помощью советника Validate, поэтому ничего конкретного не могу сказать, единственное - заметил странность.

При вот таких настройках (скриншот 1), фактически дефолтных:


Имеем следующие алерты, во время процесса тестирования (скриншот 2):

Что показалось странным: участки, InSample (28 дней, красная рамка), считаются, это занимает определенное время. Результаты оптимизации (за период) присутствуют.

Однако участки OutSample (14 дней, зеленая рамка), тратят буквально по 1-2 секунды, после чего запускается новый участок 28 дней, который стабильно забирает 35-40 минут.

В самом тестере выставлялись следующие настройки (скриншот 3): 

Изначальный период тестирования (интервал), выставлялся ручками с 2021.01.01 по 2021.10.26. Потом уже Validate подставлял свои даты.

Форвард, как я понял, из прочтения исходной темы, явным образом указывать не нужно.

Уважаемый @fxsaber, что я делаю не так? Или все идет должным образом?

Спасибо.

 
AltAndGen #:

Уважаемый @fxsaber, что я делаю не так? Или все идет должным образом?

Validate подробным образом сообщаем о всех действиях (смотрите пути в алертах). Вы можете посмотреть на любом шаге соответствующие opt/tst/ini/set-файлы. Повторить руками, октрыть в MT5-Tester и т.д.

На скринах видны *_tst.ini и *_opt.ini запуски. Первый - настройки одиночного прохода, второй - оптимизаций. Отсюда и время выполнений.


Просто подумайте, какой сценарий руками автоматизирует Validate. Вот ровно эта последовательность действий и происходит.

 
fxsaber #:

Просто подумайте, какой сценарий руками автоматизирует Validate. Вот ровно эта последовательность действий и происходит.

Validate должен заниматься автооптимизацией на интервалах длиной inSampleDays и применять их результат (лучший проход у каждого) к следующим OutSampleDays:

  1. Записывается Init.ini - настройки Тестера при запуске Validate. X = data_from.
  2. Генерируется и применяется *_opt.ini файл настроек: на интервале [X - inSampleDays; X] проводится Оптимизация.
  3. После окончания оптимизация берется лучший проход, из него генерируется set-файл (просто, чтобы посмотреть).
  4. Из лучшего прохода генерируется и применяется *_tst.ini файл настроек:  на интервале [X; X + OutSampeDays] проводится одиночный проход в Тестере.
  5. Записывается соответствующий tst-файл одиночного прохода.
  6. X += OutSampleDays;
  7. Формируется gif-картинка автооптимизационного баланса (сумма всех одиночных прогонов из п.4).
  8. Возврат на п.2 в случае, если X < data_to из п.1.
  9. Формируется портфельный ini-файл: на интервале [data_from; data_to] идет запуск Validate (Validate из Терминала запускает себя же в Тестере), которые берет все tst-файлы из п.5, объединяет их в одну единую хронологическую цепь торговых приказов и создает их в одиночном проходе. Получив объединение всех одиночных прогонов. Этому пункту все равно, как были получены tst-файлы, поэтому Validate умеет объединять любые (хоть мультивалютные) одиночные проходы, показывая влияние друг на друга по реальным тикам, в отличие от сторонних популярных решений объединения. В общем, в конце этого пункта получается одиночный проход - агрегация всего, что было посчитано. График баланса в Тестере должен совпадать с последней gif-картинкой (записываются для каждого шага) от Validate.
  10. Исходные настройки Тестера (см п.1) возвращаются обратно.

На самом деле в п.2. формируются разом все *_opt.ini. Поэтому Validate должен уметь продолжать работу, если было до этого снят.

Плюс Validate умеет подхватывать любые ini-файлы (скормить ему папку с ними) - кастомный MultiTester.

И также объединять любые tst-файлы, как описано в п.9.


Каждый пункт в сценарии выше - это море отладки, написание/правка выложенных в КБ библиотек и т.д. Чтобы все пахало, как задумано и было удобно пользоваться. Трачу слишком много времени на объяснение "багов". Наверное, по Validate больше не буду ничего комментировать, т.к. этот пост исчерпывающий.


Сам использую Validate в режиме кастомного MultiTester, где беру сгенерированные ini-файлы из TesterDashboard. Walk-Forward (п.2-9) очень редко использую - за прошедший год один раз. Так редко, потому что понимаю, какой будет результат у ТС, что пишу.



 
fxsaber #:

Validate должен заниматься автооптимизацией на интервалах длиной inSampleDays и применять их результат (лучший проход у каждого) к следующим OutSampleDays


Огромное вам спасибо. Больше вопросов нет никаких.

Извините за назойливость, я понимаю как это сложно, и то что у вас нет желания тратить время, и вспоминать нюансы давным-давно разработанного продукта. Никаких вопросов и претензий по данному поводу - нет, и быть не может.

Теперь принцип работы понятен, буду пробовать оптимизировать с WFO.

 
fxsaber #:

ЗЫ Файлы, что прикреплены к блог-постам, совсем не обновляются: загружаются самые первые, что были при создании записи.

Исправили, спасибо.