Как легко и просто обыграть рынок. Momentum and Portfolio Optimization.
И так, в прошлом посте был представлен небольшой фреймворк на питоне для тестирования портфелей, а в этом посмотрим как же простейшая стратегия на базе импульса может сохранить нам нервы и деньги.
И так,
Возмем 500 бумаг которые на данный момент находятся в индексе snp500.
Каждый месяц будем отбирать 10 бумаг по принципу силы импульса за последний год. Имеется ввиду процентное изменение.
Вторая стратегия будем отбирать 10 бумаг, но импульс будем считать как разницу цены и скользящей стредней с периодом 252.
Ребалансировка портфеля через каждые 22 дня.
Только лонг.
Протестируем за 10 лет начиная с 2005, и получим вот такой прекрасный результат:
Общая доходность в 10 раз выше индекса, годовая в 5. Однако видим что и просадка у нас повыше.
Но мы же все делаем на питоне, где полно всяких полезных пакетов. Воспользуемся библиотекой PyPortfolioOpt, и добавим попробуем эти же две стратегии с импользованием следующих методов оптимизации портфелей: CLA, HRP, CVaR, DVaR
И посмотрим на результат:
Тада!!! Мы видим что некоторые методы оптимизации сработали довольно хорошо, и теперь наша просадка ниже чем если бы мы инвестировали в индекс.
Интересно что такого рода стратегии работали всегда и продолжают работать, а последнии два года так вообще взлет доходности.
MPlus, Ноборот вы и имеете ввиду выбирать бумаги которые показывают наихудший импульс? Сработает и даже лучше :).
Тут правда есть момент, я выбрал бумаги которые сейчас котируются в индексе… т.е. как бы те у которых был делистинг мы уже исключили… но это не большая беда )
MPlus, ну это довольно спорное утверждение… На чем основано, если не секрет?
Портфельное инвестирование не отменяет шорты и любые другие виды активного управления. Да и всегда есть что то что растет, ну и так же никто же не расчитывает на один или два года… период выбран в 10 лет не случайно. Но в целом, по моментуму, мы почти всегда обыгрываем рынок. Убыток меньше чем по индексу уже выигрыш у рынка.
Важным моментом тут является волатильность и просадка портфеля… в данном тесте у лучшей стратегии просадка длится больше 2,5 лет, что с одной стороны довольно таки долгий период, с другой стороны это меньше чем по индексу.
В любом случае это лишь пример простой стратегии, без каких либо усложнений.
CloseToAlgoTrading, Открыл здесь два виртуальные портфеля. Это 70 лучших доходных бумаг прошлого 21'года. Портфель Сектор+ это те кто шли выше индекса, Сектор- ниже индекса, но вполне прибыльные. Что имеем через полгода = всего 9 бумаг в плюсе, остальные «пусть полежат». И по тем, что «лежат» иллюзий не должно быть никаких -40-80% усредняйтесь — не хочу.
Та же история по кварталам'22 — с активным управление каждый набор красавец, как только бумаги оставишь, портфель сползает в убыток. Пока деньги идут с рынков, зачем с этим спорить, на постоянных шортах капиталы не сохранить. А до первого, ближайшего нашего днища еще довольно далеко, опускают инвесторов плавненько, чтобы не разбежались.
MPlus, Так суть же не в том что купи и держи, а в том что мы продаем все что нам больше не нужно и покупаем совершенно иное. Т.е. мы всегда ставим на тех кто растет, и надеемся на то что они и дальше будут расти… они и обгоняют индекс. Эта методика всегда работает в долгосрочной перспективе.
Ошибка в расчётах как минимум одна — для тестов вы берете текущий состав индекса, а он со временем изменяется. Таким образом вы отбросили бумаги, которые падали и выпали из индекса и тестируете только на тех, которые росли и попали в него.
Вместо индекса сравнивайте результат такого портфеля с портфелем всех акций (типа удерживать в равных долях все бумаги на которых тестируете и ребалансируйте такой портфель раз в год (для выравнения долей)). Думаю что результаты немного расстроят.
Дмитрий Т, Да я это уже отметил выше в комментариях. Мы исключили из нашей выборки не те бумаги которые падали, а те которые были исключены из индекса, это важный момент. Не думаю что за 10 лет весь индекс изменился, но это по любому играет немного нам на руку.
Первые два результата это как раз и есть точно такой же портфель с раными долями распределения средств. Однако применяя некоторую оптимизацию, что изменяет не состав акций, а количество тех или иных бумаг в портфеле, помогает улучшить результат.
Опять же, зачем проводить ребалансировку раз в год, уже ведь много где было описано, что ребалансировка раз в год так себе идея, и в целом более частая работает много лучше.
CloseToAlgoTrading, да, не тестируем на бумагах, которые выпали из индекса. Но в большинстве случаев из индексов выпадают или бумаги которые упали, или если есть более интересные. И это сильно влияет на результат (сам через это проходил). Просто сравнивать результат таких тестов с индексом некорректно.
А ребалансировку я имел ввиду делать в «самодельном» индексе. И тогда уже можно будет хоть как-то сравнивать результат тестов с таким «самодельным» индексом.
CloseToAlgoTrading, тема поста «Как легко и просто обыграть рынок» немного некорректна. Ведь если взять текущий состав индекса, купить все эти бумаги в равных долях в начале 2005 года, то мы уже обыграем индекс. Но вот какой будет состав индекса через несколько лет никто не знает.
CloseToAlgoTrading, индекс обыгрываем, но уже не с таким отрывом, верно? Об этом я и говорил.
А в Квантконнекте учитываются ли дивиденды? Если учитываются новые/старые бумаги в индексе, то может и дивиденды тоже учитываются. В этом случае надо сравнивать с индексом полной доходности (с дивидендами).
P.S. По поводу того хорошая ли эта стратегия или нет я ничего не сказал.
Дмитрий Т, с яху аджастет прайс вроде же как учитывает все и дивиденды и сплиты, в квантконекте тоже, но тест выше (квантконект) я делал на обычной цене закрытия не аджастед.
Как я писал в прошлом посте, идея таких тестирований не найти наилучшие параметры или же сверхточное приближение к рыночной торговли, а проверка идеи. Быстро набросать некоторые правила, запустить, посмотреть… а там 1000% или 500% это уже не сильно важно… особенно если все стратегии сравнивать на одних и тех же данных и базовых алгоритмах.
Может быть немного играет на руку, а может быть все ставит с ног на голову. И то и другое — оценки взятые с потолка, они равноправны.
Однако применяя некоторую оптимизацию
Оптимизация всегда улучшает результат, вплоть до получения дистиллированного подгоночного мусора. Можете даже пооптимизировать 500 и 10 (если еще этого не сделали) и тоже получить улучшение, без всяких там CVaR/CDaR.
На истории рынок обыгрывать можно ещё круче и проще, раз эдак в сто. Просто покупаешь на минимумах и продаёшь на максимумах, и радуешься и немного жалеешь что график на следующий год только в конце следующего года дорисуется.
Так нельзя оптимизировать. Надо года 4 оставлять на бэктест без оптимизации и год на форвард без оптимизации, под остальные 5 лет оптимизируете и так сразу увидите потом что в реале оно не обгоняет индекс, а иначе только на практике убедитесь…
CloseToAlgoTrading, если так оптимизировать то любая стратегия будет радовать фейковыми результатами, совершенно не повторяющимися на реале где нет оптимизации!
Laukar, поясните пожалуйста, что вы имеете ввиду, говоря «если так оптимизировать»?
В данном подходе используется метод оптимизации портфеля, в любой момент времени, нам нужно опредлить какое количество уже выбранных бумаг держать в портфеле, метод оптимизации ищет на истории наилучшее распределение и выдает его. Это совершенно не значит, что в будущем это распределение будет лучшим.
Пример, у нас есть 2 бумаги, и мы решаем просто поделить поровну наши средства 0.5 и 0.5. Тут никакая оптимизация не нужна. Однако, мы можем сделать предположени и сказать, а давайте будем распределять деньги по отношению насколько одна бумага обгонит другую, скажем если первая взлетела на 10%, а вторая на 5%, то мы по какой-нибудь формуле будем считать наше распределение и получим 0.75 и 0.25 соответственно.
CloseToAlgoTrading, с этой оптимизацией не так что это тупо подгонка под историю. Надо оставлять несколько лет форвард теста — без оптимизации… По ним смотреть как оно работает без оптимизации, это будет ближе к реальным результатам и по этим годам можно делать выводы, а не по времени под которое велась оптимизация. Что тут непонятного?
Laukar, Давайте еще раз, вас наверное сбивает столку слово оптимизация, мы можем заметинь его на метод или модель распределения средств по активам (оно у меня там так и зоветеся allocation model). Тут нет никакой оптимизации в плане подгонки параметров под историю или что то такого где нужно было бы проводить такого рода тестирование. У вас есть метод который получает на вход исторические данные за некоторый период и выдает распределение денег по бумагам. Как вы себе представляете пропустить 4 года?
$🍋 — 🦸♂️, доброй ночи :). Вы имеете ввиду в целом или конекретно о про именно этот пост.
Если говорить вообще о том, о чем пишу, то да, применяю на живых деньгах, но пока ничем сверхвыдающимся похвастаться не могу… но и стоит заметить я никому ничего не продаю, да и ничего не навязываю..
Если конкретно про данный пост, то нет, именно в таком виде, никогда не применял… но может стоит и попробовать :)
$🍋 — 🦸♂️, На данный момент у меня нет полностью автоматических систем… Да и я не заморачиваюсь в плане полного соответствия тестов и реального поведения рынков. Скажем так… если портфель не просел… уже хорошо :).
Раньше я это делал, но почему то в моем случае это всегда ведет к переусложнению как идеи так и реализации… что приводит к игнорированию рискменеджмента, который изначально был заложен в идеи.
Ну и конечно же спред (более актуально для внутредневных систем), т.е. исполнение заявки на малоликвидных инструментах или же на открытии рынка.
CloseToAlgoTrading, а на нашем рыночке тестипровали? Вроде как у нас варианты моментума работают не хуже, если не лучше.Интересно было бы узнать результаты тестов на ММВБ.Если конечно проводили.
ВОобще интересные вариации обыгрывания моментума)
CloseToAlgoTrading, я пока что с питоном на уровне того что змея такая есть)))
Шучу)Но пробел у меня тут серьезный, как раз в планах его устранить.Я по старинке лапками тестирую((
Evgeny Baranov, ээм… ну врядли это модификация какой либо стратегии, ибо это же базовая стратегия на моментуме, а их множество, ибо само понятие моментума очень гибкое.
Так, видно же, что любой выбор акций опережает индекс. Вот и ответ, доходность много выше, при таком же риске или даже меньшем.
Dobryak, думал ногу сломал, но обошлось — сильный разрыв тканей) поэтому дела не очень)
если по рынку — то смотрел по сбытам надбавки, нашел одну интересную компанию на внебирже (ДД 25-30%), но т...
Аналитики «Финама» повышают рейтинг акций ГК «Астра»
Аналитики «Финама» повышают рейтинг акций ГК «Астра» с «Держать» до «Покупать»
📌Целевая цена повышена с 578 до 612 руб. на горизонте 12 мес. ...
Производство минудобрений в России в 2024 выросло на 6% до рекорда «Мы произведем более 63 млн тонн минеральных удобрений всех видов — это абсолютный рекорд со времен Советского Союза. Абсолютный при...
Производство минудобрений в России в 2024 выросло на 6% до рекорда «Мы произведем более 63 млн тонн минеральных удобрений всех видов — это абсолютный рекорд со времен Советского Союза. Абсолютный при...
Трансмашхолдинг поставит 118 вагонов пригородных пассажирских поездов в 2025 году для РЖД «118 вагонов», — рассказал он об объеме заказов электричек от РЖД.По словам Лошманова, в 2024 году количество ...
Тут правда есть момент, я выбрал бумаги которые сейчас котируются в индексе… т.е. как бы те у которых был делистинг мы уже исключили… но это не большая беда )
Портфельное инвестирование не отменяет шорты и любые другие виды активного управления. Да и всегда есть что то что растет, ну и так же никто же не расчитывает на один или два года… период выбран в 10 лет не случайно. Но в целом, по моментуму, мы почти всегда обыгрываем рынок. Убыток меньше чем по индексу уже выигрыш у рынка.
Важным моментом тут является волатильность и просадка портфеля… в данном тесте у лучшей стратегии просадка длится больше 2,5 лет, что с одной стороны довольно таки долгий период, с другой стороны это меньше чем по индексу.
В любом случае это лишь пример простой стратегии, без каких либо усложнений.
Та же история по кварталам'22 — с активным управление каждый набор красавец, как только бумаги оставишь, портфель сползает в убыток. Пока деньги идут с рынков, зачем с этим спорить, на постоянных шортах капиталы не сохранить. А до первого, ближайшего нашего днища еще довольно далеко, опускают инвесторов плавненько, чтобы не разбежались.
по снп 500 явно ложные данные
я конечно не исключаю ошибки в расчетах, но вроде как все там верно.
Вместо индекса сравнивайте результат такого портфеля с портфелем всех акций (типа удерживать в равных долях все бумаги на которых тестируете и ребалансируйте такой портфель раз в год (для выравнения долей)). Думаю что результаты немного расстроят.
Первые два результата это как раз и есть точно такой же портфель с раными долями распределения средств. Однако применяя некоторую оптимизацию, что изменяет не состав акций, а количество тех или иных бумаг в портфеле, помогает улучшить результат.
Опять же, зачем проводить ребалансировку раз в год, уже ведь много где было описано, что ребалансировка раз в год так себе идея, и в целом более частая работает много лучше.
А ребалансировку я имел ввиду делать в «самодельном» индексе. И тогда уже можно будет хоть как-то сравнивать результат тестов с таким «самодельным» индексом.
Тут ребалансировка правда раз в месяц, вроде первого числа, а не через 22 дня… но сути дела не меняет, все ще с лихвой обыгрываем индекс.
А в Квантконнекте учитываются ли дивиденды? Если учитываются новые/старые бумаги в индексе, то может и дивиденды тоже учитываются. В этом случае надо сравнивать с индексом полной доходности (с дивидендами).
P.S. По поводу того хорошая ли эта стратегия или нет я ничего не сказал.
Как я писал в прошлом посте, идея таких тестирований не найти наилучшие параметры или же сверхточное приближение к рыночной торговли, а проверка идеи. Быстро набросать некоторые правила, запустить, посмотреть… а там 1000% или 500% это уже не сильно важно… особенно если все стратегии сравнивать на одних и тех же данных и базовых алгоритмах.
CloseToAlgoTrading,
Может быть немного играет на руку, а может быть все ставит с ног на голову. И то и другое — оценки взятые с потолка, они равноправны.Оптимизация всегда улучшает результат, вплоть до получения дистиллированного подгоночного мусора. Можете даже пооптимизировать 500 и 10 (если еще этого не сделали) и тоже получить улучшение, без всяких там CVaR/CDaR.
В данном подходе используется метод оптимизации портфеля, в любой момент времени, нам нужно опредлить какое количество уже выбранных бумаг держать в портфеле, метод оптимизации ищет на истории наилучшее распределение и выдает его. Это совершенно не значит, что в будущем это распределение будет лучшим.
Пример, у нас есть 2 бумаги, и мы решаем просто поделить поровну наши средства 0.5 и 0.5. Тут никакая оптимизация не нужна. Однако, мы можем сделать предположени и сказать, а давайте будем распределять деньги по отношению насколько одна бумага обгонит другую, скажем если первая взлетела на 10%, а вторая на 5%, то мы по какой-нибудь формуле будем считать наше распределение и получим 0.75 и 0.25 соответственно.
Так что не так с этой оптимизацией?
Если говорить вообще о том, о чем пишу, то да, применяю на живых деньгах, но пока ничем сверхвыдающимся похвастаться не могу… но и стоит заметить я никому ничего не продаю, да и ничего не навязываю..
Если конкретно про данный пост, то нет, именно в таком виде, никогда не применял… но может стоит и попробовать :)
Раньше я это делал, но почему то в моем случае это всегда ведет к переусложнению как идеи так и реализации… что приводит к игнорированию рискменеджмента, который изначально был заложен в идеи.
Ну и конечно же спред (более актуально для внутредневных систем), т.е. исполнение заявки на малоликвидных инструментах или же на открытии рынка.
ВОобще интересные вариации обыгрывания моментума)
Шучу)Но пробел у меня тут серьезный, как раз в планах его устранить.Я по старинке лапками тестирую((
P.S. почему бы просто не покупать s&p500?
Так, видно же, что любой выбор акций опережает индекс. Вот и ответ, доходность много выше, при таком же риске или даже меньшем.