Дмитрий Власов
Дмитрий Власов личный блог
17 сентября 2013, 13:47

ГраалеМетр: Как объективно оценить эффективность торговой системы…

Если Вы создаете механические торговые системы, наверняка задумывались о том, как сравнивать одну торговую систему с другой. Или же (хотя это и является по сути одним и тем-же) – как объективно оценить какой набор параметров механической торговой системы является оптимальным.
 
Несмотря на то, что задача вроде бы является довольно простой – как и всегда возникает куча нюансов – не зря же говорят, что черт кроется в деталях.
 
У одной системы прекрасный RecoveryFactor – но очень маленький размер средней сделки… Вроде бы это и хорошо и не очень.
 
Другая система имеет хороший RecoveryFactor, приемлемую среднюю сделку, но результаты неравномерно распределены по периодам тестирования и SharpRatio явно не дотягивает до желаемых показателей…
 
У третьей системы вроде бы тоже все хорошо, но соотношение между среднегодовой прибылью и максимальной просадкой очень уж маленькое…
 
Самое обидное здесь то, что как только мы начинаем использовать известный показатель для оптимизации – тут же появляется куча проблем.


Если пытаемся найти максимальную NetProfit – появляются параметры, которые предполагают одну или две сделки (к примеру, купить Сбербанк в начале 2009 года и продать его когда цена достигла 100 рублей за акцию).
 
Начинаем минимизировать DrawDawn – могут подобраться параметры, которые предполагают вообще отсутствие сделок…
 
В общем, на первый план выходит выработка некого универсального показателя, который позволит измерять результаты любой торговой системы путем сравнения с неким эталоном.
 
Исторически так сложилось, что очень хорошую торговую систему трейдеры называют «Грааль». Соответственно инструмент использующийся для  сравнения исследуемой торговой системы с идеальной системой (либо с системой, которая считается нами приемлемой) будет называться ГраалеМетр.
 
Давайте попробуем создать такой инструмент. Но прежде разберемся что такое измерение. Измерением называется процесс сравнения одной, пока ещё неизвестной величины с другой, известной величиной. Известная величина играет здесь роль единицы измерения.
 
Что будет единицей измерения в нашем случае?
 
На мой взгляд такой единицей может быть синтетический показатель (суперметрика) – который для каждого трейдера будет своим.
 
Если брать меня – то я буду считать хорошей торговую систему, которая обладает следующими характеристиками:
 
RecoveryFactor – должен быть не менее 7. Если больше 7-ми – это отлично…
 
Средний размер сделки – должен быть положительным и быть не менее (с учетом комиссии и проскальзывания) чем 0,12%.
 
Коэффициент Шарпа – посчитанный по месячным и по дневным данным должен быть на уровне 2х (лучше даже больше)
 
Среднее количество сделок в год должно быть не менее чем 50 штук
 
Ну и соотношение между годовым доходом и максимальной просадкой за все время должно быть не менее 3х.
 
Теперь нам с Вами нужно сваять некий интегральный показатель (суперметрику), который оценит на сколько процентов наша реальная торговая система лучше или хуже эталонной…
 
При этом нужно учитывать, что некоторые составные показатели будут значительно превышать свое эталонное значение, но это не должно сказываться на интегральном показателе.
 
К примеру, если мы говорим что средняя сделка не должна быть менее чем 0,12% — то если по факту размер средней сделки составляет 1,2% — влияние этого превышения эталонного значения на общий результат должно быть ограничено.
 
Точно также мы должны ограничить показатель количества сделок и некоторые другие…
У меня подход к такому ограничению следующий…
Расчет суперметрики (GraaleMetr) 
Ну и осталось всего лишь определить сводный показатель (GraaleMetr).
Здесь возможны разные подходы. Я остановился на среднегеометрическом между соотношениями реальных и эталонных показателей (с учетом ограничений). Чтобы перевести в % нужно всего лишь умножить на 100.
 
Таким образом найденный показатель будет показывать во сколько % от эталонной торговой системы можно оценить исследуемую торговую систему. Если показатель равняется 120% — значит наша система на 20% лучше эталонной.
 
Если показатель 91% — значит мы 9% не дотянули до эталона.
 
Таким образом мы нашли показатель, который измеряет качество нашей торговой системы основываясь на научном подходе, ведь измерить какую-либо величину — значит установить, сколько единиц в ней содержится, или, другими словами, во сколько раз она больше, чем единица измерения.
 
Ну и теперь – как можно использовать наш показатель GraaleMetr:
 
Самое приятное, что мне удалось создать специальную карту (так называемую ScoreCard – в Wealth-Lab). Благодаря этому теперь используя  генетический оптимизатор либо оптимизатор MonteCarlo могу подбирать такие параметры, которые наилучшим способом совпадают с моим представлением о хорошей торговой системе.
 
Ну и кроме того, теперь можно объективно сравнивать разные торговые системы между собой. Что особенно приятно – показетель GraaleMetr не зависит ни от таймфрейма ни от финансового инструмента, который используется.
Идея показателя эффективности торговой системы «ГраалеМетр» достаточно подробно расписана в этой статье. Если есть желание подробно разобраться — как расчитывать все показатели, включая Sharp (даже для режима RowProfitMode), RecoveryFactor, Apr и прочие — которые являются составными частями ГраалеМетра — приглашаю посетить мастер-класс, который состоится 19 сентября в 20-00 по Москве. Там сделаем ScoreCard, Visualizer — подробно рассмотрим эту концепцию используя Excel.
Надеюсь, информация в этой статье оказалась для Вас полезной. Было бы интересно узнать чему равен показатель ГраалеМетр Ваших торговых систем. Можете написать об этом в комментах.
34 Комментария
  • DGD
    17 сентября 2013, 13:53
    что думать если система каждый месяц или день дает прибыль значит она эффективна имхо
  • SHCHUTUSHCHA
    17 сентября 2013, 13:55
    не каждую систему возможно оценить по вашему гралеметру
  • DV_13
    17 сентября 2013, 13:56
    Через 3 месяца Ваши представления об оптимальности изменятся…
  • smax0
    17 сентября 2013, 14:30
    Ральф Винс по среднегеометрической сделке сравнивал системы.
  • Berty
    17 сентября 2013, 14:33
    Ничего не понял. Мне кажется, всё намного проще: доходность. Изменяя параметры, найти её максимум. И пределы масштабируемости.
    Например, А. Резвяков на кусах, слушателем которых я был, демонстрировал увеличение счёта с 1 миллиона до 4 за полгода.
    Чем не эталон?
    Для себя решил, что пятикратное увеличение счёта (до 3 000 000) за год — это и есть эталон. Человека такого я видел, а значит это возможно.
  • in_line
    17 сентября 2013, 14:34
    Вы пишете:
    — соотношение между годовым доходом и максимальной просадкой за все время должно быть не менее 3х.
    — Так это и есть Recovery Factor. Или вы подразумеваете, что RF не менее 7 — это за весь период тестирования?
    Если так, то важна еще продолжительность этого периода. Само собой что при тесте за 4 года и 10 лет он будет сильно разный.
      • in_line
        17 сентября 2013, 14:43
        Дмитрий Власов, согласен, но суть в том, что он зависит от продолжительности периода теста. Раз уж ставите по нему цель (7 или больше), то ставьте и по периоду ограничение. Например RF 7 за 10 лет — это ни о чем, а за 2-3 года — нормально.
          • Jaguar
            17 сентября 2013, 16:59
            Дмитрий Власов, Как считаете мой подход нормальным?
            Опимизируем Модифицированный Рекавери фактор, который равен
            MRF = Прибыль/(Просадка^2)
            Т.е. используем тот же рекавери, только придаем просадке больший вес.
  • Berty
    17 сентября 2013, 15:06
    Дмитрий Власов, не бесконечно, но в разы. А здесь главное, какой риск выдержит ваша голова перед тем, как вы окажетесь на Канатчиковой даче. Для всех этот предел разный.
    Вот у меня вопрос: смогу ли я выдержать возможную потерю 40% счёта при доходности в 200% за 3 месяца, или ограничится 20%, при доходности 100%? Логика за первый вариант, но психологически не готов.
    • Stanislao
      17 сентября 2013, 15:24
      интересно
  • q-trader
    17 сентября 2013, 15:23
    Чем плохи системы с малым количеством сделок? По моему наоборот, экономия на комиссиях и времени
    • pattern
      17 сентября 2013, 17:03
      q-trader, чем больше сделок генерирует система — тем больше денег за единицу времени вы сможете заработать… Допустим, есть разница 10 трейдов в год и 10 трейдов в неделю (при равных прочих параметрах)… как то так…
      • pattern
        17 сентября 2013, 18:56
        pattern, … так вот, при малом количестве трейдов, Вам для достижения каких то финансовых целей (например определенную сумму денег в год), придется увеличивать риски (размер лота)
  • Berty
    17 сентября 2013, 15:39
    Дмитрий Власов, за ссылку спасибо. Поставил на закачку. Однако с: «Плюс выделять на такую торговлю ту сумму, потеря которой никак не скажется на психическом состоянии…», — не согласен. Так выше одного контракта не поднимешься. Полагаю, здесь дело в тренировке риску, смещении «точки сборки». Работаю над этим. Система есть, а торговать боюсь.
  • ab_trader
    17 сентября 2013, 16:20
    Спасибо, виртуальный +. Такой вопрос — при генетической оптимизации в Wealthlab можно задать для оптимизатора мин. количество сделок за тест? Т.е. чтобы гены тестов с небольшим количеством сделок не учитывались в последующих шагах.
  • ab_trader
    17 сентября 2013, 16:21
    И еще вопрос — рекавери = 7, шарп > 2 — это для какого таймфрейма?
  • Тимофей Мартынов
    17 сентября 2013, 19:22
    Если в наличии так много прибыльных торговых систем, которые надо сравнивать между собой чтобы выбрать, значит просто выбираете между оптимизированными подгонками под кривые, которые в реальной торговле бесполезны, вернее даже вредны для депозитов.
    Когда попадется действительно стоящая система, ничего сравнивать вообще не надо будет, она сама за себя все скажет. Не так уж много рабочих систем, вернее даже единицы. :)
    • ab_trader
      17 сентября 2013, 20:30
      JC, вы ведь торгуете портфель систем. Неужели не приходилось выбирать какую из 2-х пускать в торговлю?
      • Тимофей Мартынов
        18 сентября 2013, 15:07
        ab_trader, нет, если вижу что система потенциально стОящая, буду ее играть вместе с другими системами. Проблема в том что количество таких систем уменьшается почему то. Наверное рынки становятся эффективнее.

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн