Блог им. jc_trader

О штампах и мифах в разработках торговых систем.

В последнее время, с развитием научно-технического прогресса и специализированных программ для тестирования торговых систем, трейдерский интернет, буквально, наводнился скринами протестированных граалей с красивыми графиками, таблицами с коэффициентами и параметрами доходности. При этом некоторые коэффициенты, типа RecoveryFactor, ProfitFactor, MaxDD и др. просто идеализируются, обожествляются, а на самом деле просто обращаются в штампы, типа RecoveryFactor должен быть не менее 10, с ProfitFactor-ом ниже 3 нечего делать на рынке и т.д. и т.п.

Как довольно справедливо заметил выдающийся трейдер нашего времени Алексей Мартьянов в последнем видеообращении к инвесторам, цитирую дословно: 

"… Если к вам приходит очкастый алготрейдер, и начинает тыкать своими графиками, теоретической эквити его алгоритмов, то можете сразу дать ему в [censored] (лицо)..." :) 


Попробуем развеять некоторые мифы и штампы о коэффициентах результатов исторических тестов.

------------------------------------------------

RecoveryFactor

Начнем с самого неприкасаемого коэффициента RecoveryFactor. Часто встречается мнение что для хорошей системы он должен быть не менее 7-10. Нередко, в интернете встречаются протестированные системы с RF более 20-30-50 и более. Новички могут посчитать это за грааль.

Но вспомним как он рассчитывается. Общая прибыль за весь период тестирования поделенная на самую большую просадку. Отсюда должно быть понятно что чем больше период тестирования, тем больше с годами будет накапливаться прибыли.  А просадка не накапливается как прибыль, она одноразовая. И соответственно, чем больше будет период тестирования, тем потенциально больше будет и RF.

Допустим, Иванов протестировал систему за год и получил прибыль и максимальную просадку одинаковой величины что вполне естественно для одного года. Значит RF=1 что по сложившемуся мнению очень-очень мало. А Сидоров протестировал ту же систему, но за много-много лет с 1929 года до наших дней и получил RF= 50. Петров подумал и по сложившимся штампам решил что у Сидорова система в 50 раз лучше чем у Иванова, хотя на самом деле это была одна и та же система.

Также, вполне возможно что система с RF=3 намного лучше чем система с RF=12, но просто протестирована на меньшем периоде.

Поэтому, вывод. При помощи RF можно сравнивать только системы с одинаковым периодом тестирования. Ни больше ни меньше.

---------------------------------------------------
 

Profit-Factor


Пожалуй, самый популярный коэффициент среди начинающих алготрейдеров. И он, по стереотипам, никак не должен быть менее 3.

Я уже когда-то писал что самый большой PF будет в случае торговли без стопов, пересиживания — он будет равен бесконечности. До первого невозврата к цене входа, конечно — когда придет Маржин-колл. Но PF так и останется бесконечным, чем можно будет гордиться всю оставшуюся жизнь, вспоминая о веселых трейдерских годах. Соответственно, чем более удаленный стоп-лосс в системе, тем больше будет PF при прочих равных условиях. То есть большой PF просто говорит о склонности трейдера пересиживать убытки.

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

Давайте рассмотрим на конкретном примере фьючерса на нефть:
----------------------------------
Иванов
-купил 1 контракт нефти по 93,40
-Сработал стоп-лосс по 93,20
-Перезашел в лонг по 93,20
-Зафиксировал прибыль по 93,50

О штампах и мифах в разработках торговых систем.

 Итого:
прибыль — 300 долларов
убыток — 200 долларов

PF = 1.5

--------------------------------

Сидоров
-купил 1 контракт нефти по 93,40
-пересидел просадку и зафиксировал прибыль по 93,50

О штампах и мифах в разработках торговых систем.

 Итого
прибыль — 100 долларов
убыток — 0 долларов

PF = бесконечность
--------------------------------
Вывод: оба игрока заработали по 100 долларов, но у Сидорова PF, а значит и система в бесконечное число раз лучше чем у Иванова????????
Хотя, на самом деле у Иванова система в бесконечное число раз грамотнее чем у Сидорова.

----------------------------------------------------------------------

Максимальная просадка.

«Просадка более 30% это самоубийство»… «Чтобы отыграть просадку 50%, надо заработать 100%» и т.д. и т.п.......

Вспомним что такое Макс.Просадка — это расстояние от предыдущего пика на эквити счета до следующего минимума.

Опять рассмотрим на примере. Допустим, имея на счете $25000 открыли длинную позицию по фьючерсу на серебро по 38.00 со стопом 37.50. Так как 1 пойнт серебра равен 5000 долларов, то риск 0,5 соответствует 2500 долларов.

После открытия позиции цена резко выросла до 50 и потом внезапно обвалилась так что не успели среагировать и зафиксировали прибыль по 39, заработав 5000 долларов. Вроде, нормально — прибыль 5000 долларов при риске 2500.

О штампах и мифах в разработках торговых систем.

Но тут и начинается самое интересное — так как на пике счет от $25000 начальных достигал $60000, а после фиксации прибыли уменьшился до $30000, то это означает ПРОСАДКУ 50%. 

То есть, вроде бы и заработали, и даже в минусе не побывали, а такой показатель как MaxDD теперь оставит позорное клеймо на системе. С таким MaxDD   системы ни один инвестор не вложит деньги, да и на форумах будут пальцем показывать. А ведь MaxDD мог быть и более 50%… и 80%, и даже 95%....

Выводы делайте сами :)

------------------------------------------------------------------------------

Продолжение о штампах и мифах в разработке торговых систем следует..... 

Оригинал статьи тут:
http://www.jc-trader.com/2013/03/20/o-shtampah-i-mifah-v-razrabotkah-torgovy-h-sistem/
 
★45
48 комментариев
а вы какой профитфактор считаете адекватным (величина)?
avatar
alex-liefe, да любой, не менее единицы :)
Для примера: есть у меня системы с профит-фактором 9 и более, но в реал их не выпускаю, не доверяю. А в реале есть система даже с профит-фактором 1,4…
раскрыть комментарий
avatar
Moka_Baron, четвёртый вариант: ты не уловил сарказм.
Moka_Baron, мы с Вами разве знакомы? Почему на Ты?
JC, Если это был сарказм, то сорри…
Нет не знакомы… но оказывается я вас читал в жж… хм тогда точно сорри.
avatar
Moka_Baron, можно удалить комментарий, раз было недоразумение. JC как обычно написал все по делу. Без истерики, как у нашего выдающегося трейдера.

Леше вообще нужно дать совет не нервничать. С мужчин с 30 по 40 лет самый высокий риск умереть от сердечных болезней. А тут и трейдинг (нервы), и публичность (нервы в двойней), и собачество (вообще нагрузка зашкаливает).
avatar
JC, спасибо
avatar
Люди становятся жертвами популярного софта «для народа», где все показатели стараются
1) сделать понятными в рамках школьной математики
2) сделать показатели «красочными, яркими», легко представимыми

Тот же Profit Factor:
общая прибыль поделить на общий убыток — просто, понятно, конкретно. Для вычисления используется математика начальной школы.
avatar
Swan, в принципе, это правильно — чем проще, тем надежнее.
Я просто к тому что нельзя по одному коэффициенту судить о системе. Оценка системы намного сложнее.
JC, среднее и дисперсия — тоже просто как кирпич, но обычным людям эти параметры слабо понятны. Большинство не сможет даже сказать, чем отличается системы с характеристиками (m=2, s=3) и (m=3, s=5)
avatar
Swan, к сожалению, я тоже вхожу в число «обычных людей» и, на данный момент, не представляю что такое «среднее и дисперсия». :)
JC, =)))))))))))
avatar
JC, Здесь похоже много «обычных людей». Сегодня озадачился как выразить через формулу среднюю цену фьючерса после докупки (добора позиции). Умом понимаю, насколько она должна сместиться после операции (при доливке 0,5 к позиции, на 1/3), а сел в экселе посчитать: голову ломал как формулой описать это полчаса
avatar
ДД фиксируется по закрытой сделки
avatar
так что в Вашем примере ДД = 0
avatar
Twilight_reg73, это, если не ошибаюсь, в Метатрейдере только. Можно 99% просадку пересидеть, а отчет выдаст ДД=0. :)

В нормальных программах для тестирования ДД считается как положено.
Вродебы давно пишете роботов, читаю Ваш ЖЖ или я в чем то ошибаюсь?
avatar
Twilight_reg73, ни разу в жизни роботов не писал. Даже с программированием не знаком.

Просто тестирую системы. Прикидываю, как они повели бы себя на исторических данных. Только и всего.
Молодец Юрий Иванович! Все-таки не уютно вам без смартлаба!:)
Тимофей Мартынов, это Вы молодец. Такой мега-портал создали…
JC, рад что вам нравится)
JC, Да, у Вас скучно, и купить нечего.
avatar
Опять неплохо, чо там.
Но плюса в личку не будет — больше не принимает смартлабик.
отлично!
шняга про МаксДД, Деньги то выводим, да максДД может случиться на старте системы.
avatar
Fedot, кто-то выводит, а кто-то и нет :)
JC, если тупо копить, то это странно… а если разгонять депо, то просадка никуда не денеца, увеличенным сайзом и просядешь глубже.
avatar
Fedot, я не в курсе что означает «разгонять депо», поэтому не понял и что значит «просадка никуда не денется».

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

Только я уже потерял нить — что мы обсуждаем? :)
JC, «разогнать депо» это в моем выражении реинвестировать(увеличивать сайз). Ну а обсуждали мы, то что максимальная просадка это не такой уж и миф и не нужный показатель.
avatar
Fedot, нет, я конечно же не имел в виду что все эти показатели ненужные. Без них просто не оценить систему. Я к тому что нельзя судить только по одному показателю, а нужно смотреть всю систему целиком. И не только показатели, а еще и оценить ситуацию, типа, а сможем ли мы эту хорошую систему, вообще, торговать несмотря на то что она такая хорошая.
Вместо RecoveryFactor можно вполне использовать коэффициент Калмара=Среднегодовая прибыль/maxDD. Он даёт более показательные результаты и + с увеличением периода тестирования растёт доверие к результатам, в отличие от Рековери
dolart, да, это хороший коэффициент. В TradingBlox он называется MAR. Использую его для оптимизации систем в этой программе.
Хорошая статья +++
Я всегда смотрю сгенерированные сделки на графике. Если точки входа и выхода меня устраивают, то побоку все факторы восстановления и прибыли. Если не совпадают — шлифую логику.
нормально так февраль — март — апрель — не успел отреагировать?!)
avatar
Desperado, ну это только для примера. Так ведь можно и интрадейную сделку подобрать с шипом вверх и с плечом 200:1. :)
В общем-то, все правильно. Но по отдельности любой параметр можно разгромить (хоть rf, хоть %win). Боюсь, что те, кто еще не освоил чтение параметров системы по генерируемым платформой результатам, неправильно поймут Ваш посыл.
Антон Кротов, кто сам думает, тот, как бы не понял, правильно или нет, в конце концов, сам до всего дойдет. А кто думает умом других, тот давно уже на семинарах «дошел» до всего. :)
аццки плюсую, Юрий Иванович как всегда на высоте :)
avatar
Хорошо.
От себя замечу: трейдеру в результате нужно одно число — баланс счёта, а не сумма параметров ТС.
Все остальные циферки нужны лишь для того чтобы не было «так страшно» =)
А если они не справляются со своей задачей (всё равно страшно или даже страшнее), то с этими циферками что-то не так.
ИМХО, лучше сосредотачиваться не на максимальной просадке, а на стартовой. Максимальная просадка при t-->inf также -->inf, а вот стартовая имеет предельное значение. Правда, может попасться такая траектория на тесте, что стартовой просадки совсем нет, или она очень маленькая, но это можно отмонтекарлить. А вообще все эти показатели определяются статистическими моментами доходностей системы, и поэтому в них действительно нет ничего «волшебного» — типа «максДД — круто, а рековери — отстой» — такие утверждения лишены смысла. Все эти показатели зависят от моментов, поэтому в принципе для некоторых распределений можно максДД вычислить как функцию дисперсии, начальной ДД или даже рековери фактора.

Показатели — ничто, устойчивость показателей при реальной торговле — всё!
avatar
q-trader, поддерживаю по всем пунктам.
особенно, что главное наше всё — это остационарить рабочий ряд любыми способами.
avatar
q-trader, кстати, выражения типа «статистические моменты» лучше расшифровывать, иначе большинство не поймёт
avatar
Swan, ну, наверно, да. Конкретный пример — логдоходность эквити описывается нормальным распределением. Любые показатели эффективности — максДД, стартДД, рековери, профит можно посчитать через среднее и диспесию, а если задасться целью, то можно и вывести формулы связывающие например максДД и стартДД и т.п. Т.е. первичны моменты, в данном случае первые два — среднее и дисперсия, они полностью описвают риски в этой модели, а все показетели эффективности — это уже производные от моментов, вторичные величины, хотя может и более удобные для восприятия, напр, просадка
avatar
alex-liefe,
для акций до 1 к 1,5
для портфеля фьючерсов не посчитать так как у каждого фьючерса свое ГО

теги блога Тимофей Мартынов

....все тэги



UPDONW
Новый дизайн