Язык программирования MQL5: Продвинутое использование торговой платформы MetaTrader 5. Издание 2-е, исправленное и дополненное - Тимур Машнин
Общая эффективность советника определяется как разница между реализованной в ходе трейда прибылью и потенциально возможной прибылью за время этого же трейда.
Общая эффективность =
(Реализованная разница цен) / (Потенциальная прибыль)
Для длинных позиций:
Общая эффективность = (Цена закрытия — Цена открытия) /
(Максимальная цена — Минимальная цена)
Для коротких позиций:
Общая эффективность = (Цена открытия — Цена закрытия) /
(Максимальная цена — Минимальная цена)
Эффективность входа в рынок определяется как максимальная разница в ценах относительно цены входа как часть общего потенциала доходности в ходе трейда.
Эффективность входа в рынок показывает, насколько хорошо торговая система открывает трейды — в случае длинных позиций это то, насколько сигнал входа близок к наименьшей точке в ходе трейда, в случае коротких позиций — насколько сигнал входа близок к максимальной точке в ходе трейда.
Эффективность входа = (максимальная разница в ценах относительно цены входа) / (Потенциальная прибыль)
Максимальная разница в ценах относительно цены входа — это разница между максимальной ценой и ценой входа (для коротких позиций — минимальной ценой).
Для длинных позиций:
Эффективность входа = (Максимальная цена — Цена открытия трейда) / (Максимальная цена — Минимальная цена)
Для коротких позиций:
Эффективность входа = (Цена открытия трейда — Минимальная цена) / (Максимальная цена — Минимальная цена)
Эффективность выхода из рынка определяется как максимальная разница в ценах относительно цены выхода как часть общего потенциала доходности в ходе трейда.
Эффективность выхода из рынка показывает, насколько хорошо система закрывает трейды — в случае длинных позиций это то, насколько сигнал выхода близок к максимальной точке в ходе трейда, в случае коротких позиций — насколько сигнал выхода близок к минимальной точке в ходе трейда.
Эффективность выхода = (максимальная разница в ценах относительно цены выхода) / (Потенциальная прибыль)
Максимальная разница в ценах относительно цены выхода — это разница между ценой выхода и минимальной ценой (для коротких позиций — максимальной ценой).
Для длинных позиций:
Эффективность выхода = (Цена выхода — Минимальная цена) / (Максимальная цена — Минимальная цена)
Для коротких позиций:
Эффективность выхода = (Максимальная цена — Цена выхода) / (Максимальная цена — Минимальная цена)
Общая эффективность является суммой эффективности входа и эффективности выхода минус 1.
Эффективность входа и эффективность выхода могут быть позитивными величинами, однако общая эффективность может быть отрицательной величиной.
Если сумма эффективности входа и эффективности выхода меньше 100 %, то сделка убыточна.
Для анализа работы эксперта вычисляются средняя общая эффективность, средняя эффективность входов и средняя эффективность выходов.
Для вычисления средних величин лучше пользоваться статистическим анализом, чтобы отбрасывать выскакивающие сделки.
Торговая система является статистически прибыльной, если:
(Средняя выигрышная сделка) * (% выигрышей) — накладные расходы>
(Средняя проигрышная сделка) * (% проигрышей)
Накладные расходы это проскальзывания, комиссионные и др.
Такие показатели как Средняя выигрышная сделка (Средний прибыльный трейд), % выигрышей (Прибыльные трейды (% от всех)), Средняя проигрышная сделка (Средний убыточный трейд), % проигрышей (Убыточные трейды (% от всех)) можно посмотреть во вкладке Бэктест тестера клиентского терминала после тестирования эксперта.
Показатель статистической прибыльности эксперта без учета накладных расходов или матожидание выигрыша также можно посмотреть во вкладке Бэктест тестера клиентского терминала после тестирования эксперта.
Матожидание выигрыша рассчитывается по следующей формуле.
Expected Payoff = (ProfitTrades / TotalTrades) * (GrossProfit / ProfitTrades) —
(LossTrades / TotalTrades) * (GrossLoss / LossTrades)
где:
TotalTrades — общее количество сделок;
ProfitTrades — количество прибыльных сделок;
LossTrades — количество убыточных сделок;
GrossProfit — общая прибыль;
GrossLoss — общий убыток.
Здесь ProfitTrades / TotalTrades это % выигрышей,
GrossProfit / ProfitTrades — Средняя выигрышная сделка,
LossTrades / TotalTrades — % проигрышей,
GrossLoss / LossTrades — Средняя проигрышная сделка.
В рассмотренном примере эксперта на основе торговой системы Сидуса, при значении numberBarOpenPosition=7 и numberBarStopPosition=2, матожидание выигрыша составляет 451–428=23.
Это меньше 10 пунктов, поэтому можно сказать, что прибыльность эксперта является неустойчивой.
В рассмотренном примере эксперта на основе торговой системы Сидуса заменим сигналы закрытия позиции на использование Trailing Stop, т. е. при достижении цены уровня безубыточности будет передвигать StopLoss.
Для этого изменим класс Trade.
Здесь мы объявляем дополнительную функцию Trailing.
И в этой функции при открытой позиции на покупку, если цена ушла достаточно вверх, мы передвигаем вверх и стоплосс.
Тоже самое делаем и для открытой позиции на продажу.
В функции OnTick советника вызовем функцию Trailing класса Trade.
И протестируем советник.
После оптимизации стоплосса и тейкпрофита матожидание выигрыша теперь 423.
Увеличилась и чистая прибыль при трейлинге и улучшилась статистическая прибыльность эксперта.
Другой показатель вкладки Бэктест тестера стратегий, это Коэффициент Шарпа, характеризующий эффективность и стабильность эксперта.
Чем выше значение показателя, тем больше доходность на единицу риска.
Значение коэффициента Шарпа для устойчивых экспертов более 0.25.
В нашем случае коэффициент Шарпа равен 1.
Фактор роста эксперта или GHPR (среднее геометрическое сделки) будет равен (Конечный депозит/Начальный депозит) в степени 1/ (Всего трейдов).
В данном случае GHPR (фактор роста) равен 1,0316 — больше единицы, что означает возможность торговли с использованием реинвестирования.
Другие показатели эксперта, которые можно увидеть во вкладке Бэктест тестера стратегий, это:
Прибыльность (Profit Factor) — Общая прибыль/общий убыток. Рекомендуемое значение не меньше 2.
Фактор восстановления — Чистая прибыль / Максимальная просадка по средствам.
Чем больше показатель, тем менее рискованным является советник.
Многие эксперты считают, что у эффективной торговой системы фактор восстановления должен быть не менее 3.
AHPR — среднеарифметическое сделки. Положительное значение говорит о том, что торговая система прибыльна.
Уровень маржи — минимальный уровень маржи в процентах, который был зафиксирован за период тестирования.
LR Correlation — позволяет оценить отклонения точек графика баланса счета от линейной регрессии.
Чем LR Correlation ближе к нулю, тем более случайный характер имеет торговля.
LR Standard Error — отклонение графика баланса счета от линейной регрессии в денежном выражении.
Средний прибыльный трейд / Средний убыточный трейд — желательно, чтобы отношение этих двух показателей было больше единицы.
Максимальное количество непрерывных проигрышей (убыток) — желательно, чтобы этот показатель был как можно меньше.
Исходя из глубины максимальной посадки по средствам, можно вычислить минимальный депозит, необходимый, чтобы начать