Избранное трейдера Andrey
Привет, сегодня вместо традиционного бэктеста разберем площадки, где можно подсмотреть идеи для торговых стратегий. Навеяно постом Eugene Logunov о литературе для алго-трейдера https://smart-lab.ru/blog/627444.php Теперь у нас есть методики, но где взять идеи? :)
Наши предыдущие бэктесты хоть и адаптированы под Россию и имеют отличия в реализации – все равно основываются на ранее выявленных закономерностях в США/Европе. Сразу скажу, что речь пойдет об исследованиях в открытом доступе. Если на работе/в университете есть доступ к EBSCO или Science Direct, то вы и сами знаете, где все посмотреть.
Зачем вообще читать академические ресерчи, если фонд LTCM показал, что кол-во цитирований и премий спорно соотносится с успехом на рынке?
Хорошие ресерчи дают базовые идеи о том, что и почему работало в прошлом, на каких стадиях и почему перестало. Да, в них есть реализация или дизайн исполнения, но обычно он сырой и его всегда можно поменять, сохранив базовую идею. В отличие от дискуссий в рунете, очень сложно опубликовать что-то без пруфов, а проверка устойчивости не ограничивается t-статистикой > 3. Сам текст хорошо структурирован, методика либо объясняется полностью, либо ссылается на такой текст. Авторы в основном исследователи, которые выполняя свою работу попутно дают подсказки практикам. Но встречаются и практики, например, аналитики хедж фонда AQR сейчас главные поставщики контента по факторным стратегиям или ученые Dimson и Ibbotson, которые параллельно пишут исследования для инвестиционных банков. Если желание почитать что-то заумное осталось, то сформулируйте идею/биржевую аномалию, которую хотите проверить (например, покупка акций с наибольшими дивидендами) и возвращайтесь к этому тексту.
Основные страновые индексы давно стали мерилом доходности фондового рынка той или иной страны. В России таким индексом является Индекс МосБиржи (IMOEX). Именно по нему и определяют доходность Российского фондового рынка в рублях, а также делают выводы о долгосрочной доходности (индекс существует с 22 сентября 1997 года)
В общем не плохой вариант, но есть некие рамки, которые хотелось расширить, чтобы более детально проанализировать прошлую доходность рынка:
1. Почему-то принято измерять годовую доходность по календарным годам. Почему не считать по 1 июля?
2. Данный индекс не учитывает, выплаченных дивидендов. Обычно делают допущения типа – «и прибавим к доходности индекса 5% дивидендной доходности». Почему именно 5%? Вот посмотрите тут, за 6 лет дивдоходность была постоянно разной.
3. Так как индекс МосБиржи не учитывает дивиденды, то он и не учитывает налоги с этих дивидендов.
4. И наконец, самое главное, на чем мы хотим сосредоточиться. Данный индекс показывает номинальную доходность, а не реальную (с корректировкой на инфляцию)
Итак, технология исследования:
Итак, технология исследования:
1. Вместо индекса МосБиржи мы взяли Индекс МосБиржи полной доходности «нетто» (по налоговым ставкам российских организаций) — MCFTRR. Это тот же самый индекс, но он учитывает все выплаченные дивиденды по компаниям, входящим в индекс, а также учитывает налоги, которые необходимо выплатить по данным дивидендам. Этим ходом убираем два недочета, описанные выше.
2. Индекс полной доходности начал рассчитываться 17 лет назад, с 26 февраля 2003 года. Но нам мало 17 годовых отрезков для анализа. Поэтому берем годовые отрезки со смещением в месяц. То есть первый годовой отрезок с марта 2003 по март 2004, второй с апреля 2003 по апрель 2004 и так далее, всего получаем 196 годовых отрезков. Тоже самое для 2-х годовых отрезков, 3-х годовых и так далее до 17-летних отрезков. Итого получаем 1700 временных окон для расчета доходностей. Это не так много, как на американском фондовом рынке, но уже в 100 раз больше, чем в исходных данных.
3. Рассчитываем не только номинальную, но и реальную доходность.
Вот традиционный расчет номинальной доходности Индекса полной доходности. Средняя номинальная доходность с 1 января 2004 по 31 декабря 2019 г составила 15,1%. При этом волатильность по годам очень высокая. В 2009 году номинальная доходность составила 125%, а в 2008 минус 66,7%. «Радует глаз», что из 16 лет всего 3 были убыточными.
------------------------------------------------------------------------------------------------------- --- Функция получения результатов свечей в .CSV в виде: --- <Инструмент> <Дата> <Время> <Цена_Open> <Цена_High> <Цена_Low> <Цена_Close> <Объем> --- BRN0 1 20200605 200100 42.15 42.16 42.1 42.1 2150 ------------------------------------------------------------------------------------------------------- is_run=true -- Параметры tInstr="BRN0" --код инструмента/бумаги classcode="SPBFUT" --код класса инструмента/бумаги, если нужен фондовый рынок - вводить TQBR вместо SPBFUT iNterval=INTERVAL_M1 --таймфрейм -- доступные таймфреймы указаны в справке Quik (qlua.chm в папке с quik) по поиску CreateDataSource -- пример INTERVAL_H1 corrTime=3 --Время МСК. C сервера время приходит без корректировки. pFile="w:\\temp" --путь, где будет создаваться файл cBars=10 --сколько свечей надо вывести --настройка параметров function OnInit() out_file=io.open(pFile .."\\"..tostring(tInstr)..".csv","w") is_run=(out_file~=nil) ds=CreateDataSource(classcode, tInstr, iNterval ) --создаем источник данных ds:SetUpdateCallback(NewChartData) --обновление последних данных end function strText(int) local m=tostring(int) local mLen=string.len(int) if mLen==1 then Output="0" .. tostring(m) else Output=m end return Output end function main() while is_run do local Size=ds:Size() --Получение количества всех свечей в источнике данных if cBars>Size then cBars=Size-1 end for i=Size-cBars, Size, 1 do local O=ds:O(i) -- Значение цена открытия свечи local H=ds:H(i) -- Значение High для свечи local L=ds:L(i) -- Значение Low для свечи local C=ds:C(i) -- Значение Close для свечи local V=ds:V(i) -- Значение Volume для свечи local T=ds:T(i) -- Значение Time для свечи sTime=os.time(T) datetime=os.date("!*t",sTime) --вывод в файл out_file:write(tInstr..";"..tostring(iNterval)..";"..tostring(datetime.year)..tostring(strText(datetime.month))..tostring(strText(datetime.day))..";"..tostring(strText(datetime.hour + corrTime))..tostring(strText(datetime.min))..tostring(strText(datetime.sec))..";"..tostring(O)..";"..tostring(H)..";"..tostring(L)..";"..tostring©..";"..tostring(V).."\n") out_file:flush() --запись данных end out_file:close() sleep(1000) -- приостановка на 1 секунду out_file=io.open(pFile .."\\"..tostring(tInstr)..".csv","w") end end
Привет, новая неделя – новый бэктест факторной стратегии. На этот раз не только на Мосбирже и не только в акциях. Первоначально тут планировался большой текст про взаимодействие Моментума, торгового оборота и волатильности на неликвидных рынках и последующий Шарп сильно за 2.
Но в последний момент решили выпускать стратегии по нарастанию их сложности. Сегодня речь не об «иксах», но об очень устойчивой штуке – получению доходности выше рыночной за длинный промежуток по разным классам активов без принятия рисков отдельных компаний или стран.
Традиционный график с результатом перед стеной текста:
Источник: Sentimetrica
Синяя линия – модификация Моментума на глобальных рынках, зеленая – индекс глобальных акций MSCI World, красная – равновзвешенный портфель из акций, казначейских векселей США и сырьевой корзины.
Из всех стратегий американских биржевых гуру – самыми полюбившимися для меня стали идеи получения ВСЕЙ рыночной доходности Джона Богла и CANSLIM Уильяма Онил. У фраз «Индекс в долгосроке всегда растет» и «Лучшие компании остаются лучшими» много общего, верно? Попробуем оформить объединенную стратегию на основе классиков.
Привет, новая неделя – новый бэктест факторной стратегии на Мосбирже. В прошлый раз была проверена стратегия Value через мультипликаторы P/E и P/BV https://smart-lab.ru/blog/609357.php В этот раз мы проверили стратегию Momentum на российских акциях.
Суть ее очень проста – покупаем акции, которые сильнее всего выросли за последние 6 месяцев и шортим акции с худшей динамикой цены за тот же период. Стратегия получается рыночно нейтральной (в теории, на самом деле — корреляция с рынком очевидна) и если у такого лонг-шорт портфеля есть положительная доходность, то мы можем сказать, что на Мосбирже есть моментум эффект.
Воспользовавшись поиском по Смартлабу можно найти несколько интересных исследований по моментуму (если что-то упущено, пожалуйста, дайте ссылку в комментариях) – «Есть ли сила в моментуме» от at6 https://smart-lab.ru/blog/596080.php и «Как обогнать индекс (пример выигрышной торговой стратегии)» от AlexChi https://smart-lab.ru/blog/499362.php
Привет, в этом исследовании протестируем идею покупки недооцененных акций на нашем рынке по мультипликаторам P/E и P/BV за последние 17 лет. Достаточный срок, который включает периоды роста, спадов и нудного боковика. До 2004г. количество ликвидных бумаг было совсем скромным, а основная активность концентрировалась в РАО ЕЭС.
Обычно упоминанием низких мультипликаторов заканчивается инвестиционная идея от брокеров или телеграм каналов: «Компания Х заканчивает цикл инвестиций в новое производство, ожидаем существенного роста бизнеса. Также у компании самый низкий P/E в отрасли, хороший момент для покупки». Не проще ли просто купить 25% лучших ликвидных акций с наименьшим P/E, раз в месяц перетряхивать портфель и получать доходность выше рынка? После тестов этой стратегии на Python выводы не столь однозначны.
Моментальная оговорка – авторские инвестиционные идеи, драйверы и опыт сложно загнать в рамки механического бэктеста, поэтому они никак не учитываются в разборе. Линчевание и погружение в бизнес по Баффету эффективно проводить, когда ты управляющий крупнейшего фонда и имеешь прямой контакт с директорами компаний. Покупка кофе на остановках Газпромнефти имеет спорное влияние на инвестиционный анализ, а финансовые отчеты доступны каждому.
В продолжении разговора об рыночных факторах-аномалиях(начало было здесь, про дивиденды), хочу немного написать о другом рыночном факторе — моментуме. Для начала, вот ссылка на очень хорошую статью — «The Quantitative Momentum Investing Philosophy» из блога компании Alpha Architect, рекомендую прочесть. В ней изложены основные принципы, на основе которых компания делает свои моментум-фонды. Если совсем кратко изложить суть написанного, то для акций, на горизонте от 6 до 12 месяцев, наблюдается образование аномалии моментума. Иными словами, если цены акции начали рост, и уже растут больше 6 месяцев, то рост с большой вероятностью будет продолжен. Эта аномалия описана во множестве академических работ и используется во многих рыночных моделях, например моделях Фамы-Френча(см. ссылки в статье). В этих же академических работах также отмечается, что на этом многомесячном тренде роста иногда возникает обратное контр-трендовое движение, длительностью до месяца. Чтобы отсечь этот «противоход», часто используют определение моментума в следующем виде: общий рост за N месяцев, без учета последнего(самого недавнего) месяца. В модели Фамы-Френча используется определение моментума — 12 минус 1, т.е. рост за 12 месяцев, без учета последнего месяца. Этот же моментум часто называют «12_2 моментум», по месяцам вычисления.