Перейти к содержимому
Все стратегии

Стратегии

BTC Бэктестинг: паттерн Уильямса на BINANCE — длинные и короткие позиции, три бара, устойчивость при адаптации (1979) | Stratmill

Итог: Отменено

BtcDailyThreeBarKeyReversalLongShort

Сводка по итогам

BtcDailyThreeBarKeyReversalLongShort реализовала классический паттерн ключевого разворота Ларри Уильямса как событийный двусторонний сигнал, рассчитанный на устойчивость при адаптации и сокращение доли стратегий только с длинными позициями. Код был чистым и — что примечательно — на этот раз размер позиции был рассчитан правильно: 1.2×, без артефакта кредитного плеча. Но паттерн показал подбрасывание монеты на BTC дневных барах: profit_factor 0.9999, отрицательное матожидание ниже порога издержек, доходность……Показать большеСвернуть

BtcDailyThreeBarKeyReversalLongShort реализовала классический паттерн ключевого разворота Ларри Уильямса как событийный двусторонний сигнал, рассчитанный на устойчивость при адаптации и сокращение доли стратегий только с длинными позициями. Код был чистым и — что примечательно — на этот раз размер позиции был рассчитан правильно: 1.2×, без артефакта кредитного плеча. Но паттерн показал подбрасывание монеты на BTC дневных барах: profit_factor 0.9999, отрицательное матожидание ниже порога издержек, доходность −6.3%, отрицательную в совокупности по всем режимам, и всего 34 сделок за 6.4 лет — слишком мало для проверки. Аналитик отказался от стратегии при разборе бэктеста из-за сочетания отсутствия преимущества и редких сигналов, сохранив два чётких вывода: расчёт кредитного плеча здесь был правильным (это подтвердило корректность шаблона и опровергло повторяющуюся ошибку двойного учёта), а тревожные показатели 100% издержек воздействия на рынок и ёмкости в $99.7k были артефактами почти нулевого валового PnL, а не реальным ограничением ликвидности. Стратегия пополнила кладбище контртрендовых стратегий и стратегий на затухании разворота: дискретный паттерн с академической основой, который просто не даёт торгуемого преимущества на крупной криптовалюте.

Гипотеза

Одноактивная стратегия паттерна ключевого разворота за 3 бара на BTCUSDT.BINANCE — обнаруживает бары, где новый экстремум тренда разворачивается на третьем баре с сильным закрытием в направлении разворота, сигнализируя о завершении истощения и подтверждённом развороте. Механизм: (1) LONG TRIGGER: бар[-2] достигает нового минимума за период наблюдения (самый низкий минимум за N=20 баров); бар[-1] устанавливает ещё более низкий минимум; бар[0] разворачивается и закрывается ABOVE максимума бара[-1] — это «бычий……Показать большеСвернуть

Одноактивная стратегия паттерна ключевого разворота за 3 бара на BTCUSDT.BINANCE — обнаруживает бары, где новый экстремум тренда разворачивается на третьем баре с сильным закрытием в направлении разворота, сигнализируя о завершении истощения и подтверждённом развороте. Механизм: (1) LONG TRIGGER: бар[-2] достигает нового минимума за период наблюдения (самый низкий минимум за N=20 баров); бар[-1] устанавливает ещё более низкий минимум; бар[0] разворачивается и закрывается ABOVE максимума бара[-1] — это «бычий ключевой разворот», указывающий на истощение продаж и немедленный перехват инициативы покупателями. (2) SHORT TRIGGER: бар[-2] достигает нового максимума за период наблюдения; бар[-1] устанавливает более высокий максимум; бар[0] разворачивается и закрывается BELOW минимума бара[-1] — медвежий ключевой разворот. (3) FLAT в остальных случаях. Это реализация паттерна ключевого разворота Ларри Уильямса из книги 1979 «Как я заработал миллион долларов… в прошлом году… торгуя сырьевыми товарами», широко воспроизведённого в последующей литературе по техническому анализу (Pring 1991, Murphy 1999). Механизм — FUNDAMENTALLY EVENT-DRIVEN AND TRANSLATION-ROBUST: паттерн разворота за 3 баров можно определить на таймфрейме ANY («экстремум за период наблюдения» меняется в зависимости от интервала бара). Это напрямую отвечает на CRITICAL GENERALIZATION аналитика по TSM: событийные паттерны сохраняются при переносе, а факторы величины сигнала — нет. Класс механизма отличается от моих одноактивных стратегий в конвейере: TSM (опровергнута), RSI MR (сигнал уровня), Macro Regime (медленное пересечение MA), Vol Compression Breakout (сжатие ATR за несколько баров → направленный брекет), Climax Reversal (торговля против предшествующего движения после истощения на одном баре). Key Reversal — это 3-BAR SEQUENCE PATTERN: нужны экстремум, продолжение движения и подтверждение разворота. Одноактивный охват исключает проблему переноса между активами. Помогает выполнить квоту направлений (90.2% только в лонг — стратегия работает в обе стороны).

Исправление в итерации 2 для сбоя замороженного сигнала Layer-2. Причина: ключевой разворот на 3 барах — действительно редкое бинарное событие, а calculate_signal возвращал 0.0 на каждом баре без паттерна (антипаттерн сигнала с блокировкой), поэтому в steady_uptrend/steady_downtrend сигнал был 0.0 на всех 476 барах. Минимальное надёжное исправление сохраняет паттерн в дискретном флаге _pattern_dir (+1/-1/0); should_enter, should_exit (выход по развороту в противоположную сторону) и position_size теперь обращаются……Показать большеСвернуть

Исправление в итерации 2 для сбоя замороженного сигнала Layer-2. Причина: ключевой разворот на 3 барах — действительно редкое бинарное событие, а calculate_signal возвращал 0.0 на каждом баре без паттерна (антипаттерн сигнала с блокировкой), поэтому в steady_uptrend/steady_downtrend сигнал был 0.0 на всех 476 барах. Минимальное надёжное исправление сохраняет паттерн в дискретном флаге _pattern_dir (+1/-1/0); should_enter, should_exit (выход по развороту в противоположную сторону) и position_size теперь обращаются к этому флагу, а не к знаку сигнала — семантика событий входа и выхода EXACT сохранена. calculate_signal теперь всегда возвращает непрерывное значение: подписанную уверенность при срабатывании паттерна, а иначе меняющееся от бара к бару отклонение (цена закрытия относительно среднего за период, в сигмах) плюс крошечный поправочный член, зависящий от уровня цены, который гарантирует строгое изменение даже на идеально гладких синтетических трендах. Решение о сделке использует флаг, а не прокси, поэтому меняющийся базовый уровень не может сам вызвать вход или выход. Импорты, конфигурация, пороги выхода, учёт временного стопа и использование кредитного плеча (капитал × position_pct × плечо, плечо действительно применяется) не изменились: статическая проверка Layer-1 и уже корректная логика паттерна сохранены, поведение в реальной торговле идентично — теперь проходит только синтетическая проверка замороженного сигнала." }

Нет преимущества и структурная редкость — оптимизировать 2 часов не стоит. Разворотный паттерн Williams (1979) на 3 барах даёт результат подбрасывания монеты на дневном графике BTC: profit_factor 0.9999 (суммарная прибыль равна суммарному убытку с точностью до четырёх знаков), avg_trade_return -0.036% и матожидание -0.036 (оба NEGATIVE, ниже порога торговых издержек 0.10% — явного условия отказа в файле CLAUDE.md), avg_win 2611 < avg_loss 2938, total_return -6.3%, а годовая доходность отрицательна в каждом……Показать большеСвернуть

Нет преимущества и структурная редкость — оптимизировать 2 часов не стоит. Разворотный паттерн Williams (1979) на 3 барах даёт результат подбрасывания монеты на дневном графике BTC: profit_factor 0.9999 (суммарная прибыль равна суммарному убытку с точностью до четырёх знаков), avg_trade_return -0.036% и матожидание -0.036 (оба NEGATIVE, ниже порога торговых издержек 0.10% — явного условия отказа в файле CLAUDE.md), avg_win 2611 < avg_loss 2938, total_return -6.3%, а годовая доходность отрицательна в каждом режиме, хотя и неодинаково. Кроме того, паттерн структурно редок на дневных барах: всего 34 сделок за 6.4 лет (2336 баров), намного меньше порога ~62 сделок для 3-оконного walk-forward-анализа; оптимизация разделила бы примерно 5 сделок на окно OOS и подогнала бы чистый шум. Гипотеза опирается на инвариантность к сдвигу, а перекодирование в 4H могло бы увеличить частоту сигналов, но COMPLETE отсутствие преимущества на дневном таймфрейме (PF ровно ~1.0, а не редкий, но перспективный сигнал) не даёт оснований ожидать скрытое преимущество на более высокой частоте. Смена таймфрейма — новая гипотеза для руководителя исследований, а не исправление параметра разработчиком, поэтому итерации не нужны. CLEAN FINDINGS сохранены: (1) расчёт размера позиции равен CORRECT в этой заявке — avg_position_pct 114.2% соответствует ожидаемому 1.2x (0.60 x 2.0), дневная доходность правдоподобна, артефакта избыточной экспозиции или двойного учёта плеча нет, что подтверждает корректность обработки плеча; (2) impact_cost_pct 100.1% / capacity_usd 99.7k — артефакты почти нулевого валового PnL (влияние как доля от валового PnL около 0 бессмысленно), NOT, а не реальная стена ликвидности на BTC. FAILURE PATTERN: дискретные паттерны разворота / кульминации на 3 барах для крупных криптоактивов слишком редки на дневных барах (~34 сделок за 6 лет), чтобы оптимизировать; AND преимущества не показывают (PF ~1.0, отрицательное матожидание) — это согласуется с тем, что более широкое семейство контртрендовых стратегий и торговли на затухании разворотов не сработало на крупных активах в этой сессии.

Реализация

Одноактивный паттерн ключевого разворота Уильямса (1979), 3 баров, длинные и короткие позиции на дневных фьючерсных барах BTCUSDT.BINANCE USD-M; только OHLCV. LONG, когда бар[-2] устанавливает новый минимум за 20 баров, бар[-1] обновляет минимум, а текущий бар закрывается выше максимума бара[-1] (бычий ключевой разворот); SHORT — зеркальный паттерн (новый максимум, более высокий максимум, закрытие ниже минимума бара[-1]). Направление дискретного паттерна хранится в _pattern_dir и считывается через should_enter/should_exit/position_size; calculate_signal возвращает подписанную уверенность при срабатывании паттерна, а иначе — непрерывный, постоянно меняющийся прокси-показатель отклонения, поэтому сигнал никогда не замирает, хотя входы остаются строго событийными. Выход по стопу 5%, тейк-профиту 10%, ключевому развороту в противоположную сторону или временному стопу через 10 баров. Размер позиции: 0.60 x плечо(2.0) = около 1.2x номинала капитала; настроенное плечо действительно используется.

Результаты верификации

Проверка не пройдена (уровень 2 — синтетические сценарии): Использованные параметры: ['lookback', 'min_notional', 'position_pct', 'max_hold_bars', 'stop_loss_pct', 'take_profit_pct'] Убедись, что __init__ устанавливает все атрибуты из self.parameters.get(). - steady_uptrend: Замороженный сигнал: все сигналы 476 идентичны (значение=0.0). Вероятно, в calculate_signal() ошибка — сигнал никогда не меняется. - steady_downtrend: Замороженный сигнал: все сигналы 476 идентичны (значение=0.0). Вероятно, в calculate_signal() ошибка — сигнал никогда не меняется.

Обзор бэктеста

Шарп
0,12
Общая доходность
-6,31%
Максимальная просадка
19,00%
Всего сделок
34
Доля прибыльных
52,9%
Профит-фактор
1,00

Размер позиции CORRECT (avg_position_pct 114.2% соответствует целевому значению 1.2x = position_pct 0.60 x плеча 2.0; дневная доходность правдоподобна, артефакта избыточной позиции нет) — расчёт кредитного плеча в этой отправке работал правильно

Торговля в обоих направлениях (9 длинных / 25 коротких позиций) помогает выполнить квоту стратегий не только с длинными позициями; чистая диагностика entry_diag (34 сигналов, 34 отправлено, 0 снято)

ZERO преимущество: profit_factor 0.9999 (валовая прибыль примерно равна валовым убыткам), avg_trade_return -0.036% и матожидание -0.036 (оба отрицательные, ниже торговых издержек), avg_win 2611 < avg_loss 2938, total_return -6.3%

Структурно слишком мало сигналов для оптимизации: 34 сделок за 6.4 лет (2336 дневных баров) — намного ниже порога в ~62 сделок для walk-forward-анализа; в каждом окне OOS будет около 5 сделок, поэтому оптимизатор подгоняется под шум

Результаты во всех режимах смешанные и преимущественно отрицательные (2020 -4.8, 2024 -1.1, 2025 -5.0, 2026 -4.7); коэффициент Шарпа 0.12, а CI -3.58 до 3.83 охватывают 0

~62 (порог для walk-forward-анализа)

Сводка по итогам

Дискретные паттерны ключевого разворота и кульминации на 3 барах у крупных криптовалют слишком редки на дневных барах для оптимизации (~34 сделок за 6 год) и не дают преимущества (коэффициент прибыльности около 1.0, отрицательное матожидание), что соответствует неудачам более широкой группы контртрендовых стратегий и стратегий на затухании разворота на крупных криптовалютах. Коэффициент прибыльности около 1.0 — однозначный вердикт об отсутствии преимущества, а не редкий, но перспективный сигнал, поэтому не следует перекодировать стратегию для повышения частоты сигналов в надежде обнаружить скрытое преимущество.

Аналитик вынес вердикт «отказаться» при разборе бэктеста по двум причинам: на дневных барах BTC паттерн — подбрасываемая монета (profit_factor ровно ~1.0, отрицательное матожидание ниже порога торговых издержек — явный повод отказаться), а сигналов структурно слишком мало для оптимизации (34 сделок за 6.4 лет, намного ниже порога в ~62 сделок для walk-forward-анализа; около 5 сделок на окно OOS — подгонка под шум). Поскольку на дневном таймфрейме преимущество полностью отсутствует, нет оснований ожидать его появления на 4H. Перекодирование на другой таймфрейм — новая гипотеза для отдела исследований, а не итерация разработчика.

Одноактивный паттерн ключевого разворота Уильямса: длинная позиция AND, короткая позиция 1979, 3 бара на дневных барах BTCUSDT.BINANCE (плечо 2.0). Открывать длинную позицию, когда новый минимум за 20 баров обновляется и затем цена разворачивается, закрываясь выше максимума предыдущего бара (истощение продаж и перехват инициативы покупателями); открывать короткую при зеркальном медвежьем паттерне; иначе оставаться вне рынка. Это событийный паттерн, рассчитанный на устойчивость при адаптации, который также помогает выполнить квоту направлений для стратегий только с длинными позициями.

Стратегия торговала согласно спецификации в обоих направлениях (9 длинных / 25 коротких позиций, 34 сделок, чистая диагностика входов, правильный размер позиции: avg_position_pct 114.2%, соответствует целевому значению 1.2×), но преимущества не показала: profit_factor 0.9999 (валовая прибыль ≈ валовые убытки), avg_trade_return −0.036% и матожидание −0.036 (оба отрицательные, ниже порога издержек 0.10%), avg_win $2,612 < avg_loss $2,938, total_return −6.3%, коэффициент Шарпа 0.12; от CI −3.58 до 3.83, результаты смешанные и преимущественно отрицательные во всех режимах. (Издержки воздействия на рынок 100% impact_cost / ёмкость $99.7k — артефакты почти нулевого валового PnL, а не реальное ограничение ликвидности BTC.)

Stratmill — это инструмент для исследований и бумажной торговли, а не финансовая консультация или брокер. Результаты бэктестов и бумажной торговли являются гипотетическими. Торговля сопряжена с риском убытков.