Trabalho concluído
Termos de Referência
Задача – написание скрипта/эксперта для анализа результатов торговли на исторических данных.
Отдалённый прототип - https://www.mql5.com/ru/code/7665
1. Источники данных – история терминала и отчёт тестера стратегий (выбирается в настройках).
2. Предполагаемые параметры:
- источник данных (имя файла в случае тестера стратегий)
- диапазон дат для анализа
- период “пост-анализа”
3. Расчитываемые параметры:
а) для каждой сделки
- MAE (Maximum Adverse Excursion) двух видов, включая возможность анализа поведения цены в течение определённого периода после закрытия сделки (задаётся в параметрах)
- MFE (Maximum Favorable Excursion) двух видов, включая возможность анализа поведения цены в течение определённого периода после закрытия сделки (задаётся в параметрах)
- HPR (holding period returns)
- эффективность входа
- эффективность выхода
- эффективность сделки
б) итоговые
- Sharp Ratio
- Z-score
- AHPR
4. Выходной результат в виде файла csv, с таблицей, содержащей строки с данными по каждой сделке, включая колонки:
- тикеты открывающей и закрывающей сделок
- тип трейда (в дальнейшем используем сделку как синоним трейда)
- объём сделки
- объём сделки
- цена открытия сделки
- время открытия сделки
- время закрытия
- максимальная цена
- минимальная цена
- время максимальной цены после начала сделки в минутах
- время минимальной цены после начала сделки в минутах
- эффективность входа *
- эффективность выхода *
- эффективность сделки *
- MAE обычный
- MFE обычный
- HPR
- MAE “расширенный” (на диапазон “пост-анализа” после закрытия сделки)
- MFE “расширенный” (на диапазон “пост-анализа” после закрытия сделки)
- время максимальной цены после окончания сделки в минутах в пределах диапазона “пост-анализа”
- время минимальной цены после окончания сделки в минутах в пределах диапазона “пост-анализа”
В конце выводятся итоговые данные
* Эффективность входа вычисляется по формулам:
для длинных позиций
enter_efficiency=(max_price_trade-enter_price)/(max_price_trade-min_price_trade);
для коротких позиций
enter_efficiency=(enter_price-min_price_trade)/(max_price_trade-min_price_trade);
Эффективность выхода вычисляется по формулам:
для длинных позиций
exit_efficiency=(exit_price - min_price_trade)/(max_price_trade - min_price_trade);
для коротких позиций
exit_efficiency=(max_price_trade - exit_price)/(max_price_trade - min_price_trade);
Эффективность сделки вычисляется по формулам:
для длинных позиций
trade_efficiency=(exit_price-enter_price)/(max_price_trade-min_price_trade);
для коротких позиций
trade_efficiency=(enter_price-exit_price)/(max_price_trade-min_price_trade);
общая формула
trade_efficiency=enter_efficiency+exit_efficiency-1;