Применяем PCA к векторам доходностей и находим первый вектор главных компонент. По знаку i-й координаты разделяем акции на два непересекающихся класса. Пропорционально абсолютному значению соответствующей координаты вводим веса wi  для первого портфеля PC1 Offense, веса  ei для второго портфеля PC1 Defense. (Sum(e)=Sum(w)=1). Далее используем следующую стратегию: в i-й момент времени мы используем портфель PC1 Offense, если значение кривой капитала в i-1 момент, построенной на PC1 Offense выше (или равно), чем её среднее значение за предыдущие 200 дней (SMA-200), и используем портфель PC1 Defense, если ниже. Так же каждые 22 дня делаем ребалансировку портфелей. Стартовую балансировку производим на выборке 100 дней, затем каждые 22 дня производим балансировку на основе данных, полученных прибавлением последних 22 дней к предыдущему периоду балансировки (накапливаем).

Результат проверки: Шарп =0.9, CAGR = 9.23%. Однако на текущий момент в просадке.

Статейка об оптимизации портфеля по доходу-волатильности. Берем большой портфель etf, на базе от 1 до 12 мес. определяем доходность и волатильность, далее оптимизируем портфель определяя веса между активами (в статье только лонг онли). Алгоритм есть в статье. И вроде как на вселенной из 39 етф получаем шарп 1, доходность15.4%.  Авторы назвали этот подход Classical Asset Allocation (CAA).

Несложная стратегия формированию оптимального портфеля. Используется 12 етф: 

  • U.S. Stocks SPY
  • International REITs RWX 
  • European Stocks VGK
  • U.S. Intermediate Treasuries IEF 
  • Japanese Stocks EWJ
  • U.S. Long-Term Treasuries TLT 
  • Emerging Markets Stocks VWO
  • Commodities DBC
  • U.S. REITs VNQ
  • Gold GLD
  • U.S. Technology* QQQ
  • U.S. High-Yield Bonds* HYG

Далее формируем случайным образом 20 портфелей с весами акций [0.02...0.25] или 0. Сумма весов д.б. равна 1. Затем максимизируем шарп каждого портфеля с использованием генетических алгоритмов. Шарп измеряем на диапазоне полгода. На ETF получаются шарп 1.01. 

Кроме ETF был протестирован примерно аналогичный подход для акций NASDAQ-100 плюс QQQ, только с базовым периодом= месяц. Шарп получился 1.18.  Автор еще рекомендует использовать в качестве фильтра VIX/VIXMT или схожий механизм, чтобы находиться в позиции во время спокойного рынка, но особого увеличения шарпа нет.