Quant-Investhttps://mfd.ru/blogs/feeds/posts/414Интересен статистический анализ, алгоритмическая торговля, бэктестинг. Доверяю только досконально просчитанным стратегиям.Sun, 14 Jul 2024 09:22:50 +0300https://mfd.ru/forum/user/default.pngQuant-Investhttps://mfd.ru/blogs/feeds/posts/41423521https://mfd.ru/blogs/posts/view/?id=23521Тренд - друг или враг-3: Паттерн.<p>В прошлых постах я пытался получить численное подтверждение того, что тренд скорее всего будет продолжаться. Не люблю ничего принимать на веру, особенно если это поддается проверке. Перейдя к учету предыдущего движения, мы фактически получили упрощенный паттерн — по трем точкам, — который должен был описать следующее состояние рынка:</p><p><img alt="Тренд - друг или враг-3 Паттерн" src="/static/content/blogpost/23521/110-1-orig.jpg" style="float: left;" /></p><p>На самом же деле при такой модели достаточно свободы, чтобы в выборку попадали случаи, которые мы в здравом уме туда не включили бы — например, с очень большой просадкой на 1 этапе падения. Вот пример того, что формально также соответствует подобному описанию:</p><p><img alt="Тренд - друг или враг-3 Паттерн" src="/static/content/blogpost/23521/110-2-orig.jpg" style="float: left;" /></p><p>Выход виделся только один: забросить супершуструю технологию смещения временных рядов, и применить скользящее окно для построения свечек старшего таймфрейма. Производительность сразу упала на порядок, но что не сделаешь ради истины... В результате модель начала тренда приняла следующий вид:</p><p>-За период А до PivotPoint, HI(A) был выше PivotPointLOW на величину threshold(A)</p><p>-За период B после PivotPoint HI(B) был выше PivotPointLOW на величину threshold(B)</p><p>-PivotPointLOW является LOW за период AB</p><p>-Hi последнего бара B = HI(B)</p><p>Таким образом, гарантированно обозначена точка разворота как локальный лоу паттерна, а последний бар — как максимум с точки разворота.</p><p>Подходящие периоды отмечены на графике(период А в данном примере может быть любой длины, т.к. нет случаев значений ниже PivotPointLOW):</p><p><img alt="Тренд - друг или враг-3 Паттерн" src="/static/content/blogpost/23521/110-3-orig.png" style="float: left;" /></p><p>На данном примере будут учтены тренды длиной 1,2,3,6,8,23,26... дней.</p><p>Возьмем для примера тренд длиной 23 дня и таким же периодом результата:</p><p><img alt="Тренд - друг или враг-3 Паттерн" src="/static/content/blogpost/23521/110-4-orig.png" style="float: left;" /></p><p>В данном примере 10%-е падение и 7%-й рост, для такого примера посчитаем вероятности по старой нашей схеме, по трем точкам, учитывая только как минимум 2%-й рост и взяв 2-кратный период результатов:</p><p><img alt="Тренд - друг или враг-3 Паттерн" src="/static/content/blogpost/23521/110-5-orig.png" style="float: left;" /></p><p>и тот же пример, но уже с определением по паттерну:</p><p><img alt="Тренд - друг или враг-3 Паттерн" src="/static/content/blogpost/23521/110-6-orig.png" style="float: left;" /></p><p>Выборка существенно уменьшилась, особенно на длинных сроках(зеленые и красные линии, правая шкала Y). Видим, что в таком виде паттерн довольно редкий. Для примера уменьшим пороговые значения до 5% падения, 3% роста и 1% целевого результата по трем точкам:</p><p><img alt="Тренд - друг или враг-3 Паттерн" src="/static/content/blogpost/23521/110-7-orig.png" style="float: left;" /></p><p>и через паттерн:</p><p><img alt="Тренд - друг или враг-3 Паттерн" src="/static/content/blogpost/23521/110-8-orig.png" style="float: left;" /></p><p>и нам остается еще один маленький шаг для того чтобы понять, торгуемы ли эти закономерности. Но об этом чуть позже.</p>23398https://mfd.ru/blogs/posts/view/?id=23398Тренд - друг или враг-2: Систематическая ошибка исследования.<p>В предыдущем посте <a href="http://forum.mfd.ru/blogs/posts/view/?id=23123" target="_blank" title="Тренд - друг или враг? Автокорреляция с человеческим лицом.">http://forum.mfd.ru/blogs/posts/view/?id=23123</a> я пытался применять метод автокорреляции т.е. анализа смещенного временного ряда, пытаясь использовать его для вычисления смещения вероятности продолжения тренда от среднего значения. Наиболее продвинутые могли заметить, что выборка, которую мы там анализировали, содержала все формально соответствующие условию отрезки, что скорее всего, далеко от того, что себе представляло большинство читателей. Дело в том, что по критерию &#171;изменения за период&#187; программа отбирала примерно следующее:</p><p><img alt="Тренд - друг или враг-2 : Систематическая ошибка исследования." src="/static/content/blogpost/23398/trend2-1.png" style="float: left;" /></p> <p>т.е. результаты коротких периодов были многократно усилены за счет длинных, в которые они входили. Иными словами, была допущена систематическая ошибка исследования. Попробуем исправить её, добавив дополнительную &#171;ногу&#187; в паттерн, перейдя от \/ к /\/ паттерну. Два периода будут описывать условия вхождения(разворот тренда), один — результирующий. Порог прежний — минимальное изменение 2% в каждом из предыдущих периодов, 0.1% в результирующем. Результат для SPY:</p><p><img alt="Тренд - друг или враг-2 : Систематическая ошибка исследования." src="/static/content/blogpost/23398/trend2-2.png" style="float: left;" /></p><p>для пущего контроля выведем на график количество вхождений для роста (зеленая линия) и падения (красная).</p><p>Однако понятно, что 0.1% это не продолжение тренда, поэтому проверим, как часто происходит продолжение на величину более 1%:</p><p><img alt="Тренд - друг или враг-2 : Систематическая ошибка исследования." src="/static/content/blogpost/23398/trend2-3.png" style="float: left;" /></p><p>Видно, что закрытие потенциально торгового периода не радует вероятностью в нашу пользу, в большинстве случаев цель не будет достинута на закрытии. Но ведь нам нужно просто выйти по тейку, верно? Добавляем учет Hi/Low:</p><p><img alt="Тренд - друг или враг-2 : Систематическая ошибка исследования." src="/static/content/blogpost/23398/trend2-4.png" style="float: left;" /></p><p>Правда, мы вышли за рамки метода смещения временных рядов, но зато видим существенное отклонение вероятности на 1-5 дневных периодах.</p><p>По человечески полученные данные должны звучать так:</p><p>Если курс вчера упал более чем на 2 %, а сегодня вырос более чем на 2%, то с вероятностью 75% завтра он закроется выше +1% от сегодняшнего закрытия. </p><p>Если курс вчера вырос более чем на 2 %, а сегодня упал более чем на 2%, то с вероятностью 85% завтра он не упадет ниже -1% от сегодняшнего закрытия.</p><p>И тут возникает вопрос — а ликвидированы ли тут все систематические ошибки исследования?</p>23123https://mfd.ru/blogs/posts/view/?id=23123Тренд - друг или враг? Автокорреляция с человеческим лицом.<blockquote> <p><em>Автокорреляция — статистическая взаимосвязь между последовательностями величин одного ряда, взятыми со сдвигом, например, по времени.</em></p> </blockquote> <p>Если подать данные в стандартные функции расчета автокорреляции, на выходе получим высоконаучную хрень, которую непонятно как интерпретировать в реальном мире. Поэтому переписываем по-человечески, чтобы она измеряла что? Правильно, <strong>вероятность продолжения тренда</strong>, т.е. нужное, полезное и понятное большинству трейдеров качество. :)</p><p>А дабы было еще понятней, в том числе полному большинству, сдвинем шкалу вероятности, чтобы 50% оказался на 0%; таким образом, будем отображать смещение вероятности от средней отметки 50%. Столбик вниз — значит, вероятность меньше 50%, и вплоть до 0. Вверх — соответственно, больше.</p> <p><img alt="Тренд - друг или враг Автокорреляция с человеческим лицом" src="/static/content/blogpost/23123/trend1.png" style="float: left;" /></p> <p>На графике для SPY по оси Х — тестируемый период в днях, по оси У — сдвиг вероятности от 50%, например, для 10 дневного периода роста(более 2%) вероятность того, что через 10 дней курс будет еще выше — 64%, т.е. смещение на 9% (что и видим на оси У). Большие периоды:</p> <p><img alt="Тренд - друг или враг Автокорреляция с человеческим лицом" src="/static/content/blogpost/23123/trend2.png" style="float: left;" /></p> <p>Как видим, исторически тренды роста в SPY длиной до 60 торговых дней скорее продолжаются, тренды падения скорее прекратяться, чем продолжаться. Возьмем б<em><strong>О</strong></em>льший диапазон:</p> <p><img alt="Тренд - друг или враг Автокорреляция с человеческим лицом" src="/static/content/blogpost/23123/trend3.png" style="float: left;" /></p> <p>Возьмем двойной и половинный OOS-периоды:</p> <p><img alt="Тренд - друг или враг Автокорреляция с человеческим лицом" src="/static/content/blogpost/23123/trend4.png" style="float: left;" /></p> <p><img alt="Тренд - друг или враг Автокорреляция с человеческим лицом" src="/static/content/blogpost/23123/trend5.png" style="float: left;" /></p> <p>Делаем выводы :)</p> <p>А вот так выглядят тенденции у VIX &amp; VXX:</p> <p><img alt="Тренд - друг или враг Автокорреляция с человеческим лицом" src="/static/content/blogpost/23123/trend6.png" style="float: left;" /></p> <p><img alt="Тренд - друг или враг Автокорреляция с человеческим лицом" src="/static/content/blogpost/23123/trend7.png" style="float: left;" /></p> <p>По последнему графику сразу видно, что актив имеет тенденцию к падению независимо от направления тренда.</p><p>Рост скорее всего прекратится, падение — будет продолжаться. В отличие от самого VIX.</p>23115https://mfd.ru/blogs/posts/view/?id=23115Не стреляйте в Черных Лебедей<p>С легкой подачи Талеба по просторам трейдонета ходит стойкое ощущение, что можно взять опционную двухстволку, БАБАХ!</p> <p>И Черный Лебедь подбит одной дробинкой.</p> <p><img alt="Не стреляйте в Черных Лебедей" src="/static/content/blogpost/23115/black_swan_1.jpg" style="float: left;" /></p> <p>На практике это выливается в идеи регулярно покупать путы на дальние страйки.</p> <p>Сколько я ни пытался это проверять, на SPY (ETF SP500) результат неизменно плачевный — ЧЛ ранен, но из последних сил улетает, оставляя нас без патронов. Эквити примерно такая:</p> <p><img alt="Не стреляйте в Черных Лебедей" src="/static/content/blogpost/23115/black_swan_2-equity.png" style="float: left;" /></p> <p>Так что предлагаю сыграть в игру.</p> <p>У каждого 2 патрона(то бишь идеи) как подбить Черного Лебедя на SPY, я провожу тест и видим результаты. Тестируем голые путы.</p> <p>Можно выбрать страйки в % от текущей БА</p> <p>Можно указать диапазон IV для входа (по ставке 0.25)</p> <p>Можно отобрать точки входа по &#171;цене к МА&#187; — ниже, выше, пересечение вниз/вверх</p> <p>Можно отобрать входы по результатам прошлого периода</p> <p>Можно отобрать хаи и лои как исторические, так и за период, или в заданном диапазоне, ввобще настройка входа выглядит так:</p> <p><img alt="Не стреляйте в Черных Лебедей" src="/static/content/blogpost/23115/black_swan_3.jpg" style="float: left;" /></p> <p>Пояснения к фильтрам:</p> <p><img alt="Не стреляйте в Черных Лебедей" src="/static/content/blogpost/23115/black_swan_4-filtr1.jpg" style="float: left;" /></p> <p><img alt="Не стреляйте в Черных Лебедей" src="/static/content/blogpost/23115/black_swan_5-filtr2.jpg" style="float: left;" /></p> <p>P.S. Возможна ситуация, когда ваши патроны не подойдут к нашей двухстволке.</p>23070https://mfd.ru/blogs/posts/view/?id=23070Как изменился рынок за 65 лет: взгляд кванта.<p><img alt="Как изменился рынок за 65 лет взгляд кванта" src="/static/content/blogpost/23070/market_65-1_stat-all.png" style="float: left;" /></p><p>Знакомьтесь, это статистический профиль годовых результатов S&amp;P500 за всю историю.</p><p>Я решил наглядно показать, что утверждение &#171;раньше рынки были другие&#187; не соответствует действительности.</p><p>В лучших традициях квантов построил гистограмму распределения доходностей за период и... был неправ.</p><p>На графике распределения дневной доходности мы видим четко прослеживающуюся тенденцию</p><p><img alt="Как изменился рынок за 65 лет взгляд кванта" src="/static/content/blogpost/23070/market_65-2_day.png" style="float: left;" /></p><p>увеличения дневной волатильности. Посмотрике как растут прозрачные столбики слева направо, каждый представляет собой 13 лет с 1950 по 2015. Поскольку используется округление &#171;от нуля&#187;, &quot;-1&quot; следует понимать как &#171;менее -1&#187; а &#171;1&#187; следует понимать как &#171;более 1&#187;. При этом результаты в точке 0 некорректны и в данном случае не важны. На большинстве графиков обрезаны хвосты, для лучшей читаемости значимого отрезка. Рассмотрим недельное распределение:</p><p><img alt="Как изменился рынок за 65 лет взгляд кванта" src="/static/content/blogpost/23070/market_65-3_week.png" style="float: left;" /></p><p>По графику также можно говорить о возрастающей волатильности, это видно по значениям ниже -3 и +5, но в целом результаты уже более однородны.</p><p>Месячное распределение:</p><p><img alt="Как изменился рынок за 65 лет взгляд кванта" src="/static/content/blogpost/23070/market_65-4_month.png" style="float: left;" /></p><p>А вот тут уже картина другая. Не прослеживается тенденции, просто разброд и шатание результатов.</p><p>Годовое распределение (полный график — в начале статьи):</p><p><img alt="Как изменился рынок за 65 лет взгляд кванта" src="/static/content/blogpost/23070/market_65-5_year.png" style="float: left;" /></p><p>Никакого изменения не прослеживается, результаты остаются теми же, в пределах нормального отклонения.</p><p><em><strong>Вывод:</strong></em> За последние 65 лет неуклонно росла дневная волатильность S&amp;P500, этот эффект сходит на нет примерно на недельном периоде.</p><p>Поведение рынков на месячном и годовом временных горизонтах не изменилось.</p><p>Правы оказались все!</p><p>С точки зрения интрадейшиков изменения значительны.</p><p>С точки зрения среднесрочников и долгосрочников — ничего не изменилось.</p>22999https://mfd.ru/blogs/posts/view/?id=22999Оптимизируем алгостратегию: 70% годовых не предел!<p>Возьмем за основу исходный результат продажи месячных путов на SPY c доходностью 24% годовых и попробуем выжать максимум.</p><p>Изначально результаты теста были следующие:</p><p><img alt="Тайная жизнь опционов SPY: месячные, страйк=5% OTM" src="/static/content/blogpost/22999/sell_put_5.png" style="float: left;" /></p><p>Теперь оставим только входы на высокой волатильности: </p><p><img alt="Оптимизируем алгостратегию: 70% годовых не предел!" src="/static/content/blogpost/22999/optim70-1.png" style="float: left;" /></p><p>Доходность возросла до 44%</p><p>Пробуем не держать до экспирации, а добавить тейки:</p><p><img alt="Оптимизируем алгостратегию: 70% годовых не предел!" src="/static/content/blogpost/22999/optim70-2.png" style="float: left;" /></p><p>И 70% годовых в валюте ждут своего трейдера :)</p><p>Неплохо, учитывая что мы 3 раза наугад тыкнули пальчиком...</p><p>Но нет предела лени, да и палец не железный, поэтому пишем API к нашему тестеру, навешиваем управляющий модуль и начинаем прогонять пачками, получая результаты теста в табличке. И тут встает вопрос — а как, собственно, сравнивать результаты для присвоения конкретной стратегии того или иного ранга? Получили такие результаты:</p><p><img alt="Оптимизируем алгостратегию: 70% годовых не предел!" src="/static/content/blogpost/22999/optim70_tab.jpg" style="float: left;" /></p><p>Самый главный тут EV(годовой прибыли) другими словами ROI.</p><p>Но ведь нужно еще учесть плавность эквити, просадки и т.д.</p><p>Кто как приводит все к единому числу?</p>22996https://mfd.ru/blogs/posts/view/?id=22996Тайная жизнь опционов SPY: месячные, страйк=5% OTM<p>Мы продолжаем исследовать, как ведут себя месячные опционы на SPY (это крупнейший ETF на индекс SP500).</p><p>Исследование отвечает на вопрос: <em><strong>&#171;Что будет, если всегда покупать 1 месячный опцион в каждой серии со страйком на х% вне денег(в деньгах)?&#187;</strong></em> Также по ходу станет понятно, на каких опционах SPY в принципе можно зарабатывать и когда, а на каких — нет; и нужно ли их продавать или покупать.</p><p>Рассматривая покупку/продажу страйков на 5 % вне денег, мы видим картину, отличную от опционов на деньгах, рассмотренных в предыдущем посте. Редкие, но значительные изменения прибыли так и просятся быть вычлененными из общего ряда параметрическим фильтром с последующей упаковкой в отдельную стратегию. Впрочем, это уже отдельная тема.</p><p>Продажа путов:</p><p><img alt="sell_put_5" src="/static/content/blogpost/22996/sell_put_5.png" style="float: left;" /></p><p>Продажа коллов, в этот раз решено было применить фильтр по подразумеваемой доходности на уровне 10% годовых, потому что за меньшее — ну просто смысла никакого нет влезать в продажу опционов, соответственно появились периоды без сделок(и это к лучшему):</p><p><img alt="sell_call_5" src="/static/content/blogpost/22996/sell_call_5.png" style="float: left;" /></p><p>Результаты покупки коллов и путов одним графиком, с ними и так все понятно (синяя — результирующая):</p><p><img alt="buy_put-call_5" src="/static/content/blogpost/22996/buy_put-call_5.png" style="float: left;" /></p><p>Выводы: в этих страйках имеет смысл фильтровать точки входа для продажи путов, что и сделаем следующим тестом.</p><p><em><strong>Методика тестирования:</strong></em></p><p>Покупается 1 контракт максимально близкий к деньгам в заданном диапазоне страйков (в % от цены акции), как только входит в диапазон временных рамок. Для месячных это от 31 до 28 дней до экспирации.</p><p>Опцион удерживается до экспирации.</p><p>Как только появляется следующая серия в диапазоне, она приобретается независимо от наличия открытых позиций.</p><p>Практически на всех тестах будет видно кратное усиление тренда в 2013-2016гг, что связано с увеличением числа опционных серий, таким образом, новый опцион стал покупаться/продаваться не раз за месяц, а 4-5 раз.</p>22983https://mfd.ru/blogs/posts/view/?id=22983Опционный грааль<p>Итак, продаем 7-30ти дневные коллы на SPY на 30-дневном хае.</p><p>Не более одного в день, не более одного идентичного контракта одновременно.</p><p>Выбираем максимально вне денег, максимально короткий из подходящих по условиям.</p><p>Страйки на 4-12% выше рынка</p><p>Минимальная теоретическая годовая доходность на открытии — 18%</p><p>Тейкпрофит 20%</p><p><img alt="опционный грааль" src="/static/content/blogpost/22983/SPY_option_backtest_2006-2015_optgra.png" style="float: left;" /></p><p>В случае, если цена проданного выросла более чем на 200% тот же самый контракт продается еще раз.</p><p>Если после этой фразы возникло желание завопить &#171;мартингейл&#187; или &#171;усреднение&#187; — не позорьтесь, подучите матчасть.</p><p>Особо дотошные при доводке стратегии могут учесть следующие вероятности:</p><p>Вероятность входа в деньги проданного 3-х недельного колла — на экспирации 2.62%, до эксп.5.34%</p><p>2-х недельного — на экспирации 0.1%, до эксп.0.3%</p><p>В тесте все сделки закрыты по тейкпрофиту.</p><p>Повышение тейкпрофита увеличит общую доходность на треть, но возникнут убыточные сделки.</p>22976https://mfd.ru/blogs/posts/view/?id=22976Тайная жизнь опционов SPY: 50% годовых<p>В предыдущем посте родилась идея продавать на высокой волатильности, покупать на низкой.</p> <p>По результатам теста, покупка на низкой IV что коллов, что путов, ничего хорошего не приносит.</p> <p>А вот с продажей ситуация иная:</p> <p><img alt="sell_put_50" src="/static/content/blogpost/22976/sell_put_50.png" style="float: left;" /></p> <p>В путах довольно частая загрузка, и достойная прибыль в 50% годовых на вложенный капитал при адекватном риске, который реализовывался только на редком событии 2008 года. С коллами все плохо:</p> <p><img alt="sell_call_50" src="/static/content/blogpost/22976/sell_call_50.png" style="float: left;" /></p>22962https://mfd.ru/blogs/posts/view/?id=22962Можно ли давать такому роботу денег?<p>Коллеги, какие показатели, метрики вы смотрите, прежде чем решить перевести робота на реал?</p> <p>Допустим, получаем такие результаты:</p> <p>(UPD: на демо-счете в реальном времени, не на бэктесте!)</p> <p><img alt="" src="/static/content/blogpost/22962/1day.gif" style="float: left;" /></p> <p>Можно ли давать такому роботу денег?</p> <p>За период в 1 год, форвардный тест на демо:</p> <p><img alt="" src="/static/content/blogpost/22962/1year.gif" style="float: left;" /></p> <p>Можно ли давать такому роботу денег?</p> <p>Вы бы рискнули запустить такого робота?</p> <p>Какие метрики вы бы посмотрели перед запуском и почему?</p>22726https://mfd.ru/blogs/posts/view/?id=22726Тайная жизнь опционов SPY: месячные, страйк=0% OTM<p>Приглашаю всех к обсуждению весьма перспективного исследования.</p> <p>В серии следующих постов будут раскрыты детали того, как ведут себя месячные опционы на SPY (это крупнейший ETF на индекс SP500).</p><p>Исследование отвечает на вопрос: <em><strong>&quot;Что будет, если всегда покупать 1 месячный опцион в каждой серии со страйком на х% вне денег(в деньгах)?&quot;</strong></em></p><p>Также по ходу станет понятно, на каких опционах SPY в принципе можно зарабатывать и когда, а на каких - нет; и нужно ли их продавать или покупать.</p> <p><em><strong>Методика тестирования:</strong></em></p><p>Покупается 1 контракт максимально близкий к деньгам в заданном диапазоне страйков (в % от цены акции), как только входит в диапазон временных рамок. Для месячных это от 31 до 28 дней до экспирации.</p><p>Опцион удерживается до экспирации.</p><p>Как только появляется следующая серия в диапазоне, она приобретается независимо от наличия открытых позиций.</p><p>Практически на всех тестах будет видно кратное усиление тренда в 2013-2016гг, что связано с увеличением числа опционных серий, таким образом, новый опцион стал покупаться не раз за месяц, а 4-5 раз.</p><p>Все покупки по рыночной цене. Есть техническая возможность прогнать по Middle Price или иммитировать заход лимитками, что увеличит результативность теста, но принципиально ничего не меняет.</p><p>Если вы можете предложить более корректный метод тестирования - милости просим.</p> <p>Итак, покупка коллов:</p><p><img alt="buy call 0 IDBT SPY(L64)2006_2015" src="/static/content/blogpost/22726/buy%20call%200%20IDBT%20SPY(L64)2006_2015.png" style="float: left;" /></p><p>Чтобы было понятней, вот лог сделок:</p><p><img alt="buy call 0 log" src="/static/content/blogpost/22726/buy%20call%200%20log%20.jpg" style="float: left;" /></p><p>Продажа коллов:</p><p><img alt="sell call 0 IDBT SPY(S-9)2006_2015" src="/static/content/blogpost/22726/sell%20call%200%20IDBT%20SPY(S-9)2006_2015.png" style="float: left;" /></p><p>Покупка путов:</p><p><img alt="buy put 0 IDBT SPY(L-513)2006_2015" src="/static/content/blogpost/22726/buy%20put%200%20IDBT%20SPY(L-513)2006_2015.png" style="float: left;" /></p><p>Продажа путов:</p><p><img alt="sell put 0 IDBT SPY(S38)2006_2015" src="/static/content/blogpost/22726/sell%20put%200%20IDBT%20SPY(S38)2006_2015.png" style="float: left;" /></p> <p>Выводы: пишем в комменты, пора и самим думать :)</p>