Стратегии
KO/PEP Бэктест стратегии: возврат спреда коинтеграции лог-цен, скользящий коэффициент хеджирования OLS, вход при |остаток| > 2 сигма, выход внутри 1 сигма, длинная и короткая позиции с нулевой долларовой экспозицией на барах USEQ DAILY | Stratmill
Итог: Отменено
KoPepLogCointegrationSpreadReversion
Сводка по итогам
Стратегия тестировала возврат к среднему спреда лог-цен KO/PEP с использованием скользящего OLS и долларово-нейтральных позиций USEQ. Она прошла три итерации, но проверка Layer-3 завершилась по тайм-ауту до расчёта показателей эффективности. Запуск прервали до анализа результатов бэктеста, оптимизации, проверки аналитиком или оценки риска.
Гипотеза
Итерация 3 меняет только показатели. Скользящий OLS уже рассчитывался инкрементально в итерации 2: O(1) на бар, с повторной синхронизацией в среднем каждые 250 баров на примерно 1650 дневных барах, поэтому вычисления стратегии занимают миллисекунды. Повторный тайм-аут в 300 с, вероятнее всего, вызван средой: средняя загрузка хоста при проверке составляла около 83. В базовом шаблоне нет пути рекурсии (проверены _submit_exit, _submit_exit_position и _submit_entry_instrument). Единственная оставшаяся работа на каждом баре — два запроса cache.positions_open для очистки осиротевшей стороны пары — теперь выполняется только при удержании пары (_held != 0). Сигнал, полосы входа/выхода, размер позиции и конфигурация не изменились, поэтому статусы проверок Layers 1-2 остаются зелёными. Если Layer 3 снова завершится по тайм-ауту, причина будет на стороне каталога/загрузки (USEQ загрузки данных), а не в коде стратегии.
verification_loop: sandbox_timeout: Проверка не пройдена (Layer 3 — бэктест в песочнице): дымовой тест превысил лимит реального времени 300 с на окне примерно в 20000 баров (2400 дней по PEP.USEQ-1-DAY-LAST-EXTERNAL). Почти всегда это означает, что работа на каждом баре растёт вместе с историей — например, повторное сканирование полного ряда данных о финансировании/дополнительных данных или пересоздание списка и вызов min()/sorted() внутри calculate_signal()/on_bar() на каждом баре. Заранее вычисли отсортированные массивы временных меток ONCE в __init__ и используй bisect либо кэшируй поиск по временной метке, чтобы стоимость работы на баре была O(log n), а не O(n).
Реализация
Возврат спреда коинтеграции лог-цен PEP/KO на дневных барах USEQ. На каждой сессии OLS ln(PEP)=a+b*ln(KO)+c переоценивается с учётом только доступных на тот момент данных за последние 250 синхронизированных сессий, используя накапливаемые суммы O(1). z=c/std(c). Вход при |z|>2: короткая позиция по PEP/длинная по KO, если z>2; длинная по PEP/короткая по KO, если z<-2. Выход, когда остаток возвращается внутрь +/-1 сигма. Долларовая нейтральность: 50% капитала на каждую сторону, целое число акций, общий объём 1.0x.
Результаты верификации
sandbox_timeout: Проверка не пройдена (Layer 3 — бэктест в песочнице): дымовой тест превысил лимит реального времени 300 с на окне примерно в 20000 баров (2400 дней по PEP.USEQ-1-DAY-LAST-EXTERNAL). Почти всегда это означает, что работа на каждом баре растёт вместе с историей — например, повторное сканирование полного ряда данных о финансировании/дополнительных данных или пересоздание списка и вызов min()/sorted() внутри calculate_signal()/on_bar() на каждом баре. Заранее вычисли отсортированные массивы временных меток ONCE в __init__ и используй bisect либо кэшируй поиск по временной метке, чтобы стоимость работы на баре была O(log n), а не O(n).
Сводка по итогам
В следующих итерациях вся работа на каждом баре должна оставаться независимой от истории и укладываться в лимит времени песочницы.
Запуск прервали после того, как дымовой тест в песочнице превысил лимит в 300 секунд примерно на 20,000 барах. До последующих этапов дело не дошло.
Стратегия пыталась торговать возврат к среднему скользящих остатков лог-цен OLS между PEP.USEQ и KO.USEQ с долларово-нейтральными позициями в обоих инструментах.
Доходность, коэффициент Шарпа и число сделок неизвестны, поскольку отчёт о бэктесте не был создан. Проверка дошла до трёх итераций, но не завершила бэктест в песочнице Layer-3.
Анализ
【Новое: нейтральный хедж, статистический арбитраж】(Pure-Alpha, мечта)|【Neutral-Hedge Statistical Arbitrage New】(Pure-Alpha dream version)
Stratmill — это инструмент для исследований и бумажной торговли, а не финансовая консультация или брокер. Результаты бэктестов и бумажной торговли являются гипотетическими. Торговля сопряжена с риском убытков.