Стратегии
Бэктест стратегии: возврат после экстремального отклонения относительной стоимости альта к BTC (переформулировка хеджа с несколькими монетами «千团大战» от 小草): по умолчанию без позиции; открывать хеджированную по бете пару альт/BTC, только когда цена одного альта относительно BTC отклоняется от собственной медленной EMA на >= 2.5 кросс-секционных сигм; вселенная из -20 ведущих активов на каждый момент времени, бары 4H, Binance USD-M
Итог: Отменено
AltBtcRelativeValueExtremeReversion4H
Сводка по итогам
Эта гипотеза переосмысляет постоянно открытый хедж Xiaocao с несколькими монетами BTC как стратегию, которая по умолчанию не держит позиции: торговать одной парой альт/BTC с хеджированием по бете, только когда отклонение альта от медленной EMA относительно BTC достигает 2.5 кросс-секционных сигм; вселенная формируется на каждый момент времени по барам 4H Binance USD-M. Разработчик написал код с BTC в качестве основного инструмента и фиксированным списком из 10 дополнительных бессрочных контрактов альтов, используя инкрементальную скользящую статистику. За 3 итераций код так и не прошёл бэктест в песочнице слоя 3: прогон снова и снова превышал лимит 300s на окне в 2400 дней по 4H и был оставлен незавершённым в ходе цикла проверки. Поскольку бэктест не был завершён, экономическое утверждение не проверили, а до последующих этапов конвейера не дошли.
Гипотеза
verification_loop: sandbox_timeout: проверка не пройдена (слой 3 — бэктест в песочнице): время smoke-теста превысило лимит 300s на окне примерно в 20000 баров (2400 дней по BTCUSDT.BINANCE-4-HOUR-LAST-EXTERNAL). Почти всегда это означает, что вычисления на каждом баре растут вместе с историей — например, полное повторное сканирование рядов финансирования/дополнительных данных или создание списка и вызов min()/sorted() внутри calculate_signal()/on_bar() на каждом баре. Заранее вычисли отсортированные массивы временных меток ONCE в __init__ и используй bisect либо кэшируй запросы по временной метке, чтобы стоимость обработки бара была O(log n), а не O(n).
Реализация
Возврат к среднему после экстремального отклонения относительной стоимости альта к BTC, по умолчанию без позиции, на Binance USD-M 4H. Для каждого из 10 ликвидных альтов: dev = log(альт/BTC) минус его медленная EMA (период 42 баров, около 7 дней). Для каждого dev вычитается среднее, затем значения стандартизируются по z-оценке в составе доступной на тот момент вселенной: возраст листинга >= 90d, ранжирование по объёму котировок за последние 30 дней. Если |z| альта >= 2.5, а его центрированное отклонение >= 4%, стратегия открывает позицию против движения с противоположным хеджем BTC, согласованным по бете. Одновременно открыто не более 2 пар. Выход по возврату (|z| <= 0.5 или пересечение нуля), стопу пары 10% или временному стопу через 42 баров.
Результаты верификации
sandbox_timeout: проверка не пройдена (слой 3 — бэктест в песочнице): время smoke-теста превысило лимит 300s на окне примерно в 20000 баров (2400 дней по BTCUSDT.BINANCE-4-HOUR-LAST-EXTERNAL). Почти всегда это означает, что вычисления на каждом баре растут вместе с историей — например, полное повторное сканирование рядов финансирования/дополнительных данных или создание списка и вызов min()/sorted() внутри calculate_signal()/on_bar() на каждом баре. Заранее вычисли отсортированные массивы временных меток ONCE в __init__ и используй bisect либо кэшируй запросы по временной метке, чтобы стоимость обработки бара была O(log n), а не O(n).
История итераций
Проверка не пройдена (leverage_set_but_unused): в конфигурации задано плечо=3.0, но стратегия не использует плечо при расчёте размера позиции. Рассчитывай позиции с его учётом — номинал = капитал * доля * плечо / цена (читай self.config.leverage) — или установи плечо=1.0. В текущем виде плечо не действует, и бэктест идентичен 1x.
Сводка по итогам
Для кросс-секционных стратегий с несколькими ногами вычисления на каждом баре должны быть достаточно лёгкими, чтобы весь мультиинструментальный прогон завершился в пределах лимита песочницы 300s. Для этого нужно заранее вычислять или кэшировать поисковые таблицы и значения, а также сокращать число прогоняемых ног, а не только инкрементально обновлять скользящую статистику.
Стратегия была оставлена после 3 итераций проверки, поскольку smoke-тест слоя 3 в песочнице превысил лимит в 300s на окне примерно в 20,000 баров (2400 дней), BTCUSDT 4H, с 10 дополнительными альт-ногами. Проверка бэктеста, анализ аналитика и оценка риска так и не начались.
Бэктест стратегии: играть на снижении после экстремального отклонения одного альта (>= 2.5 кросс-секционных сигм) цены относительно BTC от собственной медленной EMA на барах 4H Binance USD-M, удерживая хеджированную по бете пару альт/BTC (открыто не более 2) и оставаясь вне рынка в остальное время.
Данных о результативности нет: стратегия не создала ни отчёта бэктеста, ни отчёта оптимизации, поэтому показателей доходности, Шарпа и числа сделок нет.
Stratmill — это инструмент для исследований и бумажной торговли, а не финансовая консультация или брокер. Результаты бэктестов и бумажной торговли являются гипотетическими. Торговля сопряжена с риском убытков.