Первый пункт достаточно очевиден. Если вы тестируете 10 альф в день, а все остальные по 2, то вы добьётесь гораздо лучших результатов, чем остальные.
Как этого добиться?
Во-первых, забудьте о ручном сборе данных и их предварительной обработке. Если у вас нет скриптов для автоматизации этих процессов, вы уже NGMI. Это базовый уровень.
Далее, используйте библиотеку для загрузки данных. Вам не нужно постоянно переписывать код вроде glob.glob(folder_path) и так далее. Вы должны использовать:
load_data( start_date=start_date, end_date=end_date, symbol=symbol, и так далее )
Далее — исследовательские данные. Что это такое?
Вы можете начать с универсума. Не стоит тратить время на ручное определение универсума (и, в идеале, он должен быть стандартизирован). Поэтому загрузите файл с топ X тикерами по 30-дневному объёму, по рыночной капитализации, по ликвидности за 30 дней или по любому другому критерию. Здесь можно экспериментировать.
Далее анализируем доходности: у вас должны быть факторные доходности, идиосинкратические доходности, обрезанные доходности и, конечно, сырые доходности. ВСЁ ДОЛЖНО БЫТЬ ПРЕДВАРИТЕЛЬНО СГЕНЕРИРОВАНО!
И наконец, нужно убедиться, что вы можете тестировать все свои альфы, и код для этого должен работать максимально быстро. Вы можете думать, что это занимает всего X минут, но всё, что больше нескольких минут — это огромный контекстный переключатель и напрямую снижает продуктивность.
Мы разобрали скорость итераций, теперь перейдём к доступности.
Доступность — это насколько легко выполнить тот или иной анализ. Это качественная составляющая задачи оптимизации «качество против количества». Например, вы хотите сделать анализ сезонности, но решаете пропустить его ради теста другой альфы — это недостаток доступности. Или вы не делаете анализ корреляции и резидуализации, чтобы проверить другую альфу — опять недостаток доступности.
Ваши инструменты должны позволять выполнять эти типовые анализы очень быстро. Это относится к оптимизации, анализу выхода из позиции, TCA, оптимальному TWAP и так далее. Всё это должно требовать минимум усилий на запуск, потому что чем больше работы нужно для запуска, тем МЕНЬШЕ ВЫ БУДЕТЕ ЭТО ДЕЛАТЬ, и качество ваших исследований снизится.
В заключение: вам нужно фокусироваться на ускорении базового анализа и максимально ускорять дополнительный анализ, который существенно повышает качество ваших исследований. Оптимизируя оба этих аспекта, вы сможете делать исследования намного быстрее и качественнее остальных.
Это и есть ваше преимущество. Если вы делаете в 5 раз больше, чем остальные за то же время, вы сможете зарабатывать значительно больше PnL.
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
Мои основные принципы разработки альфы:
1) Скорость итераций
2) Доступность
Что это значит?
Первый пункт достаточно очевиден. Если вы тестируете 10 альф в день, а все остальные по 2, то вы добьётесь гораздо лучших результатов, чем остальные.
Как этого добиться?
Во-первых, забудьте о ручном сборе данных и их предварительной обработке. Если у вас нет скриптов для автоматизации этих процессов, вы уже NGMI. Это базовый уровень.
Далее, используйте библиотеку для загрузки данных. Вам не нужно постоянно переписывать код вроде glob.glob(folder_path) и так далее. Вы должны использовать:
load_data(
start_date=start_date,
end_date=end_date,
symbol=symbol,
и так далее
)
Далее — исследовательские данные. Что это такое?
Вы можете начать с универсума. Не стоит тратить время на ручное определение универсума (и, в идеале, он должен быть стандартизирован). Поэтому загрузите файл с топ X тикерами по 30-дневному объёму, по рыночной капитализации, по ликвидности за 30 дней или по любому другому критерию. Здесь можно экспериментировать.
Далее анализируем доходности: у вас должны быть факторные доходности, идиосинкратические доходности, обрезанные доходности и, конечно, сырые доходности. ВСЁ ДОЛЖНО БЫТЬ ПРЕДВАРИТЕЛЬНО СГЕНЕРИРОВАНО!
И наконец, нужно убедиться, что вы можете тестировать все свои альфы, и код для этого должен работать максимально быстро. Вы можете думать, что это занимает всего X минут, но всё, что больше нескольких минут — это огромный контекстный переключатель и напрямую снижает продуктивность.
Мы разобрали скорость итераций, теперь перейдём к доступности.
Доступность — это насколько легко выполнить тот или иной анализ. Это качественная составляющая задачи оптимизации «качество против количества». Например, вы хотите сделать анализ сезонности, но решаете пропустить его ради теста другой альфы — это недостаток доступности. Или вы не делаете анализ корреляции и резидуализации, чтобы проверить другую альфу — опять недостаток доступности.
Ваши инструменты должны позволять выполнять эти типовые анализы очень быстро. Это относится к оптимизации, анализу выхода из позиции, TCA, оптимальному TWAP и так далее. Всё это должно требовать минимум усилий на запуск, потому что чем больше работы нужно для запуска, тем МЕНЬШЕ ВЫ БУДЕТЕ ЭТО ДЕЛАТЬ, и качество ваших исследований снизится.
В заключение: вам нужно фокусироваться на ускорении базового анализа и максимально ускорять дополнительный анализ, который существенно повышает качество ваших исследований. Оптимизируя оба этих аспекта, вы сможете делать исследования намного быстрее и качественнее остальных.
Это и есть ваше преимущество. Если вы делаете в 5 раз больше, чем остальные за то же время, вы сможете зарабатывать значительно больше PnL.