Pull to refresh
8K+
3
4
Rating
7
Subscribers
Send message

Библиотека для загрузки котировок: t-tech-investments==0.3.3

# Список тикеров:
OPTIMAL_6_TLT_TICKERS = [
    'XAG',   # https://ru.tradingview.com/symbols/NASDAQ-XAG/
    'NDX',   # https://ru.tradingview.com/symbols/NASDAQ-NDX/
    'BTC',   # https://ru.tradingview.com/symbols/BTC/
    'TLT',   # https://ru.tradingview.com/symbols/NASDAQ-TLT/
    'XAU',   # https://ru.tradingview.com/symbols/TVC-XAU/
    'LCOc1', # https://ru.tradingview.com/symbols/LCOC1/
]

Модель, которая описана в статье, ничего сверхъествественного не делает. Её ключевые особенности в следующем:

  1. Тайминг. RL-агент открывает позицию чаще успешно, чем в убыток. Причём процент успеха не такой большой.

  2. Следование тренду. RL-агент присоединяется к крупным рыночным движениям в спокойное время.

  3. Ограничение риска. В зависимости от режима на рынке Агент перераспределяет активы из риска в защиту и наоборот.

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

Для корректного ответа нужен период и условия. Для параметров тестирования, которые приведены в статье, лучшая модель (метрики из главы 8) показывает следующие результаты:

PRIMARY (tlt_hybrid_dsr_dngdown_s42)
  Period: 2024-09-11 → 2026-04-20, 402 trading days
  Initial NAV: 1,003,313
  Final NAV:   1,632,246
  Total return: +62.69% over 1.60y
  CAGR: +35.67%
  Daily:   mean +0.1268%, median +0.1688%, std 1.0390%
  Weekly:  mean +0.636%, median +0.867%, std 2.253%
  Monthly: mean +2.703%, median +3.343%, std 4.359%
  Yearly:  mean +40.548%, median +40.548%
  Max DD: 13.58%
  Annualized Sharpe: +1.938
  % winning days: 57.6%

Благодарю за вопрос. Строго говоря такой эксперимент не проводился. На ранних этапах я пробовал MLP и что-то посложнее, но результаты были скромные. К моменту, когда появилась обвязка с определением режима и прочими фишками этап тестирования базовых моделей уже прошёл.

Далее, на место SAC действительно можно вставить другую модель и получить лучший результат, однако есть ряд нюансов, которые нужно учитывать:

  1. Ограниченность данных. После фильтрации по режимам для дневного таймфрейма остаётся не так много данных для обучения. Т.е. нужно добиться достаточного уровня генерализации и не переобучится на 5 окнах с разными распределениями режимов.

  2. Простые правила под каждый режим ещё нужно сформулировать. Т.е. это ещё одна плоскость (специалзированные правила для режима) для оптимизации, коих и так уже не мало.

  3. Эксперт получает специализацию за счёт конфигурации функции награды. Здесь за конфигурацию будут отвечать рукотворные фичи и сами данные. Из коробки наверняка не сработает.

  4. Бустинг с предсказанием доходностей это в целом другой подход. Наверняка он может дать позитивный результат, но это десятки моделей в ансамблях со сложными сценариями их задействования.

Попробую на досуге что-то простое. Буду признателен за рекомендации.

Information

Rating
1,213-th
Registered
Activity