Как оптимизировать пользовательский параметр. Custom max, onTester - страница 2

 

ну например нам надо отсеять результаты со малым количеством сделок


sinput int                 inMinTrades = 500;
sinput int                 inMaxTrades = 90000;


double OnTester()
  {
   if(MQLInfoInteger(MQL_OPTIMIZATION))
     {
      int trades = (int) TesterStatistics(STAT_TRADES);
      if(trades < inMinTrades || trades >  inMaxTrades)
         return 0;
      else
         return TesterStatistics(STAT_PROFIT) / TesterStatistics(STAT_EQUITY_DDREL_PERCENT);
     }
   }
 
Dmitiry Ananiev:

ну например нам надо отсеять результаты со малым количеством сделок


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

 
vponed:

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

Да ёпрст! Оптимизируются какие-то input параметры, т.е. при каких input параметрах функция

double OnTester(void)
{
   return (Custom);
}  

вернет максимальную величину вычисляемой переменной Custom в случае максимизации, или максимальную величину обратной 1.0/Custom в случае минимизации.

значение переменой Custom может вычисляться по ходу единичного теста, так и в финале в функции OnTester().

В режиме математических вычислений Вы сам цикл(набор единичных тестов) будете организовывать сами, фактически собственный тестировщик. И вычисляйте по собственному алгоритму всё что угодно, хоть профит, хоть "устойчивость".

Ваш алгоритм вычисления переменной Custom позволит Вам её же и фильтровать по любым условиям в процессе оптимизации. Банальный пример - получили итоговый максимальный Custom, но сделки только Buy, что нас не устраивает(исказит оптимизацию), обнуляем(присваиваем вообще жутко отрицательное значение) Custom. 

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