И так, в прошлом посте был представлен небольшой фреймворк на питоне для тестирования портфелей, а в этом посмотрим как же простейшая стратегия на базе импульса может сохранить нам нервы и деньги.
И так,
- Возмем 500 бумаг которые на данный момент находятся в индексе snp500.
- Каждый месяц будем отбирать 10 бумаг по принципу силы импульса за последний год. Имеется ввиду процентное изменение.
- Вторая стратегия будем отбирать 10 бумаг, но импульс будем считать как разницу цены и скользящей стредней с периодом 252.
- Ребалансировка портфеля через каждые 22 дня.
- Только лонг.
Протестируем за 10 лет начиная с 2005, и получим вот такой прекрасный результат:
Общая доходность в 10 раз выше индекса, годовая в 5. Однако видим что и просадка у нас повыше.
Но мы же все делаем на питоне, где полно всяких полезных пакетов. Воспользуемся библиотекой PyPortfolioOpt, и добавим попробуем эти же две стратегии с импользованием следующих методов оптимизации портфелей: CLA, HRP, CVaR, DVaR
И посмотрим на результат:
Тада!!! Мы видим что некоторые методы оптимизации сработали довольно хорошо, и теперь наша просадка ниже чем если бы мы инвестировали в индекс.
Интересно что такого рода стратегии работали всегда и продолжают работать, а последнии два года так вообще взлет доходности.
Ну и по традиции видюшка...
ссылка на код.
github.com/CloseToAlgoTrading/CodeFromVideo/tree/master/Portfolio_Testing_Framework
Тут правда есть момент, я выбрал бумаги которые сейчас котируются в индексе… т.е. как бы те у которых был делистинг мы уже исключили… но это не большая беда )
Портфельное инвестирование не отменяет шорты и любые другие виды активного управления. Да и всегда есть что то что растет, ну и так же никто же не расчитывает на один или два года… период выбран в 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 соответственно.
Так что не так с этой оптимизацией?
Посмотрите, так сказать самую известную теорию
ru.wikipedia.org/wiki/%D0%9F%D0%BE%D1%80%D1%82%D1%84%D0%B5%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D1%82%D0%B5%D0%BE%D1%80%D0%B8%D1%8F_%D0%9C%D0%B0%D1%80%D0%BA%D0%BE%D0%B2%D0%B8%D1%86%D0%B0
Речь идет немного о другом.
Если говорить вообще о том, о чем пишу, то да, применяю на живых деньгах, но пока ничем сверхвыдающимся похвастаться не могу… но и стоит заметить я никому ничего не продаю, да и ничего не навязываю..
Если конкретно про данный пост, то нет, именно в таком виде, никогда не применял… но может стоит и попробовать :)
Раньше я это делал, но почему то в моем случае это всегда ведет к переусложнению как идеи так и реализации… что приводит к игнорированию рискменеджмента, который изначально был заложен в идеи.
Ну и конечно же спред (более актуально для внутредневных систем), т.е. исполнение заявки на малоликвидных инструментах или же на открытии рынка.
ВОобще интересные вариации обыгрывания моментума)
Шучу)Но пробел у меня тут серьезный, как раз в планах его устранить.Я по старинке лапками тестирую((
P.S. почему бы просто не покупать s&p500?
Так, видно же, что любой выбор акций опережает индекс. Вот и ответ, доходность много выше, при таком же риске или даже меньшем.