Скрипт TradingSystemRating

 

Одной из наиболее распространенных задач, встающих перед разработчиком торговой системы, является ответ на вопрос: "Насколько эта система хороша?" Чаще всего под этим вопросом подразумевается: "Сколько денег я смогу заработать с ее помощью?". 

На самом же деле первый вопрос является более полным, чем второй, потому как условный миллион можно заработать за год, за десять или сто лет (никогда). Значит, уже важен не только размер заработка, но и время его получения. Углубляясь в постановку требований к системе, вспоминается, что для получения той или иной величины заработка, капитал должен подвергаться различным степеням риска. Вот уже и третий критерий качества образовался. Дальше - больше: частота сделок, зависимость их от спреда и проскальзывания, фактор восстановления, математическое ожидание, средняя продолжительность удержания сделки, длина серий прибыльных и убыточных сделок и т. д. 

Таким образом, критериев оказывается достаточно много, что затрудняет проведение оценки той или иной системы. В то же время во многих случаях хотелось бы иметь дело с некоторой единой оценкой, которая бы включала в себя большинство из перечисленных выше критериев. Что-то вроде балльной системы, которую учителя используют для оценки качества знаний школьников.

Одну из таких методик оценки предложил Ван Тарп в своей книге "Супертрейдер. Как зарабатывать на бирже в любых условиях". Также в рамках исследования способов оценки торговой системы для сравнения одного способа оценки с другим рассмотрим еще и коэффициент Сортино. Обе методики не претендуют на истину в последней инстанции, но, как минимум, позволяют отсечь крайние случаи: очень хорошие и очень плохие системы.

 

Техника расчета оценки по методу Ван Тарпа

Качество оцениваемой системы Ван Тарп предлагает измерять как отношение математического ожидания к среднеквадратичному отклонению результатов сделок:

    (1),

где M(x) - математическое ожидание,

      σ - среднеквадратическое отклонение.

Полученное значение R классифицируется следующим образом:

  • менее 0.16 - очень низкое качество, 
  • от 0.16 до 0.20 - низкое,
  • от 0.20 до 0.25 - среднее,
  • от 0.25 до 0.30 - хорошее,
  • от 0.30 до 0.50 - отличное,
  • от 0.50 до 0.70 - превосходное,
  • от 0.70 и более - святой Грааль.

Таким образом, чем больше математическое ожидание системы и чем меньше ее среднеквадратическое отклонение, тем выше качество системы.

В нашем случае математическое ожидание - это простое среднее всех сделок:

     (2),

где xi - результат i-ой сделки,

     n - количество сделок, совершенное торговой системой.

Среднеквадратическое отклонение - это квадратный корень из дисперсии:

   (3),

 

 которую, в свою очередь, удобнее рассчитать по формуле, предложенной В. Е. Гмурманом в труде "Теория вероятностей и математическая статистика":

   (4),

 

Техника расчета оценки по коэффициенту Сортино

Коэффициент Сортино - это отношение математического ожидания к среднеквадратичному отклонению результатов сделок с отрицательной доходностью:

  (5),

где M(x) - математическое ожидание,

      σ' - среднеквадратическое отклонение с отрицательной доходностью.

Полученное значение классифицируется следующим образом:

  • менее 0.24 - очень низкое качество, 
  • от 0.24 до 0.30 - низкое,
  • от 0.30 до 0.38 - среднее,
  • от 0.38 до 0.45 - хорошее,
  • от 0.45 до 0.75 - отличное,
  • от 0.75 до 1.00 - превосходное,
  • от 1.00 и более - святой Грааль.

Среднеквадратическое отклонение с отрицательной доходностью - это квадратный корень из среднего значения суммы квадратов убыточных сделок:

   (6),

При расчете значения формулы (6) следует учесть важный момент: положительные сделки из расчета не исключаются, их значения заменяются нулями.

 

Скрипт TradeSystemRating

Используя формулы (1) - (4) или (5) - (6), скрипт TradeSystemRating производит оценку качества торговых систем. 

Данные для анализа скрипт может брать из двух видов источников: из истории счета, на котором он запущен, и из указанного файла отчета в формате html (htm):

Рис. 1. Варианты источников данных для анализа.

По умолчанию используется вариант "По истории счета". Чтобы расчет был правильным, необходимо позаботится о доступности всей истории во вкладке "История счета" окна "Терминал" Meta Trader 4:

Рис. 2. Отображение всей истории счета.

Хотя при желании можно анализировать различные временные интервалы торгового счета, выбирая соответствующий промежуток дат.

При оценке истории счета второй настроечный параметр не принимается во внимание. Он потребуется, если выбран вариант оценки "По html-отчету". В таком случае перед запуском скрипта в рабочем каталоге терминала (Файл - Открыть каталог данных) MQL4\Files следует расположить соответствующий файл отчета. Скрипт распознает три вида файлов отчета:

  • Краткий отчет. Его можно получить, выбрав пункт "Сохранить как отчет" из контекстного меню, показанного на рис. 2.
  • Детализированный отчет. Пункт этого же меню "Сохранить как детализированный отчет".
  • Отчет тестера стратегий. Образуется после проведения тестирования и использования пункта "Сохранить как отчет" контекстного меню вкладки "Результаты" окна "Тестер".

Имя анализируемого файла отчета нужно указать во втором настроечном параметре скрипта. В случае, если формат файла отчета не подходит, скрипт выдаст сообщение об ошибке и прекратит работу. То же самое произойдет, если в папке MQL4\Files терминала не окажется указанного файла отчета.

Для выбора способа оценки торговой системы необходимо установить правильное значение второго параметра скрипта "Способ оценки":

Рис. 3. Способ оценки торговой системы.

При правильной настройке скрипт завершит работу сообщением о результатах анализа:

Рис. 4. Результат оценки торговой системы.

 

P. S. На рис. 4 приведен результат оценки торговой системы, описанной в статье "Весомый уровень Фибоначчи", для валюты USDJPY. Найти хотя бы средний результат среди множества других систем автору стоило немалых трудов. Поэтому описанную систему оценки можно считать достаточно придирчивой, что делает ее беспристрастным, но верным советчиком при выборе торговой системы.