Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Lilita Bogachkova
1518
Lilita Bogachkova  

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

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

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

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

Алексей Тарабанов
7328
Алексей Тарабанов  
Yuriy Asaulenko:

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

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


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

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

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

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

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

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

1398902400

1404172800

1406764800

1401580800

1406851200

1409356800

 и тд

 

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

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

Lilita Bogachkova
1518
Lilita Bogachkova  
Youri Tarshecki:

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

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

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

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

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

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

Lilita Bogachkova
1518
Lilita Bogachkova  
Youri Tarshecki:

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

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

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

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

 

Lilita Bogachkova
1518
Lilita Bogachkova  
Youri Tarshecki:

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

 

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

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

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

1234567891011
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий