CloseToAlgoTrading
CloseToAlgoTrading личный блог
24 апреля 2021, 13:36

Битва методов оптимизации портфеля!

Всем привет, 

Не смотря на то, что многие люди довольно скептически отнеслись к китайской идее напрямую оптимизировать значение шарпа и подберать веса для активов используя LSTM сеть (А что так можно было?), я решил все же этот метод протестировать. 

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

Для тестов были взяты следующие методы оптимизации финасового портфеля:

Классические:
  • Mean-Variance
  • Hierarchical Risk Parity (созданный Маркусом Лопезом де Прадо)
  • Critical Line Algorithm (говаривают метод специально для оптимизации портфелей придуман)
  • Efficient Frontier with nonconvex optimizer (нашел в примерах питоновского пакета, добавил для кучи)
Экзотические:
  • LSTM (модель предложенная китайцами, из предыдущего поста)
  • Trained LSTM (обученная модель на истории, предсказывает распределение на следующие 22 дня)


Но прежде чем начинать тестирование стратегии, решил я глянуть как вообще работают методы на истории. 
  • Я взял период с 2008 по 2020 годы.
  • Особо не задумываясь о качестве активов выбрал 10 акций: ['MSFT', 'AMD', 'C', 'BA', 'AMZN', 'AAPL','MO', 'AEE', 'AIG', 'WY']
  • Случайным обрзом выбрал 10 стартовых дат и взяли историю из 125 дней.
На этих данных были посчтитаны значения Шарпа для всех методов кроме трениорванной модели и вот такой результат получился:
Битва методов оптимизации портфеля!
Интересно, что LSTM модель на самом деле показывает результаты не хуже остальных методов, а иногда даже лучше. Однако CLA и MeanVariance выглядят более уверенно.

Что ж, убедившись, что с большего у нас есть методы которые опережают случайное распределение активов, я протестировал эти модели на подготовленной стратегии.

Результаты получились следующими:

2008-2010

Битва методов оптимизации портфеля!

Ах да, для классических методов присутствуют 2 теста, один это всегда расчет весов на 125 дня, второй (_cd) это для наколпленных данных, т.е. веча расчитываются на всем прошлом временном периоде. 

Удивительно, но просто LSTM показала просто ужастный результат, а вот тренированная модель опередила всех. 

2011-2017 

Битва методов оптимизации портфеля!

На этом периоде все модели опередили случайное распределение весов активов в портфеле, однака наша натренированная модель, хоть и опередила LSTM, несмогла обойти другин методы. На самом деле тут все методы не слишком уж сильно и опередили рандом. 

ну и еще тест за 2018 по 2021

Битва методов оптимизации портфеля!
Я провел немного больше тестов, так же на других активах, кому интересно возможно посмотрит видео, и мне просмотры на ютубе и вам информация к размышлению



Кому лень смотреть видео, но все же интересно весь код как обычно на гитхабе, даже ссылку вам дам
github.com/CloseToAlgoTrading/CodeFromVideo/tree/master/Episode_20_Battle_Of_Optimization_Methods

В ноутбуках еще можно посмотреть как распределяются активы в течении периода тестирования для различных методов, тоже довольно интересная информация на мой взгляд.

В целом есть шанс получить неплохую натренированную модель, однако стоит поиграться с фичами и данными. Но как обычно, возможно все результаты просто случайность :). А еще все очень сильно зависит от тех активов которые вы выбираете.

Зы. Может кто определит топив в раздел алготрейдинга. Спасибо. 
43 Комментария
  • Sir Dasfig
    24 апреля 2021, 14:38
    Интересно посмотреть сравнение моделей на классах активов — акции, облигации, золото. В качестве активов взять любые 3 дешевых от ETF от Вангарда или Блекрок.
  • Capital Management
    24 апреля 2021, 16:23
    Интересно когда все в низ политики какая оптимизация будит
  • Алексей Никитин
    24 апреля 2021, 16:33
    ничего не  понятно но жутко интересно -))))
    • wrmngr
      24 апреля 2021, 18:06
      Алексей Никитин, как раз все понятно — все методы просрали бенчмарку (индексу широкого рынка ) по всем параметрам. Вот это и должно быть в выводах
      • SergeyJu
        24 апреля 2021, 18:33
        wrmngr, и ни одного пристойного Шарпа. Все — ни о чем. 
          • SergeyJu
            25 апреля 2021, 12:05
            CloseToAlgoTrading, при «обычном инвестировании» мы получим индекс с дивами за вычетом налогов. А Шарп будет какой Бог пошлет. 
            Поэтому я не практикую подобные вещи.
        • wrmngr
          24 апреля 2021, 23:54
          SergeyJu, ну как раз вывод можно сделать вполне содержательный: все модные распиаренные методы в основном добавляют индекс цитируемости автору, а не реальный value на практике
        • wrmngr
          24 апреля 2021, 20:52
          CloseToAlgoTrading, не занимайтесь самообманом
  • Владимир
    24 апреля 2021, 20:59
    Вопрос:
    1. Вы учитываете при тестировании портфеля регулярные пополнения/изъятия, в том числе на случайные величины в приделах диапазона?
    2. Что если сравнить модели, скажем, на 3х случайных наборах акций, будет ли стабильный лидер?
    3. Будет ли разные лидеры в зависимости от стартовой точки теста?

    Если вы все это проверите, и явного лидера не будет наблюдаться в различных вариантах тестов, то это повод серьезно задуматься:)
      • wrmngr
        24 апреля 2021, 22:09
        CloseToAlgoTrading, что предсказывает эта ваша натренированная модель? Логретурны? Волатильность? Кросс-корреляцию? Все вместе? Это не праздные вопросы, это суть.к тому же демон Шеннона диктует нам первый главный бенчмарк, относительно которого нужно считать excess return модели, и это fixmix портфель с равными весами
          • wrmngr
            24 апреля 2021, 22:39
            CloseToAlgoTrading, понятно, что веса, но это уже конечный результат, вопрос что перед этим? Если всё смешано, то модель бесполезна, она не имеет интерпретации, и достоверно сломается
              • wrmngr
                24 апреля 2021, 23:15
                CloseToAlgoTrading, потому что даже один изолированный параметр рынка (любой) чрезвычайно тяжело прогнозировать, а вы замахиваетесь на все сразу. Это полная чушь по факту
                  • wrmngr
                    24 апреля 2021, 23:46
                    CloseToAlgoTrading, когда делаем прогноз одного параметра, то хотя бы есть теоретическая возможность адекватно оценить прогностическую силу конкретной модели. Если модель прогнозирует все и сразу, то нет бенчмарка в принципе и получаем рафинированный GIGO  
                      • wrmngr
                        25 апреля 2021, 00:38
                        CloseToAlgoTrading, политика взвешивания компонент портфеля напрямую зависит от этих трех главных параметров. Модель, получающая на вход сырые данные о ретурнах и возвращающая целевой вектор весов неизбежно делает эти прогнозы. Но как и почему — загадка
                          • wrmngr
                            25 апреля 2021, 23:42
                            CloseToAlgoTrading, скрытые закономерности, которые якобы выявляет нейросеть в данном случае безусловное зло, и это к вам придет с опытом
      • Владимир
        25 апреля 2021, 08:04
        CloseToAlgoTrading, спасибо за ответ)
  • ves2010
    25 апреля 2021, 20:29
    Я помню… в году так 12..13 пытались оптимизировать портфели реалтайм на считая видеокартах
      • ves2010
        25 апреля 2021, 22:54
        CloseToAlgoTrading, реалтайм это по каждому тику... 
        смысл этого я не уловил… но то что делали такое это точно...
        возможно пользовали для арбитража или опционной конструкции...

  • SergeyJu
    26 апреля 2021, 10:57
    С содержательной точки зрения американские акции весьма однородный набор активов. Кризис 2008 года ударил почти по всем. Пока портфель не умеет проходить кризис на минимуме устойчивых к нему акций, говорить просто не о чем. Поэтому, в портфеле должны присутствовать неоднородные к акциям активы. Например, облигации и золото. 
    Возьмите золото, хороший фонд облигаций и хороший фонд акций, или просто спай. И на 3-х компонентах постойте оптимальный портфель. А перед этим подумайте, какой критерий оптимизации и, постройте для нескольких разных.
    Узнаете много нового.
      • SergeyJu
        26 апреля 2021, 11:38
        CloseToAlgoTrading, не люблю фонды недвиги. Но дело не в этом. 
        Выиграть у рынка (пусть будет по максимуму Шарпа) можно только тогда, когда есть динамическое перераспределение  весов в портфеле. Раз в год, раз в квартал, раз в месяц или по событиям. Вот схема перераспределения должна содержать какую-то изюминку. Когда актива 3, можно вручную, буквально в Экселе, отследить, что какая схема перераспределения делает. Тогда придет не формальное использование «китайских» формул, а личное понимание, где сидит альфа. 
          • SergeyJu
            26 апреля 2021, 11:55
            CloseToAlgoTrading, прочитайте топики МадКванта про его систему динамического перераспределения весов активов. Вначале он писал более-менее подробно.
              • SergeyJu
                27 апреля 2021, 10:38
                CloseToAlgoTrading, не надо все так усложнять. 
                Приведу пример. Фонд акция vs фонд облигаций. Берем 50 на 50. 
                Переоценка каждый день.
                Если пакет акций на ХХХ % дороже или дешевле пакета облиг, продаем того, кого больше, покупаем того, кого меньше так, чтобы пакеты сравнялись. 
                Для реализации такого алгоритма достаточно 6 столбцов в Экселе.  Или 20 строк на бэйсике или питоне, пофиг. Хоть на си++. И никаких агентов!
                Учет транзакционных издержек тривиален. А XXX в диапазоне 10-20% попробуйте. ВСЕ! 
                А с агентами Вам экскаватор потребуется, хотя всего-то и нужно накопать с десяток червяков на рыбалку. 
                  • SergeyJu
                    27 апреля 2021, 11:20
                    CloseToAlgoTrading, боюсь, что Вы просто невнимательны. 

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн