Перейти к содержимому
Все стратегии

Стратегии

Реверсия PCA-остатков (s-score Авелланеды—Ли): топ--20 Bybit USDT бессрочных контрактов с учетом данных на момент времени, 3-факторная модель PCA на дневных доходностях за 60 дней; длинные позиции при z<-1.5 / короткие при z>+1.5 как самостоятельные ставки на отдельные активы; выход при |z|<0.5 или по истечении 10 дней (1–DAY баров; без позиций, когда ни один актив не отклоняется заметно)

Итог: Отменено

BybitPcaResidualSScoreReversionDaily

Сводка по итогам

Гипотеза перенесла идею возврата s-score остатка Avellaneda-Lee PCA с акций US на формируемую на каждый момент времени вселенную из топ-USDT бессрочных контрактов Bybit с дневными барами; сделки в обоих хвостах — одиночные ставки без хеджирования. За 3 итераций стратегия раз за разом не проходила проверку в песочнице Layer 3, превышая лимит времени 300s. Последняя версия меняла только производительность: пул сократили до 8 наиболее ликвидных бессрочных контрактов (BTC, ETH, SOL, XRP, DOGE, ADA, LINK, LTC), оставив сигнал без изменений, но проверку она всё равно не прошла. Запуск забросили до получения каких-либо метрик бэктеста.

Гипотеза

Классификация: (a) конкретная торговая идея. В источнике берут топ-N акций по долларовому объёму US, подгоняют PCA с 3 компонентами, регрессируют каждый инструмент на факторы, стандартизируют последний остаток до z-score и покупают инструменты с z < -1.5, взвешивая позиции по |z|. Ребалансировка каждые 30 дней; заявлено около 7% в год при просадке примерно 40% (не проверено). Мы NOT переносим эту идею на USEQ. Правило L128 запрещает дневные бары USEQ, а ребалансировка портфеля из 20 акций раз в месяц даёт около……Показать большеСвернуть

Классификация: (a) конкретная торговая идея. В источнике берут топ-N акций по долларовому объёму US, подгоняют PCA с 3 компонентами, регрессируют каждый инструмент на факторы, стандартизируют последний остаток до z-score и покупают инструменты с z < -1.5, взвешивая позиции по |z|. Ребалансировка каждые 30 дней; заявлено около 7% в год при просадке примерно 40% (не проверено). Мы NOT переносим эту идею на USEQ. Правило L128 запрещает дневные бары USEQ, а ребалансировка портфеля из 20 акций раз в месяц даёт около 115 ребалансировок за 10 лет; дефляция всегда сводит их на нет. Механизм изложен заново с первых принципов для линейных бессрочных контрактов Bybit USDT (доля корпуса 0.8% при целевом значении >=5%; триггер только по цене, согласно L160). Вселенная (на каждый момент времени, согласно L151): пул кандидатов — все бессрочные контракты Bybit USDT, чья дневная история в каталоге начинается не позднее 2021-12-31 (78 контрактов; это правило доступности данных, а не ручной отбор). На закрытии каждого дня активная вселенная включает топ-20 по долларовому объёму за предыдущие 30 дней среди инструментов, у которых к этой дате есть не менее 90 дневных баров. Факторная модель следует статье, а не учебнику: PCA(3) применяется к матрице размером 60 дней на 20 инструментов со стандартизированными дневными логарифмическими RETURNS (в учебнике использовались уровни логарифма цены, нестационарные по своей природе). Для каждого инструмента выполняется OLS по 3 факторным доходностям, остатки суммируются в X, затем z = (X_last - среднее X) / стандартное отклонение X за окно 60 дней. Отличия от учебника: стратегия торгует в обоих хвостах (в статье подход симметричный); каждая позиция — отдельная ставка на один инструмент без хеджирующих ног (L137); решение принимается ежедневно, а выход определяется z-score, а не слепой ребалансировкой каждые 30 дней (L166). Заявленное состояние без позиций: позиции нет, если ни один инструмент не достиг |z| >= 1.5 (ожидается примерно 30-40% дней).

Итерация 3 — исправление только производительности. Тайм-аут вызван поиском файлов каталога ParquetDataCatalog по шаблону для каждого инструмента: это фиксированные затраты на каждую ногу независимо от длины окна (по профилю на родственных многоногих стратегиях — около 10 s+ на ногу при нагрузке хоста около 40). Работа стратегии на каждом баре невелика и не растёт с длиной периода. Число ног сокращено с 13 до 8: оставлены самые глубокие бессрочные контракты Bybit USDT с данными до 2022. Сигнал, выходы и размер позиций не изменились. Отклонение: гипотеза требует вселенную топ--20, формируемую на каждый момент времени из пула в 78 контрактов, но в этой тестовой среде она не укладывается в лимит песочницы 300 s. 8 инструментов с 3 факторами дают более узкий кросс-срез, а остатки будут сильнее зависеть от рыночного фактора BTC/ETH. Если аналитику нужен кросс-срез из полных 20 инструментов, ограничение — бюджет песочницы, а не код. Число max_positions сокращено с 6 до 4, чтобы не превысить вселенную из 8 инструментов (общий объём по-прежнему <= 1x капитала).

verification_loop: sandbox_timeout: проверка не пройдена (Layer 3 — бэктест в песочнице): дымовой тест превысил лимит времени 300s на окне примерно в 20000 баров (2400 дней по BTCUSDT.BYBIT-1-DAY-LAST-EXTERNAL). Почти всегда это означает работу на каждом баре, масштабируемую с историей, например повторное сканирование всего ряда ставок финансирования/дополнительных данных либо пересоздание списка и вызов min()/sorted() внутри calculate_signal()/on_bar() на каждом баре. Предварительно создай отсортированные массивы временных меток ONCE в __init__ и используй bisect либо кэшируй поиск по временной метке, чтобы стоимость обработки одного бара была O(log n), а не O(n).

Реализация

Возврат s-score остатка Avellaneda-Lee PCA на дневной вселенной топ-N, формируемой на каждый момент времени по долларовым объёмам за предыдущие 30 дней, из 8 ликвидных бессрочных контрактов Bybit USDT. PCA(3) применяется к корреляционной матрице дневных логарифмических доходностей за 60 дней; для каждого инструмента выполняется OLS-регрессия на доходности факторных портфелей, а остатки суммируются в z-score за 60 дней. Лонг при z<=-1.5, шорт при z>=+1.5: отдельные ставки на один инструмент (одновременно не более 4, на каждый приходится 1/4 капитала, общий объём <= 1x). Выход при |z|<0.5 или по истечении 10 дней. Если ни один инструмент не отклонился от среднего, позиции закрыты.

Результаты верификации

sandbox_timeout: проверка не пройдена (Layer 3 — бэктест в песочнице): дымовой тест превысил лимит времени 300s на окне примерно в 20000 баров (2400 дней по BTCUSDT.BYBIT-1-DAY-LAST-EXTERNAL). Почти всегда это означает работу на каждом баре, масштабируемую с историей, например повторное сканирование всего ряда ставок финансирования/дополнительных данных либо пересоздание списка и вызов min()/sorted() внутри calculate_signal()/on_bar() на каждом баре. Предварительно создай отсортированные массивы временных меток ONCE в __init__ и используй bisect либо кэшируй поиск по временной метке, чтобы стоимость обработки одного бара была O(log n), а не O(n).

Сводка по итогам

Многоногие кросс-секционные стратегии могут превысить лимит песочницы 300s из-за загрузки каталога для каждой ноги, а не из-за вычислений на каждом баре. Поэтому с первого черновика ограничь число ног или проверь, укладывается ли проект в лимит времени песочницы.

Стратегию забросили в ходе цикла проверки. Бэктест в песочнице Layer 3 завершился по тайм-ауту, превысив лимит 300s на окне примерно в 20000 баров (2400 дней по BTCUSDT.BYBIT 1-DAY барам). После того как в итерации 3 для снижения нагрузки на каталог число ног сократили с 13 до 8, тайм-аут повторился.

Возврат остатка Avellaneda-Lee PCA на бессрочных контрактах Bybit USDT: подгонка PCA-факторной 3 по доходностям за 60 дней, преобразование накопленного остатка каждого инструмента в z-score и отдельные лонги при z<-1.5 и шорты при z>+1.5; выход при |z|<0.5 или через 10 дней.

Данных о результативности нет. Отчёт о бэктесте пуст, стратегия не дошла до оптимизации, проверки бэктеста, аналитической проверки или оценки рисков.

Stratmill — это инструмент для исследований и бумажной торговли, а не финансовая консультация или брокер. Результаты бэктестов и бумажной торговли являются гипотетическими. Торговля сопряжена с риском убытков.