Стратегии
DIA Недельный пропорциональный моментум с нормировкой волатильности
Итог: Отменено
DiaWeeklyVolatilityNormalizedProportionalMomentum
Сводка по итогам
Стратегия пыталась торговать недельный пропорциональный импульс на DIA, используя доходности, нормированные по волатильности с учётом только прошлых данных, и ребалансировку при закрытии последней сессии. После 5 итераций проверка в изолированной среде обнаружила исполнение на следующей сессии, нарушившее условия исполнения. Стратегию остановили до оценки результатов и последующих проверок, поэтому торговое преимущество не оценено.
Гипотеза
Источник содержит один исполняемый механизм, а не несколько независимых стратегий. Объяснения для короткого и длинного периодов ретроспективы — зависящие от параметров интерпретации того же механизма. DIA сохраняет экспозицию исходного источника к Dow посредством явно обозначенной адаптации ETF. Длинно-короткое исполнение устраняет концентрацию портфеля в длинных позициях 80.7% и позволяет избежать ещё одного предложения по фьючерсам Binance. Предоставленный corpus_concentration пуст, поэтому установить недавнюю долю использования DIA невозможно. Точность передачи источника важнее выдумывания межбиржевых или опционных компонентов ради выполнения квот.
verification_loop: проверка не пройдена (уровень 3 — бэктест в изолированной среде): execution_timing_mismatch: DIA закрытие последней сессии decision_ns=1560542400000000000, actual_fill_ns=1560801600000000000; требуется инженерная проверка: runner.py устанавливает LatencyModel биржи USEQ с задержкой 100мс до engine.add_venue, а FactoryStrategyConfig не предоставляет политики исполнения на закрытии той же сессии. Реализуй в runner явную политику исполнения для исследовательского контракта, передай её в изолированный запуск и оптимизацию, а перед повторной попыткой проверь фактическое время исполнения и цены закрытия. Сохрани спред, влияние на цену и поведение защитных стопов. Не меняй сигнал и не допускай исполнения на следующей сессии. Использованный тип баров: DIA.USEQ-1-DAY-LAST-EXTERNAL, обработано баров: 0 Убедись, что стратегия совершает сделки с указанными данными и параметрами.
Реализация
DIA: недельный длинно-короткий пропорциональный импульс с логарифмическими доходностями, нормированными по волатильности предыдущей недели, скользящим средним периода формирования, ребалансировкой с привязкой к календарной неделе, размером позиции в целых акциях пропорционально капиталу и защитными стопами. Исполнение заблокировано задержкой исполнения ордеров в runner.
Сохранены импорты, сигнал, логика входа, размера позиции, ребалансировки и защиты из предыдущей реализации; изменены только документация класса и диагностика несоответствия исполнения. Проверка подтверждает, что runner.py устанавливает задержку биржи до engine.add_venue, а USEQ задаёт задержку 100мс. Поддерживаемого переопределения исполнения на уровне стратегии для закрытия той же сессии нет. Эта версия не устраняет проблему уровня 3 и её нельзя повторно отправлять как завершённое исправление. Требуется инженерное изменение вне стратегии. Рабочая область доступна только для чтения, поэтому внести это изменение и выполнить обязательную запись в outbox не удалось. Данные бэктеста и итогового экзамена не читались.
Результаты верификации
Проверка не пройдена (уровень 3 — бэктест в изолированной среде): execution_timing_mismatch: DIA закрытие последней сессии decision_ns=1560542400000000000, actual_fill_ns=1560801600000000000; требуется инженерная проверка: runner.py устанавливает LatencyModel биржи USEQ с задержкой 100мс до engine.add_venue, а FactoryStrategyConfig не предоставляет политики исполнения на закрытии той же сессии. Реализуй в runner явную политику исполнения для исследовательского контракта, передай её в изолированный запуск и оптимизацию, а перед повторной попыткой проверь фактическое время исполнения и цены закрытия. Сохрани спред, влияние на цену и поведение защитных стопов. Не меняй сигнал и не допускай исполнения на следующей сессии. Использованный тип баров: DIA.USEQ-1-DAY-LAST-EXTERNAL, обработано баров: 0 Убедись, что стратегия совершает сделки с указанными данными и параметрами.
Анализ
Перед оптимизацией согласуй временные метки недельных сигналов с фактическими временными метками исполнения ордеров. Реализуй исполнение при закрытии последней биржевой сессии указанным поддерживаемым способом и проверь датированные исполнения для обычных пятниц и недель с сокращёнными из-за праздников сессиями. Не выдавай исполнение на следующей сессии за исполнение на закрытии. Для этого исправления оставь formation_weeks=20, normalization_weeks=20 и текущие настройки риска без изменений, затем повторно запусти базовую версию. Текущие отрицательные результаты оценивают реализованное время исполнения, а не исходную статью и не запрошенный вариант с исполнением на закрытии.
История итераций
Проверка не пройдена (уровень 1 — статический анализ): - Запрещённый импорт: src.data.market_calendar — стратегиям разрешено импортировать только базовые классы и вспомогательные средства фреймворка (src.strategies.base_template, src.strategies.rolling_options_template, src.strategies.polymarket_series_template, src.strategies.helpers); сборщики данных, база данных, движок бэктеста и реестр находятся вне изолированной среды. (строка 9)
Проверка не пройдена (уровень 3 — бэктест в изолированной среде): execution_timing_mismatch: DIA закрытие последней сессии decision_ns=1560542400000000000, actual_fill_ns=1560801600000000000; для оценки гипотезы в этой базовой версии runner должен поддерживать исполнение на закрытии той же сессии. Использованный тип баров: DIA.USEQ-1-DAY-LAST-EXTERNAL, обработано баров: 0 Убедись, что стратегия совершает сделки с указанными данными и параметрами.
Проверка не пройдена (уровень 3 — бэктест в изолированной среде): execution_timing_mismatch: DIA закрытие последней сессии decision_ns=1560542400000000000, actual_fill_ns=1560801600000000000; требуется инженерная проверка: src/backtesting/runner.py применяет LatencyModel на уровне биржи до engine.add_venue; FactoryStrategyConfig не предоставляет переопределения исполнения на закрытии той же сессии. Перед повторной попыткой добавь в runner поддерживаемую политику исполнения для этого исследовательского контракта; изменение сигнала или исполнение на следующей сессии изменит гипотезу. Использованный тип баров: DIA.USEQ-1-DAY-LAST-EXTERNAL, обработано баров: 0 Убедись, что стратегия совершает сделки с указанными данными и параметрами.
Сводка по итогам
Перед повторной попыткой реализуй и передай явную политику исполнения на закрытии той же сессии, проверь временные метки и цены исполнения, сохрани спред, влияние на цену и поведение защитных стопов.
После 5 итераций проверка на уровне 3 не пройдена: фактическое исполнение произошло на следующей сессии, а не при требуемом закрытии последней сессии. В ходе проверки установлено, что модель задержки USEQ 100мс в runner и отсутствие политики исполнения на закрытии той же сессии требуют инженерной проверки.
Торгуй DIA, используя знаковую экспозицию, пропорциональную усреднённым недельным логарифмическим доходностям, нормированным по волатильности с учётом только прошлых данных; ребалансируй в момент закрытия последней биржевой сессии каждой недели.
Доходность, коэффициент Шарпа и число сделок не указаны; неудачный запуск в изолированной среде сообщил об обработке 0 баров. Проверка бэктеста, оптимизация, аналитическая проверка и оценка риска не проводились.
Анализ
Анализ информационного коэффициента стратегий импульса
Обзор бэктеста
- Шарп
- -0,16
- Общая доходность
- -4,80%
- Максимальная просадка
- 5,48%
- Всего сделок
- 186
- Доля прибыльных
- 19,9%
- Профит-фактор
- 0,67
Stratmill — это инструмент для исследований и бумажной торговли, а не финансовая консультация или брокер. Результаты бэктестов и бумажной торговли являются гипотетическими. Торговля сопряжена с риском убытков.