Новая версия платформы MetaTrader 5 build 5370: улучшения в веб-версии - страница 22

 
fxsaber #:

Сделают или костылить, но придется самому делать расчеты этих показателей.

Виртуал часть из них считает, но не все.

Не проблема - скорее возможность для улучшения/экспериментов.

Я например матожидание считаю в пунктах с учетом комиссий и свопов

   AvgPips=0;
   for (int i = 0; i < HistoryDeals; i++){
      if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY) ){
         profit=OrderProfit() + OrderCommission() + OrderSwap();
         AvgPips += profit / OrderLots(); // заработанных пипсов с учетом комиссий и свопов
   }}
   if(HistoryDeals>0){AvgPips /= HistoryDeals;}// среднее заработанных пипсов с учетом комиссий и свопов

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

Возможно нужны оба варианта. Я бы второй вместо непонятного Шарпа подставил в отчет.
 
Forester #:

Я бы второй вместо непонятного Шарпа подставил в отчет.

Семь лет назад.

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

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

Slava, 2019.04.19 15:11

//+------------------------------------------------------------------+
//| Структура для статистики торговли                                |
//+------------------------------------------------------------------+
struct ExpTradeSummary
  {
   double            initial_deposit;     // начальный депозит
   double            withdrawal;          // снято средств
   double            profit;              // общая прибыль (+)
   double            grossprofit;         // общий плюс
   double            grossloss;           // общий минус
   double            maxprofit;           // максимально прибыльная сделка
   double            minprofit;           // максимально убыточная сделка
   double            conprofitmax;        // прибыль максимальной последовательности прибыльных сделок
   double            maxconprofit;        // максимальная прибыль среди последовательностей
   double            conlossmax;          // убыток максимальной последовательности убыточных сделок
   double            maxconloss;          // максимальный убыток среди последовательностей
   double            balance_min;         // минимальное значение баланса (для расчёта абсолютной просадки)
   double            maxdrawdown;         // максимальная просадка по балансу
   double            drawdownpercent;     // отношение максимальной просадки по балансу к её пику
   double            reldrawdown;         // максимальная относительная просадка по балансу в деньгах
   double            reldrawdownpercent;  // максимальная относительная просадка по балансу в процентах
   double            equity_min;          // минимальное значение equity (для расчёта абсолютной просадки по equity)
   double            maxdrawdown_e;       // максимальная просадка по equity
   double            drawdownpercent_e;   // отношение максимальной просадки по equity к её пику (+)
   double            reldrawdown_e;       // максимальная относительная просадка по equity в деньгах
   double            reldrawdownpercnt_e; // максимальная относительная просадка по equity в процентах
   double            expected_payoff;     // матожидание выигрыша (+)
   double            profit_factor;       // показатель прибыльности (+)
   double            recovery_factor;     // фактор восстановления (+)
   double            sharpe_ratio;        // коэффициент Шарпа (+)
   double            margin_level;        // минимальный уровень маржи
   double            custom_fitness;      // пользовательский фитнесс - результат OnTester (+)
   int               deals;               // общее количество сделок
   int               trades;              // количество сделок out/inout
   int               profittrades;        // количество прибыльных
   int               losstrades;          // количество убыточных
   int               shorttrades;         // количество шортов
   int               longtrades;          // количество лонгов
   int               winshorttrades;      // количество прибыльных шортов
   int               winlongtrades;       // количество прибыльных лонгов
   int               conprofitmax_trades; // максимальная последовательность прибыльных сделок
   int               maxconprofit_trades; // последовательность максимальной прибыли
   int               conlossmax_trades;   // максимальная последовательность убыточных сделок
   int               maxconloss_trades;   // последовательность максимального убытка
   int               avgconwinners;       // среднее количество последовательных прибыльных сделок
   int               avgconloosers;       // среднее количество последовательных убыточных сделок
  };

Сейчас таким полем является только одно - выделено.

 
fxsaber #:

Как минимум, opt-формат брать не от мат. режима. Т.к. в мат. режиме там сохраняется только одно число.

Такое возможно делать только в режиме полного перебора. Для генетики не подходит.

Запустил оптимизацию на 140 часов...
Пока жду, решил сделать свой вариант отчетов из .opt файлов в HTML.

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

Туда же приделаю подмену данных в мат. режиме.

Вы не против использования вашей библиотеки https://www.mql5.com/ru/code/26223 для этого?

Планирую вывести все параметры и по всем сортировать, а не 8 из предложенных в отчете тестера MT.

Плюс превьюшки линий баланса (возможно и эквити) к каждому проходу вроде такой:

Может что-еще интересное придумаю...

 

Forester #:

приделаю подмену данных в мат. режиме.

Вы не против использования вашей библиотеки https://www.mql5.com/ru/code/26223 для этого?

Никаких ограничений.

Плюс превьюшки линий баланса (возможно и эквити) к каждому проходу вроде такой:

Этих данных нет в opt.

 
fxsaber #:

Этих данных нет в opt.

В онтестер буду записывать. А эквити в онтик.
 
Forester #:
В онтестер буду записывать. А эквити в онтик.
Тогда opt-файла будет недостаточно.
 
Stanislav Korotky #:
Тогда opt-файла будет недостаточно.
mqd-формат читать можно, если фреймами будет передача.
 
Forester #:

Запустил оптимизацию на 140 часов...
Пока жду, решил сделать свой вариант отчетов из .opt файлов в HTML.

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

Туда же приделаю подмену данных в мат. режиме.

Вы не против использования вашей библиотеки https://www.mql5.com/ru/code/26223 для этого?

Планирую вывести все параметры и по всем сортировать, а не 8 из предложенных в отчете тестера MT.

Плюс превьюшки линий баланса (возможно и эквити) к каждому проходу вроде такой:

Может что-еще интересное придумаю...

Где можно найти соответствующую информацию?
 
hini #:
Где можно найти соответствующую информацию?
В процессе разработки. Может через неделю будет готово. А может позже.
 
Копирование строки выделенного прохода в буфер. Аналог этого.
  string TesterString( const int Num ) const
  {
    return(this.Header.TesterString() + "\n[TesterInputs]\n" + this.SettingsString(Num));
  }