Как программно проверить - идет 'Оптимизация' или 'Форвард-оптимизация'?

 

Такой вариант в обоих случаях возвращает 'true'.

ENUM_MQL_INFO_INTEGER program_OPTIMIZATION;
int OnInit()
  {
   program_OPTIMIZATION=(ENUM_MQL_INFO_INTEGER)MQLInfoInteger(MQL_OPTIMIZATION);
//---
  }
 

Для оптимальной оптимизации оптимальней всего написать свой тестер и больше не мучаться этими мучительными вопросами.

Если вы в состоянии написать работающего советника, почему вы не в состоянии написать ПО тестирования?

 
Yuriy Asaulenko:

Для оптимальной оптимизации оптимальней всего написать свой тестер и больше не мучаться этими мучительными вопросами.

Если вы в состоянии написать работающего советника, почему вы не в состоянии написать ПО тестирования?


Вы о чем? 
 
Алексей Тарабанов:

Вы о чем? 
О системах. Искренне сочувствую, но помочь Вам не могу.
 
Пока приходится вручную указывать дату до начала 'Форвард-оптимизации'.
   if(program_OPTIMIZATION)
     {
      if(YearMQL4()<=2015 && MonthMQL4()<=5) // Оптимизация ('Оптимизация' начинается в 2015 году)
        {
         // Обрабатываем событие 
        }
      else                                   // Форвард-оптимизация
        {
         // Обрабатываем событие 
        }
     }
 

Штатный тестер так устроен, что если хочешь сделать классический волкинг форвард с картинкой отчетов на каждом этапе, то по окончании оптимизации бэка дату окончания оптимизации надо сделать датой "форварда", а для окончания  "интервала" назначить новую дату, более свежую.  Я отдельным скртиптом создаю расписание, какое я хочу, сохраняю его в отдельный  файл и выдергиваю оттуда нужные даты по порядку . И через автооптимизатор подставляю эти три даты в ини файл.

1396310400  1. начало интервала оптимизации бэка      2.начало интервала при прогонке форварда

1401580800 1. конец интервала оптимизации бэка         2. дата начала форварда

1404086400                                                                  2.конец интервала при прогонке форварда

1398902400

1404172800

1406764800

1401580800

1406851200

1409356800

 и тд

 

Т.е. разделите волкинг-форвард на две отдельные операции, формально не связанные и все дела.

Оптимизация, сохранение сета, старт без оптимизации с новыми датами, сохранение результатов форварда и все по-новой.

 
Youri Tarshecki:

Штатный тестер так устроен, что если хочешь сделать классический волкинг форвард с картинкой отчетов на каждом этапе, то по окончании оптимизации бэка дату окончания оптимизации надо сделать датой "форварда", а для окончания  "интервала" назначить новую дату, более свежую.  

Т.е. разделите волкинг-форвард на две отдельные операции, формально не связанные и все дела.

Оптимизация, сохранение сета, старт без оптимизации с новыми датами, сохранение результатов форварда и все по-новой.

Мне для ограничений в OnTester() надо знать окончание оптимизации и начало форвард оптимизации где эти ограничения отменить.
 
Lilita Bogachkova:
Мне для ограничений в OnTester() надо знать окончание оптимизации и начало форвард оптимизации где эти ограничения отменить.

Как это сделать в OnTester я вам не советчик, поскольку  изначально пошел другим путем, как только узнал, что в нем невозможна оптимизация переменных по очереди, а только гуртом (хотя, скорее всего, возможна через создание списка и последовательную оптимизацию по-отдельности, но теперь мне уже и не актуально).

Единственное место, мне известное и которое я меняю-   C:\Program Files\........\tester\config    файл .INI

 
Youri Tarshecki:

Как это сделать в OnTester я вам не советчик, поскольку  изначально пошел другим путем, как только узнал, что в нем невозможна оптимизация переменных по очереди, а только гуртом (хотя, скорее всего, возможна через создание списка и последовательную оптимизацию по-отдельности, но теперь мне уже и не актуально).

Единственное место, мне известное и которое я меняю-   C:\Program Files\........\tester\config    файл .INI

Я приспособилась к штатному МТ тестеру. Но в нем пока OnTester() невозможно получить 'LRCorrelation' от форварда. Вот и пытаюсь придумать как это сделать  
 
Bogachkova:
Я приспособилась к штатному МТ тестеру. Но в нем пока OnTester() невозможно получить 'LRCorrelation' от форварда. Вот и пытаюсь придумать как это сделать  

А что такое 'LRCorrelation'  и зачем он вам нужен? И уточните -что такое форвард в вашем понимании.

 

 
Youri Tarshecki:

А что такое 'LRCorrelation'  и зачем он вам нужен? И уточните -что такое форвард в вашем понимании.

 

Форвард и есть то что вы привели как пример.

LR Correlation — коэффициент корреляции линейной регрессии. График баланса является ломаной линией, которую для наглядности можно аппроксимировать прямой линией. Для нахождения координат этой прямой применяется метод наименьших квадратов. Полученная прямая называется линейной регрессией и позволяет оценить отклонения точек графика баланса от линейной регрессии. Корреляция между графиком баланса и линейной регрессией позволяет оценить степень изменчивости капитала. Чем меньше резких подъемов и падений на кривой баланса, тем ближе к единице значение этого показателя. Чем оно ближе к нулю, тем более случайный характер имеет торговля. 

Если при форвард тестировании в OnTester() выводить значение 'LRCorrelation форварда' тогда сразу видно какой график баланса у форварда и не надо перебирать результаты с кривой линией баланса.

Причина обращения: