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

Стратегии

SOL 1D ADX — пробой Дончиана в лонг с EMA режимным фильтром

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

SolDailyAdxDonchianBreakoutLong

SOL 1D ADX — пробой Дончиана в лонг с EMA режимным фильтром

Гипотеза

Торговая стратегия следования за трендом только в лонг по одному инструменту — бессрочным фьючерсам SOLUSDT; использует дневные бары (1D) и данные ONLY OHLCV. Стратегия сочетает вход при пробое канала Дончиана за 20 дней с двумя строгими фильтрами режима: ADX(14) > 25 (устойчивый тренд, а не боковое движение) и цена закрытия > 50-дневной EMA (подтверждение долгосрочного восходящего тренда). SOL выбран специально, чтобы закрыть пробел в диверсификации портфеля: сейчас нет отдельной стратегии только по SOL (есть……Показать большеСвернуть

Торговая стратегия следования за трендом только в лонг по одному инструменту — бессрочным фьючерсам SOLUSDT; использует дневные бары (1D) и данные ONLY OHLCV. Стратегия сочетает вход при пробое канала Дончиана за 20 дней с двумя строгими фильтрами режима: ADX(14) > 25 (устойчивый тренд, а не боковое движение) и цена закрытия > 50-дневной EMA (подтверждение долгосрочного восходящего тренда). SOL выбран специально, чтобы закрыть пробел в диверсификации портфеля: сейчас нет отдельной стратегии только по SOL (есть лишь SolAvaxPairsSpreadMeanReversion — парная стратегия, нейтральная к рынку). У SOL более 4 лет чистых данных USD-M Binance, высокая бета, выраженное направленное движение на протяжении многих месяцев и достаточная ликвидность. Стратегия намеренно минималистична (4 параметров, 1 инструмент, без дополнительных данных), чтобы избежать сбоев из-за сложностей с кодом (LINK 1D, BTC COIN-M, BNB Weekend, OP-ARB pairs) и ошибок проверки (ETH OI Divergence), характерных для недавних гипотез с множеством данных. Фильтр ADX напрямую устраняет причину провала Inside-Bar Breakout LTC (преимущества нет, поскольку паттерн срабатывал при боковом движении): условие ADX > 25 математически исключает режим, в котором пробои не обладают прогностической ценностью. Дневной таймфрейм обеспечивает низкое влияние комиссий (~0.10% RT) по сравнению с типичной доходностью сделок на тренде (5-30%).

Итерация 4 устраняет сбой с зафиксированным сигналом на уровне 2. Прежний сигнал был инвариантным к масштабу отношением (close-donchian_upper)/donchian_upper, которое становится константой в геометрических сценариях снижения/бокового движения синтетического генератора (цена закрытия и канал уменьшаются пропорционально). Новый calculate_signal формирует непрерывное значение, меняющееся от бара к бару, из трёх составляющих, реагирующих на фактическое движение каждого бара: положения цены закрытия внутри канала……Показать большеСвернуть

Итерация 4 устраняет сбой с зафиксированным сигналом на уровне 2. Прежний сигнал был инвариантным к масштабу отношением (close-donchian_upper)/donchian_upper, которое становится константой в геометрических сценариях снижения/бокового движения синтетического генератора (цена закрытия и канал уменьшаются пропорционально). Новый calculate_signal формирует непрерывное значение, меняющееся от бара к бару, из трёх составляющих, реагирующих на фактическое движение каждого бара: положения цены закрытия внутри канала Дончиана, величины выхода за верхнюю границу канала и доходности последнего бара (с весом, обеспечивающим изменение при любом движении цены). Это гарантирует отсутствие фиксированного значения в steady_downtrend и flat_ranging, сохраняя положительное смещение при бычьем рынке. Фактическое решение о входе по-прежнему полностью определяется _armed (пробой AND ADX>25 AND close>EMA50), поэтому торговое поведение на реальных данных и вся последующая логика выхода и расчёта размера позиции не изменяются. Импорты и структура класса не затронуты, уже пройденные статические проверки уровня 1 сохранены.

verifying_stuck_3_timeouts

Реализация

Дневная стратегия следования за трендом только в лонг по бессрочным фьючерсам SOLUSDT, использующая только OHLCV. Открывает длинную позицию, когда цена закрытия пробивает максимум Дончиана за предыдущие 20 дней AND ADX(14) > 25 AND close > EMA(50). Закрывает позицию при пробое минимума Дончиана за последние 10 дней, закрытии ниже EMA(50) или срабатывании защитного стопа 10%. Плечо 2.0 (номинал ~1.2x капитала).

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

Проверка не пройдена (уровень 4 — проверка QA) [класс=not_measurable]: - [edge_concern] Заголовочный показатель 7482% / avg_trade_return_pct 54% — артефакт концентрации на выбросе, а не свидетельство преимущества: трендовая стратегия на одной позиции с плечом 2x, следующая за параболическим ростом SOL от 2021 (return_kurtosis 49.3, один результат +$12.2M largest_win против -$3.3M largest_loss, max_drawdown 65.7% CI до 96.2%, benchmark_correlation 0.57 против стратегии «купи и держи»). Именно такой провал «пробоя……Показать большеСвернуть

Проверка не пройдена (уровень 4 — проверка QA) [класс=not_measurable]: - [edge_concern] Заголовочный показатель 7482% / avg_trade_return_pct 54% — артефакт концентрации на выбросе, а не свидетельство преимущества: трендовая стратегия на одной позиции с плечом 2x, следующая за параболическим ростом SOL от 2021 (return_kurtosis 49.3, один результат +$12.2M largest_win против -$3.3M largest_loss, max_drawdown 65.7% CI до 96.2%, benchmark_correlation 0.57 против стратегии «купи и держи»). Именно такой провал «пробоя на одной позиции с концентрацией 2021», которого, согласно гипотезе, следовало избежать, и семейство OHLCV пробоев Donchian, в котором неоднократно не оставалось ни одной выжившей стратегии. - Данных слишком мало для измерений: песочница охватила почти всю историю SOL (data_days 2179 ~= 6 лет), но дала лишь 15 сделок (среднее удержание — около 29 дней; фильтры ADX>25 + закрытие>EMA50 делают входы ещё избирательнее). Для прохождения проверки на отложенной выборке HARD требуется >=10 сделок за последние 20% (в этом прогоне там было бы около 3 -> автоматический провал); скользящий анализ вне выборки с 3 окнами невозможно заполнить, а по 15 сделкам нельзя отличить преимущество от шума. Продвижение на следующий этап структурно невозможно при любом заголовочном показателе — отказ на уровне -4, чтобы не тратить ресурсы на полный бэктест и оптимизацию. - position_size округляется до 3 знаков после запятой, что соответствует точности размера SOL: размер позиции рассчитывается относительно капитала и выражен физически (avg_position_pct 120.8% == 0.60*2.0). Изменения не требуются.

История итераций

Проверка не пройдена (уровень 2 — синтетические сценарии): Использованные параметры: ['adx_period', 'ema_period', 'min_notional', 'position_pct', 'adx_threshold', 'exit_lookback', 'stop_loss_pct', 'donchian_period'] Убедитесь, что __init__ задаёт все атрибуты с помощью self.parameters.get(). - steady_downtrend: сигнал зафиксирован: все 441 сигналы одинаковы (значение=0.0). Вероятно, в calculate_signal() ошибка — сигнал никогда не меняется. - flat_ranging: сигнал зафиксирован: все 441 сигналы одинаковы (значение=0.0). Вероятно, в calculate_signal() ошибка — сигнал никогда не меняется.

Проверка не пройдена (уровень 3 — бэктест в песочнице): дымовой тест превысил лимит реального времени в 300 с. Почти всегда причина — работа на каждом баре, затраты на которую растут вместе с длиной истории, например повторное сканирование всего ряда ставок финансирования/дополнительных данных или создание списка и вызов min()/sorted() внутри calculate_signal()/on_bar() на каждом баре. Предварительно создайте отсортированные массивы временных меток ONCE в __init__ и используйте bisect либо кэшируйте результаты поиска по временной метке, чтобы затраты на обработку бара составляли O(log n), а не O(n).

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