Избранное трейдера T-800
Решил начать писать небольшие заметки по алгоритмической торговле и всему что с ней связано. Возможно, когда-нибудь расширю, склею и опубликую в виде книжки. Пока же это просто наброски заметок, сделанные на скорую руку.
Можно часто слышать от тех, кто торгует алгоритмически, да и просто систематически, такие понятия как «оверфиттинг», «курвафиттинг», «зафит» и прочие ругательства с корнем «фит». Что все это значит?
На самом деле, все эти слова, как правило, используются для описания одного и того же явления, являющегося врагом всех трейдеров, торгующих систематически и пытающихся оценить исторический перформанс своих торговых логик — а именно, что «живой» аут-оф-сампл перформанс на реальном счете, как правило, хуже ожиданий, полученных ими при проверке своих идей на истории. Например, при тестировании торговой логики на истории трейдер с помощью своей модели «зарабатывал» 30% годовых, а в реале может в среднем иметь 10% годовых. Разница 20% годовых — может объясняться именно оверфиттингом (если нет других факторов — например, некорректный учет комиссионных и проскальзываний, или ошибка в торговом коде; но прочие факторы легко устранить, в отличие от оверфиттинга). На картинке в начале статьи — пример перформанса некоторого фонда в бэктесте и в реальности, наглядно иллюстрирующий написанное выше.
Оверфиттинг является следствием комбинации одного или нескольких из следующих факторов, положительно влияющих на бэктест (результаты прогонки модели на истории), что и создает у трейдера завышенные ожидания от своей модели. В этой части мы рассмотрим основные источники оверфиттинга, в следующей — поговорим о способах избежания или минимизации оверфиттинга при историческом тестировании моделей.
Изначально, была мысль написать большую статью, с множеством забавных эпизодов, прекрасно иллюстрированную. Но, честно, не осилил. Не нашел как верно отобразить графическую информацию. Поэтому, полагаюсь на то, что заинтересованные — сами проверят все описанные методы и оставят один-два комментария.
Рассмотрим разные варианты управления капиталом при торговле портфелем стратегий.
Для простоты, можно рассматривать портфель из двух стратегий, на отрезке где одна стратегия стабильно зарабатывает, а вторая работает неустойчиво.
1. Фиксированный лот без реинвестирования. Просто суммируем две кривые прироста капитала. В данном случае все просто, одна стратегия делает прибыль, другая добавляет просадки. При раздельном тестировании этот метод позволяет наиболее точно оценить стратегию. Минус метода в том, что при значительном изменении капитала (вывод или занос денег) нужно править рабочий обьем.
2. Каждой стратегии выделяется равный процент депозита, прибыль реинвестируется, либо уменьшается обьем при просадке счета
Тут вроде все понятно, этот подход все любят. На прибыль добавляемся, при убытке сокращаем лот. Если одна стратегия сильно льет, а вторая немного зарабатывает, то рабочий обьем режется на всех стратегиях, так как общий размер депозита сокращается. И тут возникает вариант 3, про который почему-то никто не говорит.
3. Создаем условия, когда каждая стратегия работает независимо (одна стратегия — один счет, стартовая сумма для счетов одинаковая), прибыль реинвестируется, либо уменьшается обьем при просадке счета. При этом каждое направление входа системы (лонг или шорт) рассматривается как отдельно взятая стратегия. Почему так? Возьмем простую трендследящую стратегию. На тренде вверх имеем хорошие сделки от лонга, но на резких и коротких коррекциях тренда шорт как правило не зарабатывает. И наоборот для тренда вниз. В этом случае мы будем резать лот на убыточном направлении стратегии и добавлять на прибыльном.
4. Доработка варианта 3. К каждой отдельно взятой стратегии добавляем элемент equity-trading. В коде стратегии отслеживаем изменение капитала (start_deposit +- netprofit), параллельно заполняем массив финансового результата при торговле 1 лотом, вводим порог допустимой просадки и при ее достижении выключаем стратегию (торгуем минимально возможным обьемом — 1 контракт или 1 акция). При восстановлении теоретической кривой капитала выше порога просадки — возобновляем работу полным обьемом. Порог просадки задается исходя из прошлых данных бэктеста, либо на глаз. Сильно зажимать порог нельзя. На глаз у меня получилось, что максимальная просадка стратегии с учетом процента капитала выделяемого на стратегию примерно равняется 3% на весь капитал. То есть, если стратегия торгует на 30% капитала, то пороговое значение должно быть примерно 10%. Здесь возможны исключения, например для стратегий с малой просадкой можно задавать пороговое значение чуть больше максимальной исторической просадки.
Мои тесты показывают, что при применении варианта 4 общая прибыль незначительно снижается, но так же снижается и просадка. Соотношение профит-просадка увеличивается примерно на 20%, для некоторых стратегий соотношение увеличивается в два раза.
Апдейт
Для примера equity-trading я рассмотрю трендовую стратегию на сбербанк.
Входные условия — только шорт, 100 контрактов фиксированный лот, без пирамидинга. С лонгом все понятно, последние пару лет стратегия зарабатывает без значительных просадок.
Эквити с фиксированным лотом, 100 контратктов.
Добрый день, коллеги!
Ответ на вопрос дан уже в теме.
Ответ на вопрос: «Каким образом?» тоже дам сразу – применяя регулярную Ротацию систем.
Читателям смартлаба, не желающим читать много букв и смотреть картинки, дальше можно не читать.
Предлагаю остаться только тем, кто хочет понять, как часто надо проводить Ротацию систем?Итак,
Цель данной статьи:
Понять, как часто необходимо проводить Ротацию систем, чтобы регулярно заработать на рынке Forts?
1.Что я понимаю под Ротацией систем в данной статье.
Если мы имеем две системы с одинаковым кодом, но с разными параметрами, значит у нас две разные системы.
Меняя параметры системы, мы фактически меняем торговые системы. Именно это я понимаю под Ротацией в узком понимании.
Ротация систем в широком понимании – это не только замена параметров систем, но и замена собственно систем. Рассмотрение вопроса «как часто менять системы в портфеле?» выходит за рамки этой статьи.
Всем привет!
Решил поделиться сигналами своей количественной модели ротации секторов американского рынка, золота и трежерей. А почему бы и нет — сигналы, которые я здесь выкладываю — для самых ликвидных ETF'ов, с емкостью миллиарды долларов, самому мне столько точно не надо. Торгует модель раз в месяц — я делаю это в начале каждого нового месяца.
Модель может использоваться как неплохая альтернатива долгосрочному (3-5 лет) банковскому вкладу в валюте. При условии, если вы умеете соблюдать дисциплину и не лезть в модель грязными лапами, чтобы улучшить ее «своим видением рынка» =) Если надоело сливать депозиты и хочется уже куда-то вложить валюту под неплохой процент и с умеренными рисками — велкам!
Модель торгует ETF'ы на секторы американского рынка (XLY, XLP, XLE, XLF, XLV, XLI, XLB, XLK, XLU, IYZ, VNQ), долгосрочные трежеря (TLT), золото (GLD), в качестве безрискового актива, в который модель иногда выходит, используется SHY. На первом шаге производится фильтрация торгуемых тикеров по моментум-логике, на втором — их смешивание с учетом статистических взаимосвязей между ними. Более подробно логику описывать не стану, поскольку, в отличие от других квантов на этом ресурсе, я не считаю, что количественные модели работают вечно. Они умирают — более того, в последнее время они умирают косяками.