Блог им. quant-invest

Оптимизируем алгостратегию: 70% годовых не предел!

Возьмем за основу исходный результат продажи месячных путов на SPY c доходностью 24% годовых и попробуем выжать максимум.
Изначально результаты теста были следующие:
Тайная жизнь опционов SPY: месячные, страйк=5% OTM
Теперь оставим только входы на высокой волатильности: Оптимизируем алгостратегию: 70% годовых не предел!
Доходность возросла до 44%
Пробуем не держать до экспирации, а добавить тейки:
Оптимизируем алгостратегию: 70% годовых не предел!
И 70% годовых в валюте ждут своего трейдера :)
Неплохо, учитывая что мы 3 раза наугад тыкнули пальчиком...
Но нет предела лени, да и палец не железный, поэтому пишем API к нашему тестеру, навешиваем управляющий модуль и начинаем прогонять пачками, получая результаты теста в табличке. И тут встает вопрос — а как, собственно, сравнивать результаты для присвоения конкретной стратегии того или иного ранга? Получили такие результаты:
Оптимизируем алгостратегию: 70% годовых не предел!
Самый главный тут EV(годовой прибыли) другими словами ROI.
Но ведь нужно еще учесть плавность эквити, просадки и т.д.
Кто как приводит все к единому числу?

Вот что предложил SergeyJu:
Что происходит, если Вы чуть-чуть увеличите плечо? У Вас почти пропорционально вырастут и риск, и доходность. Следовательно, сама по себе доходность не так уж и важна, если Вы можете ей легко управлять, варьируя риск. Поэтому я обычно оптимизирую отношение годовой доходности к какой-то мере риска. Часто берут в качестве меры риска ДД. Но ДД не очень хорошая оценка риска для оптимизационных процедур, одну точку легко подогнать. Можно взять более устойчивую меру, например, среднее N максимальных ДД, достигнутых в N разных интервалов времени. ну, и так далее.

Идея отличная, правда не совсем понятно, как в этом случае применить ДД… Дело в том, что учет ведется на задействованный капитал, т.е. аналитика в расчете на портфельное использование. Просадка указана в процентах от начального маржинального обеспечения по позиции, и она может быть больше 100% без всякого риска для прибыльности стратегии — просто по факту нескольких убыточных сделок подряд, просадка 250% по марже может в рамках портфеля означать просадку 2.5%, например. С другой стороны, сам подход к доходности как к масштабируемой величине от просадки на мой взгляд гениален, он позволяет рассмотреть просадку как дополнительную стоимость привлечения средств и расcчитать показатель дисконтированой доходности.
Правда, еще утро и уверенности, что мысль моя не пересекла границы разумного, нет...

Еще предложения, коллеги?
★8
51 комментарий
откуда цены по путам брали и как далеко страйк от текущей цены?

если входы только при высокой волатильности, почему стратегия всегда в позиции?
avatar
Захаров Иван, Цены по путам — коммерческий майнинг. Страйк — 5-6%OTM

Стратегия в позиции, потому что месячный опционы. А за месяц появляется новая точка входа на всплеске волатильности, и открывается дополнительная позиция в новой серии.
Можно задрать волатильность, тогда входов будет меньше, и убыточных сделок тоже меньше.
avatar
Я считаю просадку в процентах к ранее достигнутому максимуму эквити.
avatar
SergeyJu, считать просадку в процентах к ранее достигнутому максимуму эквити можно, когда моделируется некая начальная сумма, которой располагает торговый робот и есть масштабирование позиции. Когда учет начинается с нуля, подобный показатель будет крайне подвержен случайности — произошла просадка в начале теста, или в конце — разница может быть на порядок!
В этом тесте нет автокоррекции размера позиции от величины капитала, все идет в одном масштабе, т.е. грубо сделка — это всегда 100% и в масштабе сделки считается прирост на использованный капитал.

Переходить на моделирование капитала — тут тоже не совсем правильно, суперприбыльные стратегии, которые не часто торгуются, будут недооценены.
Но я попробую дисконтировать  ROI(EV) и посмотреть что получается…
avatar
Quant-Invest, а скажите, эту стратегию уже пробовали на американском рынке? И насколько эта стратегия зависима от различных внешних факторов?
avatar
Real Lord, Нет, пока это только исследования и накопление комплекса стратегий под инструмент для портфеля. Потом пойдет форвард-тест(к этому этапу кстати можно присоединиться), и только потом — реал.
Про внешние факторы — не совсем понял, что вы имеете ввиду, поясните.
avatar
Quant-Invest, внешние факторы — отсутствие сильной волатильности или наоборот, высокая волатильность, создающая стоимость ошибки выше уровня среднего риска. И можно ли еще пояснить, что в Вашем понимании форвард-тест.
avatar
Real Lord, Посмотрите табличку, графа iv — это пороговый вход по волатильности, от этого зависит количество открытых сделок. И два варианта — без тейкпрофита, и с тейкпрофитом 70% от премии.
Форвард-тест в моем понимании — это применение стратегии на тестовом счете без дальнейшей оптимизации параметров, в реальных рыночных условиях. Сразу видим проскальзывание и все остальные отличия модели от реала.
avatar
Quant-Invest, вы пишете, что «произошла просадка в начале теста, или в конце — разница может быть на порядок!» Для этих целей существуют тесты на устойчивость. Например, делается тестер в котором из общей массы сделок берутся 20% случайных сделок и переставляются местами, потом смотрится как новая эквити отклонилась от первоначальной. И так много раз. Потом анализируется кучность получившихся эквити. 
Александр Оцепируки, точно! Вы этого не сказали, но подумали, я знаю :) Нужно брать абсолютную просадку от перехая и считать в процентах от максимума за весь период. Это приведет все в единый масштаб…
avatar
Александр Оцепируки, а что такое кучность и зачем её так моделировать? 
Я понимаю, как методом монте-карло анализировать риски, у этого подхода есть и свои плюсы и свои минусы. 
Я понимаю, как оценить «монотонность» роста эквити, вернее, отклонения от монотонности.
Но о какой устойчивости идет речь?
avatar
SergeyJu, я сам не использую подобные методы, но видел реализацию у других, поэтому описал так как сам понимаю. Уверен, что вы в данном вопросе разбираетесь лучше меня.
Александр Оцепируки, А почему просто массив сделок не перемешать рэндомно? Потом, если есть определенные периоды резкого слива, перемешивание пусть даже 20% только разбавит эти экстремальные моменты… имхо
avatar
Quant-Invest, 20% это условная цифра. Допустим, 20% сделок меняют свои места, а 80% остаются на своих местах. Это просто принцип. Если же перемешивать все 100% сделок, то мы обязательно получим результат когда сначала будут все убыточные сделки, а потом все прибыльные. Но, какова вероятность такого результата на практике? 
Сам не использую такой подход. Сходу нашел описание чего-то подобного тут: www.strategyquant.com/doc/article/what-is-monte-carlo-analysis-and-why-you-should-use-it.html
Александр Оцепируки, «обязательно получим» если не перемешивать, а сортировать. 20% сделок вполне можно рендомно переместить без привязки к результату и времени. вот только зачем? Отклонение и так можно посчитать…
avatar
Quant-Invest, но ведь отклонение будет изменяться при изменении порядка сделок! Каждая сделка в отдельности соответствует условиям системы. Но, эти сделки могли идти в другом порядке чем они шли на тестовом периоде.
Вижу, не умею я объяснять.:)
Александр Оцепируки, да нет, я все понимаю. Просто торговая система не является независимой последовательностью сделок, и применять методы чистого теорвер-анализа к ней некорректно. Зависимые там события. А для зависимых событий есть другие, но похожие методы, например так:
avatar
Александр Оцепируки, почитал по ссылке, на мой взгляд это писал дебил с университетским дипломом. Или жулик. Monte-Carlo должен вычислять n возможныx траекторий и сам алгоритм очень неплох, но при таком подходе как в статье есть фундаментальная ошибка исследования, так что результаты красиво смотрятся, но к реальности отношения не имеют.
avatar
Quant-Invest, интуитивно это выглядит так.
Если эквити идет по прямой из левого нижнего угла в правый верхний, как ни перемешивай сделки, она такой линией и останется. 
Если есть одна суперсделка, а остальные ни шатко ни валко — набор рэндомных траекторий загадит весь прямоугольник. В промежуточном состоянии мы получим полосу из нижнего левого угла в верхний правый, ширина которой будет нам что-то говорить о качестве эквити. Чем уже — тем лучше. 
Непонятны два момента, почему 20% (эмпирика) и что мы, собственно измеряем. Не похоже, что это устойчивость, скорее, равномерность роста.

avatar
SergeyJu, фильтровать суперсделки хорошая идея для проверки устойчивости системы к проскальзыванию. Но у меня в этом тесте — продажа опционов, по ним не может быть суперсделок в плюс, только суперубыток, который фильтровать не имеем права :)
Вот на покупке опционов можно было бы такое сделать, да и то на очень большом количестве сделок...
А метод припомню, на скальперских алгоритмах он будет вполне рабочим…
avatar
Quant-Invest,  я не вполне корректно выразился. Стартовый капитал — 100%. Каждая сделка приносит прибыль/убыток в процентах. Далее развилка. 
Или мы считаем, что используется фиксированный капитал в сделке, тогда просто все читаем неизменных процентных пунктах. 
Или мы считаем с реинвестированием. Тогда считаем логарифмы отношения цены выхода к входу с учетом издержек и суммируем. Я это называю для себя — логарифмические проценты. Просадку считаем, соответственно, как разность текущей эквити и ранее достигнутого максимума.
Как правило, эти расчеты, различаясь в цифрах, позволяют почти одинаково сепарировать системы по принципу лучше/хуже. 
avatar
SergeyJu, понял, все верно говорите, но для моно-систем. У нас множество подобных стратегий должно образовать устойчивый портфель, на лету выбирающий наилучшие из доступных стратегий.

Я могу ввести «стартовый капитал» и выделить на стратегию, например, 1% на сделку, и потом посчитать по вашему первому варианту. Как вы думаете, это имеет смысл в нашем случае?
avatar
Quant-Invest, я стараюсь не смешивать оптимизацию систем и управление портфелем.
Каждую систему оцениваю так, как если бы она была моно. 
Если она достаточно неплоха, можно вставить в портфель, но уже выбор весов систем в портфеле — совсем другая задача. 
avatar
SergeyJu, логично, попробую.
avatar
Ничё не понимаю. В первом варианте продавали месячные опционы на 2% от суммы на счете. Например, на счете 100000, каждый месяц продаем на 2000. Нам везло и мы заработали за год 24000.
Во втором случае продаем только когда высокая волатильность. Предположим, что высокая волатильность у нас выше 20 и она 6 месяцев в году. Что тогда? Чтобы получить 44% годовых нужно продавать опционов на 7300 в каждый месяц с высокой волатильностью и молиться? С тейками вообще темный лес.
Александр Оцепируки, все просто. Волатильность влияет на точки входа в позицию. Один и тот же контракт вы в первом случае продаете ВСЕГДА когда ему жить осталось месяц, а во втором, только когда срок менее месяца и при этом еще волатильность >20
avatar
Александр Оцепируки, то есть даже сделки могут быть по закрытию идентичные, но за счет более короткого времени нахождения в позиции мы имеем больший прирост на капитал.
Хотя по отчетам, WinRate тоже растет, так что как минимум два этих фактора влияют.
avatar
на истории все красиво, но «тяжелые хвосты» не дадут Вам спокойно жить )))
avatar
Rotor78, Мандельброта начитались? :)
Хвосты не страшны, потому как:
1. Это не товарные фьючерсы.
2. Тут история за 9 лет, включая 2008, когда вынесло бог знает сколько народа с рынка
3. Предполагается использовать эти стратегии в составе сбалансированного портфеля с четко контролируемым риском
avatar
Rotor78, посмотрите, кстати, как вела себя стратегия в 2008-2009 — а ведь это апокалиптический сценарий для продажи путов.
avatar
Quant-Invest, просадка у вас в 2008 году — это видно. Там возник бы только один психологический вопрос: в какой момент Вы отключили бы своего робота. 
avatar
Rotor78, робот был бы выключен только в случае отклонения параметров от расчетных. А такие просадки довольно легко минимизируются, просто делаете следующий шаг в простроении стратегии…
avatar

Где ловушка:

Бернанковские рынки — на QE все прет вверх. Интересно бы посмотреть что-то дельта нейтральное.

Если понимать как работать волотильность по S&P, то лучше работать через стрип/стрэп

По сравниванию результатов лучше смотреть на системность, книжки ральфа винса весьма интересны. 

Какой оптимизатор используете?

Алексей К, не заметить конец QE сложно будет, пока эта эстафетная палочка по миру ходит. Торгуем то здесь и сейчас, текущие рынки...

По Strip/Strap не могу согласиться. Если есть понимание, то как раз можно разделить ноги у Strip/Strap и просчитывать их отдельно.

Ральфа Винса посмотрю, спасибо

Используется самописное ПО.
avatar

Quant-Invest, по стрипу имел ввиду: вола наверх стрип, вола вниз страп, таким образом просто реплицируеться VIX. 

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

Через IB работаете?

Алексей К, Strip/Strap моггу проверить, но не в рамках одного прогона, чтобы не влезать в код сильно. Представление можно получить.
Весь текущий проект — это обретение понимания что вообще происходит с опционами исторически. Скажу честно, многие вещи в которые верилось, уже пришлось пересмотреть. Алгоритм простой :
1 берем страйк, вычленяем прибыльное направление.
2 добавляем вход только на высокой/низкой воле
3 добавляем тейкпрофит
4 добавляем долив
Причем это вне основной системы разработки, там сначала статистический анализатор строит модель, а потом уже на бектесте проверяется эффективность рынка, потом п.3 и 4
Пока все ПО в статусе беты, и брутфорс не запускали. Нужно разобраться с метриками, иначе эти тысячи тестов нереально оценить будет адекватно.
Следующим щагом сделаем эволюционное оптимизирование — не уверен, что адекватная штука, как и нейронная сеть будет иметь склонность к переоптимизации, но может удастся нормальные фильтры поставить...

По опционам — да, через IB
avatar

Quant-Invest, Тейк профит я бы исключил из оптимизации, Вход и выход только по индикаторам. Это позволяет понять насколько модель адекватна. Стоп только как красная кнопка, в тесте тоже не нужен.

С нейросетями у меня ничего толком не вышло. Garch, HMM, тоже по сути подгонка. Как классификатор использую средний скользящий профит/скользящие отклонение(этакий скользящий шарп). Дальше ищу системы с максимальным профитом и макс шарпом, при этом должно быть много сделок. После этого станет ясно где кластеризируються параметры

Дальше 14 года не смотрю, юзаю только центральную IV

Алексей К, на акциях и фьючах да, но это же опционы, тут выход по индикаторам имхо автоматически приведет к суперубыткам, а время работает на нас. Вы пробовали именно на опционах параметрический выход? Он точно повышает ROI?
avatar

Quant-Invest, Только так и делаю. Просто торгуем разные вещи.

У вас по сути торговля OTM VIX. OTM гораздо сильнее подвержен скачкам волы.Как перекладываетесь из страйка в страйк не совсем понятно

Другими словами: Модель зависит от того как далеко вы от страйка(упрощенно, на самом деле от греков и проторговки)

0% от страйка одна модель
10% другая
20% третья

Микроструктуру смотрите?

Алексей К, не понял, при чем тут VIX, его конечно можно прикрутить как параметр входа, но зачем, когда есть IV конкретного опциона? Да, OTM гораздо сильнее подвержен скачкам волы и это облегчает вход в позицию.
Из страйка в страйк не перекладываемся, эти стратегии ближе к статистическому трейдингу чем к продвинутым опционным стратегиям.

Какая миктроструктура, тут дневные семплы :)
avatar
Quant-Invest, Лоль! не углядел что дневки. Держать опционы в реальности очень тяжело. ETF и фьюч все же разные вещи. На нефти заметнее

VIX по сути среднезвешенная по времени IV текущий и следующий центральный в итоге график более перевариваемый для индикаторов
Quant-Invest, протестируйте, пожалуйста, метод торговли Карен-супертрейдер. Думаю, Вам тоже интересно будет.
Александр Оцепируки, нашел вот это smart-lab.ru/blog/123584.php
но тут недостаточно данных чтобы тестировать.
Тест предполагает четкие правила, а там упоминаются такие вещи как
— как делает регулирование: начинает «думать» что делать если БА подходит к 30% зоне Probability of inthemoney. Есть такая функция в платформе Thinkorswim которую она использует.— также использует уровни Боллинжер, для тех.анализа
эти фразы я вообще не понимаю как интерпретировать.
В упрощенном виде могу протестировать, но предположительно — там профитная продажа путов и околонулевая продажа колов.
То есть частично стабилизированная суммарная, но довольно безграмотно, на мой взгляд.

Главное, что напрягает — сделала 40 лимов за 3 года то есть через обвал не проходила. Считайте, что реального теста стратегии на истории как бы не было, потому как все в одном состоянии рынка торговалось.

Если у вас есть формализованные правила — можно попробовать.
avatar
Quant-Invest, правила тут: www.tastytrade.com/tt/karen-the-supertrader
Конечно на 100% формализовать невозможно, придется делать допущения, как обычно.
Александр Оцепируки, спасибо, тут гораздо понятней, но вот это не совсем понял:
using Bollinger Bands to view the standard deviations in a graphical form, preferring to put on trades outside of two standard deviations to current prices
Имеется ввиду выбор страйков за второй сигмой от SMA20(как в болинджере дефолт) или от текущих цен? Или о чем-то еще речь?
avatar
Quant-Invest, все верно, от текущей цены отнимаем два стандартных отклонения, для расчета стандартных отклонений берем среднюю с 20 периодом по дневным закрытиям.
Александр Оцепируки, попробую прогнать…
avatar
да оно и 1000%  не предел, если модель достаточно нелинейная с большим кол-вом параметров — подогнать не проблема. только денег от этого у вас  в итоге станет меньше, а не больше.

любят же люди себя обманывать
avatar
Vitty, тут вроде 2 параметра, это много?
avatar

теги блога Quant-Invest

....все тэги



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