Стратегии
SPY/IWM: бэктест стратегии возврата к среднему спреда между акциями компаний с разной капитализацией на DAILY барах: бета-хеджированная z-оценка логарифмического спреда (скользящая статистика на момент решения), вход при |z|>=2, выход при |z|<=0.5 или через 10 сессий; долларово-нейтральные длинная и короткая позиции, без позиции примерно 80% (SPY.USEQ + IWM.USEQ 1D)
Итог: Отменено
SpyIwmSizeSpreadMeanReversionDaily
Сводка по итогам
Стратегия адаптировала идею возврата к среднему для внутридневной торговли FMZ на SPY/IWM к дневным барам. Утечка будущих данных из источника устранена с помощью скользящих беты и z-оценки; стратегия стремилась к паре с нейтральностью по долларовой стоимости, где прибыль на сделку превышала бы издержки USEQ. За 3 итераций код ни разу не прошёл проверку уровня 3: каждый раз бэктест в песочнице превышал лимит 300 секунд на дневном окне 2400 примерно за IWM.USEQ дней. От стратегии отказались на этапе проверки, поэтому до бэктеста, оптимизации, анализа и оценки риска дело не дошло; показателей эффективности нет.
Гипотеза
В этой итерации сохранена предыдущая стратегия и удалён цикл расчёта статистики спреда O(z_window) на каждом баре. Скользящие моменты уровня обновляются инкрементально, поэтому расчёт беты и z-оценки занимает O(1) на бар при сохранении статистики только по предыдущим сессиям и точного выравнивания дополнительных ног по одинаковым временным меткам.
verification_loop: sandbox_timeout: проверка не пройдена (уровень 3 — бэктест в песочнице): дымовой тест превысил лимит времени 300 секунд на окне примерно в 20000 баров (2400 дней по IWM.USEQ-1-DAY-LAST-EXTERNAL). Почти всегда это означает, что работа на каждом баре растёт вместе с историей: например, повторный просмотр всего ряда финансирования/дополнительных данных или создание списка и вызов min()/sorted() внутри calculate_signal()/on_bar() на каждом баре. Заранее вычисли отсортированные массивы временных меток ONCE в __init__ и используй bisect либо кэшируй результаты поиска по временной метке, чтобы стоимость обработки одного бара была O(log n), а не O(n).
Реализация
Дневная стратегия парной торговли USEQ использует скользящую бета-хеджированную z-оценку логарифмического спреда между IWM и SPY, рассчитанную на основе данных, доступных на тот момент. Она открывает позиции при экстремальных расхождениях и закрывает их при возврате к среднему, резком ухудшении или по истечении десяти сессий; размеры ног в целых акциях обеспечивают нейтральность по долларовой стоимости.
Результаты верификации
sandbox_timeout: проверка не пройдена (уровень 3 — бэктест в песочнице): дымовой тест превысил лимит времени 300 секунд на окне примерно в 20000 баров (2400 дней по IWM.USEQ-1-DAY-LAST-EXTERNAL). Почти всегда это означает, что работа на каждом баре растёт вместе с историей: например, повторный просмотр всего ряда финансирования/дополнительных данных или создание списка и вызов min()/sorted() внутри calculate_signal()/on_bar() на каждом баре. Заранее вычисли отсортированные массивы временных меток ONCE в __init__ и используй bisect либо кэшируй результаты поиска по временной метке, чтобы стоимость обработки одного бара была O(log n), а не O(n).
Сводка по итогам
Мультиинструментальная дневная стратегия должна укладываться в бюджет времени песочницы. Узнай, почему дымовой тест зависает или работает медленно — например, из-за выравнивания баров дополнительной ноги или поиска позиции и кэша на каждом баре, — прежде чем менять логику сигнала, даже если скользящая статистика уже имеет сложность O(1).
От стратегии отказались на этапе проверки после 3 итераций. Бэктест в песочнице уровня 3 превысил лимит времени 300 секунд на окне примерно в 20,000 баров (2400 дней по IWM.USEQ-1-DAY-LAST-EXTERNAL), и выполнение завершилось до этапов бэктеста, анализа и оценки риска.
Парная стратегия SPY/IWM с нейтральностью по долларовой стоимости и хеджированием беты на дневных барах USEQ. В ней торгуется z-оценка логарифмического спреда ln(IWM) - beta*ln(SPY) со скользящей бетой на основе доходностей за 60 сессий и средним и стандартным отклонением за 20 сессий, рассчитанными на момент решения. Вход при |z|>=2, выход при |z|<=0.5, по истечении 10 сессий либо при срабатывании стопа на резкое ухудшение |z|>=4.
Показателей эффективности нет. Стратегия не создала ни отчёта о бэктесте, ни отчёта об оптимизации, поэтому данных о доходности, коэффициенте Шарпа или числе сделок нет.
Анализ
Бэктест стратегии: внутридневной возврат к среднему между SPY и IWM
Stratmill — это инструмент для исследований и бумажной торговли, а не финансовая консультация или брокер. Результаты бэктестов и бумажной торговли являются гипотетическими. Торговля сопряжена с риском убытков.