Оптимизация, не тривиальная задача...

 
Помню на форуме была тема про запись параметров оптимизированных после прогона в тестере в файл функцией в deinit(). Любо эта идея посещала меня давно и была благополучна забыта.
Народ, кто понял про что я спрашиваю, подскажите ветку на форуме, поиск не рулит.

Либо тут давайте попробуем развить идею.
ТЗ на идею:
Надо записать в файл строки отмеченные галками, т.е. полностью включая переменные и их значения, любо только значения.

 
HIDDEN писал(а) >>
Помню на форуме была тема про запись параметров оптимизированных после прогона в тестере в файл функцией в deinit().


https://www.mql5.com/ru/articles/1403
 
HIDDEN >>:
Помню на форуме была тема про запись параметров оптимизированных после прогона в тестере в файл функцией в deinit(). Любо эта идея посещала меня давно и была благополучна забыта.
Народ, кто понял про что я спрашиваю, подскажите ветку на форуме, поиск не рулит.

Либо тут давайте попробуем развить идею.
ТЗ на идею:
Надо записать в файл строки отмеченные галками, т.е. полностью включая переменные и их значения, любо только значения.


Статья называеться

Самостоятельная оценка результатов тестирования эксперта




и находиться здесь https://www.mql5.com/ru/articles/1403

 
Однако отзывчивый народ :о)
 
Спасибо огромное, пойду тюненговать свой велсипед в виде эксперта.
 
Кстати я там одну функцию перебил на русский :
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void WriteReport(string report_name)
  {
   int handle=FileOpen(report_name+".txt",FILE_CSV|FILE_WRITE,' ');              
   if(handle<1) return; 
//----
   FileWrite(handle,"Начальный депозит           ",InitialDeposit);
   FileWrite(handle,"Чистая прибыль              ",SummaryProfit);
   FileWrite(handle,"Валовая прибыль             ",GrossProfit);
   FileWrite(handle,"Общий убыток                ",GrossLoss);
   if(GrossLoss>0.0)
   FileWrite(handle,"Прибыльность                ",ProfitFactor);
   FileWrite(handle,"Мат. Ожидаемый выигрыш      ",ExpectedPayoff);
   FileWrite(handle,"Абсолютная просадка         ",AbsoluteDrawdown);
   FileWrite(handle,"Максимальная просадка       ",MaxDrawdown,StringConcatenate("(",MaxDrawdownPercent,"%)"));
   FileWrite(handle,"Относительная просадка      ",StringConcatenate(RelDrawdownPercent,"%"),StringConcatenate("(",RelDrawdown,")"));
   FileWrite(handle,"Общее количество сделок     ",SummaryTrades);
   if(ShortTrades>0)
   FileWrite(handle,"Короткие позиции(в %)       ",ShortTrades,StringConcatenate("(",100.0*WinShortTrades *ox(ShortTrades),"%)"));
   if(LongTrades>0)
   FileWrite(handle,"Длинные позиции(в %)        ",LongTrades,StringConcatenate("(",100.0*WinLongTrades *ox(LongTrades),"%)"));
   if(ProfitTrades>0)
   FileWrite(handle,"Прибыльные сделки (в %)     ",ProfitTrades,StringConcatenate("(",100.0*ProfitTrades *ox(SummaryTrades),"%)"));
   if(LossTrades>0)
   FileWrite(handle,"Убыточные сделки (в %)      ",LossTrades,StringConcatenate("(",100.0*LossTrades *ox(SummaryTrades),"%)"));
   FileWrite(handle,"Крупнейшая прибыльная сделка",MaxProfit);
   FileWrite(handle,"Крупнейшая убыточная сделка ",-MinProfit);
   if(ProfitTrades>0)
   FileWrite(handle,"Средняя прибыльная сделка   ",GrossProfit *ox(ProfitTrades));
   if(LossTrades>0)
   FileWrite(handle,"Средняя убыточная сделка    ",-GrossLoss *ox(LossTrades));
   FileWrite(handle,"Средний непрерывный выигрыш ",AvgConWinners);
   FileWrite(handle,"Средний непрерывный проигрыш",AvgConLosers);
   FileWrite(handle,"Максимальное кол. непрерывных выигрышей (прибыль) ",ConProfitTrades1,StringConcatenate("(",ConProfit1,")"));
   FileWrite(handle,"Максимальное кол. непрерывных проигрышей (убыток) ",ConLossTrades1,StringConcatenate("(",-ConLoss1,")"));
   FileWrite(handle,"Максимальная непрерывная прибыль (число выигрышей)",ConProfit2,StringConcatenate("(",ConProfitTrades2,")"));
   FileWrite(handle,"Максимальный непрерывный убыток (число проигрышей)",-ConLoss2,StringConcatenate("(",ConLossTrades2,")"));
//----
   FileClose(handle);
  }
//+------------------------------------------------------------------+
double ox( double x){if(x!=0.0) return(1.0/x); else return(1.0/MathPow(10.0,300));}
 
Исходя из того что мы имеем, хотелось бы поинтересоваться как результат работы данной функции применяется.
т.е. у меня например задача следующая:
1. После каждого прогона в оптимизаторе писать расчетные результаты и параметры оптимизируемых функций в файл.
2. Парсинг файла, все значения по массивам.
3. Далее выборка оптимального варианта методом сортировок по выбранным параметрам
4. Приминение найденного варианта к эксперту.

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

Интересно почитать кто бы в какой последовательности делал сортировку и почему, какие параметры важны, а какие второстепенны. По какому принципу делал бы отсев вариантов в массивах после сортировки.
 
Приятно, что жизнь опровергает пессимизм по поводу сегодняшнего уровня форума. Была бы достойная задача, тогда народ и подтянется.
Еще одна разработка со схожими задачами, коммерческая, но с предоставлением демоварианта.
 
granit77 писал(а) >>
Приятно, что жизнь опровергает пессимизм по поводу сегодняшнего уровня форума. Была бы достойная задача, тогда народ и подтянется.
Еще одна разработка со схожими задачами, коммерческая, но с предоставлением демоварианта.


Да современный уровнем форума внушает песссимизм. Ну а, что поделаешь, любая серьезная тема превращается в балаган. Виной всему отсутствие модерирования. Вот люди и разошлись и тем не стало. Будем надеяться все же тролинг когда нибудь надоест и администрации - а иначе присутсвенное место MQ превратится в балаган. И отношение к тематике авто рейдинга будет такое-же типа - хрень для пьяных тинейджеров. Надеюсь еще не стало. Хотя ...

Что касается оптимизации - то оптимизация довольно хорошо разрабоатнная тема в матемматике частности например вот это - http://matlab.exponenta.ru/optimiz/index.php
 
SProgrammer писал(а) >>


Да современный уровнем форума внушает песссимизм. Ну а, что поделаешь, любая серьезная тема превращается в балаган. Виной всему отсутствие модерирования. Вот люди и разошлись и тем не стало. Будем надеяться все же тролинг когда нибудь надоест и администрации - а иначе присутсвенное место MQ превратится в балаган. И отношение к тематике авто рейдинга будет такое-же типа - хрень для пьяных тинейджеров. Надеюсь еще не стало. Хотя ...

Что касается оптимизации - то оптимизация довольно хорошо разрабоатнная тема в матемматике частности например вот это - https://www.mql5.com/go?link=http://matlab.exponenta.ru/optimiz/index.php


Так надо бы в начале целевую функцию получить
 
Vinin писал(а) >>

Так надо бы в начале целевую функцию получить

Я в частности и для этого предлагал эТС ( эталонную ТС), и SS1 с IDEAL-ом в придачу. Так Вы же не захотели обсуждать - а тему засрали тинейджеры. Ну дак все одно - сообща только пить хорошо. Сделаю сам.