Стратегии
Turtle Soup Plus-One (Raschke/Connors, через FMZ 发明者量化-小小梦) на 10 ликвидных US ETF, дневные бары, длинные и короткие позиции: игра против неудачного пробоя канала Дончиана за 20 сессий, когда на следующей сессии цена снова пересекает прежний экстремум. PRE-STUDY FAILED, низкий приоритет, подана только для опровержения гипотезы
Итог: Отменено
TurtleSoupPlusOneEtfBasket
Сводка по итогам
В TurtleSoupPlusOneEtfBasket вариант Raschke/Connors со ставкой против неудачных пробоев канала Дончиана за 20 сессий применён к дневной длинно-короткой корзине из 10-ETF. Предварительное исследование гипотезы не прошло: преимущество около 0 снижалось через 2016; вариант представили только для опровержения. После 3 итераций, последняя из которых исправила лишь согласованность конфигурации параметра кредитного плеча, код по-прежнему превышал лимит изолированного слоя 3 в 300 с примерно на 20,000 барах, поэтому запуск прервали в цикле проверки. Бэктест, оптимизация и анализ специалистом не проводились.
Гипотеза
Идея Turtle Soup изложена заново с первых принципов для US ETF — класса активов, для которого она была придумана; гэпы при исполнении учтены реалистично. Предварительное исследование находится в файле. На криптовалютных бессрочных фьючерсах OKX результат сетапа не выше случайного дрейфа. На ETF при реалистичном исполнении среднее на сделку составляет около 0 (t-статистика не выше 0.6), а преимущество снижается примерно до 0 через 2016. Полная спецификация записана в workspace/outbox/research_lead/hypothesis_0bc51c25a4.json.
verification_loop: sandbox_timeout: проверка не пройдена (слой 3 — изолированный бэктест): дымовой тест превысил лимит времени выполнения 300 с на окне примерно в 20000 баров (2400 дней по SPY.USEQ-1-DAY-LAST-EXTERNAL). Почти всегда это означает, что работа на каждом баре растёт вместе с длиной истории: например, повторное сканирование всего ряда финансирования или вспомогательного ряда либо пересоздание списка и вызов min()/sorted() внутри calculate_signal()/on_bar() на каждом баре. Заранее вычисли отсортированные массивы временных меток ONCE в __init__ и используй bisect либо кэшируй запросы по временной метке, чтобы стоимость обработки одного бара составляла O(log n), а не O(n).
Реализация
Turtle Soup Plus-One на 10 ETF US (дневные бары, длинные и короткие позиции). Если сессия закрывается за экстремумом канала Дончиана за 20 сессий, который сформировался не менее 4 сессий назад, на следующую сессию выставляется стоп-ордер на прежнем экстремуме, чтобы сыграть против неудачного пробоя. Для выхода используется скользящий стоп ATR, отсчитываемый от ATR входа, и стоп по максимальному времени удержания. Для каждого сетапа разрешён один повторный вход. Риск на сделку составляет 1%; на позицию установлен лимит 20% капитала, а валовая экспозиция корзины ограничена 1.0x.
Итерация 3 исправляет только ошибку слоя -1.5. Все зафиксированные ключи плана оптимизации, включая кредитное плечо=1.0 типа float, объявлены в параметрах с точными значениями и типами из плана. Границы настраиваемых параметров соответствуют _param_bounds. Параметр кредитного плеча теперь влияет на лимит валовой экспозиции корзины. Логика сигналов, входа и выхода не изменилась. Предварительное исследование предполагает преимущество около нуля, поэтому этот запуск предназначен для опровержения гипотезы.
Результаты верификации
sandbox_timeout: проверка не пройдена (слой 3 — изолированный бэктест): дымовой тест превысил лимит времени выполнения 300 с на окне примерно в 20000 баров (2400 дней по SPY.USEQ-1-DAY-LAST-EXTERNAL). Почти всегда это означает, что работа на каждом баре растёт вместе с длиной истории: например, повторное сканирование всего ряда финансирования или вспомогательного ряда либо пересоздание списка и вызов min()/sorted() внутри calculate_signal()/on_bar() на каждом баре. Заранее вычисли отсортированные массивы временных меток ONCE в __init__ и используй bisect либо кэшируй запросы по временной метке, чтобы стоимость обработки одного бара составляла O(log n), а не O(n).
История итераций
Проверка не пройдена (слой 1.5 — согласованность гипотезы и конфигурации) [класс=hypothesis_mismatch]: - optimization_plan фиксирует кредитное плечо на уровне 1.0
Сводка по итогам
Для стратегий с несколькими позициями на каждом баре стоимость вычислений должна быть O(1) или O(log n): заранее вычисляй или обновляй по мере поступления данных экстремумы канала, ATR и валовую экспозицию вместо того, чтобы на каждом баре пересоздавать списки и заново сканировать историю.
Запуск прервали в цикле проверки после 3 итераций. Дымовой тест изолированного слоя 3 превысил лимит времени выполнения 300 с на окне примерно в 20,000 баров (2,400 дней по SPY.USEQ дневных баров), что указывает на обработку каждого бара, объём которой растёт с длиной истории.
Длинно-короткая стратегия Turtle Soup Plus-One на 10 ликвидных ETF US с дневными барами: игра против неудачного пробоя канала Дончиана за 20 сессий, когда на следующей сессии цена пересекает прежний экстремум в обратном направлении. Гипотеза была отмечена как не прошедшая предварительное исследование и представлена только для опровержения.
Результатов бэктеста или оптимизации нет, поскольку стратегия не прошла проверку. Предварительное исследование уже показало среднее на сделку около 0 (t-статистика не выше 0.6) при реалистичном исполнении на ETF; через 2016 преимущество снижалось примерно до 0. На криптовалютных бессрочных фьючерсах OKX результат сетапа был не выше случайного дрейфа.
Анализ
Правила торговли «Черепаший суп»
Stratmill — это инструмент для исследований и бумажной торговли, а не финансовая консультация или брокер. Результаты бэктестов и бумажной торговли являются гипотетическими. Торговля сопряжена с риском убытков.