Стратегии
Моментум товаров ETF 12 мес., экстремальные по рангу позиции с учётом знака собственного тренда: лонг самого сильного / шорт самого слабого из USEQ товарных ETF (GLD, SLV, USO, UNG), ребалансировка каждые 21 сессий, размер позиций обратно пропорционален волатильности, явное состояние без позиции (USEQ 1-DAY)
Итог: Отменено
CommodityEtfRankExtremeTsmomLS
Сводка по итогам
CommodityEtfRankExtremeTsmomLS адаптировала стратегию моментума сырьевых товаров из Quantpedia/QuantConnect к четырём ETF на сырьевые товары USEQ; каждая позиция удерживалась только при совпадении знака собственного тренда инструмента за 12 месяцев с её направлением. Из-за предыдущих тайм-аутов в песочнице в дизайне требовалась работа на каждом баре сложности O(1); в коде использовались deque фиксированной длины и текущие суммы. Несмотря на это, после 3 итераций стратегия всё ещё превышала лимит песочницы уровня 3 в 300 с на окне 2400 дней и GLD баров, поэтому её остановили в цикле проверки. До бэктеста, оптимизации, проверки аналитиком или оценки рисков дело не дошло, поэтому метрик эффективности нет.
Гипотеза
Удалён путь повторной попытки исполнения на каждом баре и повторное сканирование кэшей ордеров и позиций. Сверка теперь проводится только на календарно привязанных барах ребалансировки с сохранением состояния скользящего окна фиксированного размера и существующей логики сигнала.
verification_loop: sandbox_timeout: проверка не пройдена (уровень 3 — бэктест в песочнице): дымовой тест превысил лимит времени 300 с на окне примерно в 20000 баров (2400 дней по GLD.USEQ-1-DAY-LAST-EXTERNAL). Почти всегда это означает, что работа на каждом баре растёт вместе с историей — например, повторное сканирование полного ряда финансирования/дополнительных данных или создание списка с вызовом min()/sorted() внутри calculate_signal()/on_bar() на каждом баре. Предварительно отсортируй массивы временных меток ONCE в __init__ и используй bisect либо кэшируй поиск по временной метке, чтобы стоимость обработки бара была O(log n), а не O(n).
Реализация
Бэктест стратегии ранжирует ETF на сырьевые товары по доходности за 12 месяцев каждые 30 календарных дней: удерживает самый сильный инструмент только при положительной доходности, а самый слабый — только при отрицательной, с ограничением размера позиции по обратной волатильности.
Результаты верификации
sandbox_timeout: проверка не пройдена (уровень 3 — бэктест в песочнице): дымовой тест превысил лимит времени 300 с на окне примерно в 20000 баров (2400 дней по GLD.USEQ-1-DAY-LAST-EXTERNAL). Почти всегда это означает, что работа на каждом баре растёт вместе с историей — например, повторное сканирование полного ряда финансирования/дополнительных данных или создание списка с вызовом min()/sorted() внутри calculate_signal()/on_bar() на каждом баре. Предварительно отсортируй массивы временных меток ONCE в __init__ и используй bisect либо кэшируй поиск по временной метке, чтобы стоимость обработки бара была O(log n), а не O(n).
Сводка по итогам
Для мультиинструментальных стратегий нужно профилированием подтвердить, что стоимость обработки бара в песочнице действительно равна O(1), прежде чем отправлять стратегию повторно. В гипотезе уже требовались deque с амортизированной стоимостью O(1) и текущие суммы, но этого оказалось недостаточно для прохождения тайм-аута. Поэтому следует проверить оставшуюся работу на каждом баре, например запросы кэша/ордеров для каждого инструмента и сортировку на каждом баре вместо сортировки только на барах ребалансировки.
Запуск был прерван в цикле проверки после 3 итераций. Бэктест в песочнице уровня 3 превысил лимит времени 300 с на окне примерно в 20,000 баров (2400 дней по GLD.USEQ-1-DAY); обычно это означает, что объём работы на каждом баре растёт вместе с длиной истории.
Бэктест стратегии моментума на сырьевых ETF за 12 месяцев: USEQ (GLD, SLV, USO, UNG). Длинная позиция в лидере — только при положительной доходности за 12 месяцев, короткая в аутсайдере — только при отрицательной за 12. Ребалансировка каждые 21 сессий, размер позиций обратно пропорционален волатильности; гипотеза связывает моментум с доходностью роллирования и устойчивыми состояниями запасов.
Результаты не измерялись: нет отчёта о бэктесте и отчёта об оптимизации, поэтому отсутствуют данные о доходности, коэффициенте Шарпа и числе сделок.
Анализ
Эффект моментума на фьючерсах на сырьевые товары
Stratmill — это инструмент для исследований и бумажной торговли, а не финансовая консультация или брокер. Результаты бэктестов и бумажной торговли являются гипотетическими. Торговля сопряжена с риском убытков.