Стратегии
DOGE Смена направления Range Filter с согласованием EMA50/200, длинные и короткие позиции, стоп ATR + трейлинг-выход ATR, без позиции между сигналами (DOGEUSDT.BINANCE 1H, чистый OHLCV)
Итог: Отменено
DogeRangeFilterEmaFlipLS
Сводка по итогам
DogeRangeFilterEmaFlipLS адаптировал Range Filter FMZ/DonovanWall и идею входа на продолжение EMA50/200 к DOGE 1H, используя стопы и трейлинг-выходы, масштабированные через ATR. Первый бэктест превысил порог комиссий (1.03% на сделку по 455 сделкам, +117%), но Sharpe составил лишь 0.41, просадка — 33.9%, а вся прибыль пришлась на периоды высокой волатильности, поэтому проверка бэктеста направила стратегию на оптимизацию. Оптимизация увеличила размер позиции и оборот, пока влияние издержек не достигло 97% валовой прибыли; PF упал до 1.003, просадка достигла 61%, а на отложенной выборке Sharpe составил -0.446 по 176 сделкам. После одной итерации аналитик отказался от неё как от no_edge; заранее зарегистрированный вариант B (без фильтра EMA) не оценивался, а артефакты парных дневных доходностей в ряду MTM передали на проверку движка, но не подтвердили.
Гипотеза
Реализует вариант A гипотезы: фиксированные исходные параметры RF(20,3.5) и EMA(50,200), адаптированные к 1H, со стопом и трейлингом, масштабированными через ATR. Вариант B — тот же код с use_ema_gate=false; его нужно оценить отдельным запуском. ATR входа, сторона позиции, цена входа и лучшее закрытие — скалярные атрибуты, зафиксированные при входе, поэтому они сохраняются после перезапуска. Кредитное плечо — 1.0; используются фьючерсы, поскольку стратегия открывает короткие позиции.
Реализация
DOGEUSDT USD-M бессрочный контракт, 1H. DonovanWall Range Filter (EMA(|dClose|,20), сглаженный через EMA(39) x3.5) с инкрементальным состоянием. Вход только на первой свече после смены направления фильтра (изменение состояния CondIni), если тело свечи подтверждает направление и, при use_ema_gate, EMA50/EMA200 согласованы, а закрытие находится по трендовую сторону от EMA50. Длинные и короткие позиции. Выход при закрытии свечи: по начальному стопу 2x от цены входа-ATR или трейлинг-стопу 3x от цены входа-ATR, рассчитанному от лучшего закрытия после входа; применяется более близкий стоп. После выхода стратегия остаётся вне рынка до следующей подходящей смены направления. Размер позиции: риск 1% капитала при стопе 2-ATR, номинал ограничен 1x капитала. Сигнал — (close - filter)/ATR, он непрерывен.
Результаты верификации
Необязательно: вернуть меньшее значение min_bars_required (например, 2) и включать should_enter при внутреннем счётчике self._n >= ema_slow + 2*rf_period, чтобы EMA прогревались на каждой свече.
Состояние индикатора начинает обновляться, только когда базовый шаблон накопит min_bars_required() = 210 свечей. До этого количества calculate_signal() не вызывается. Поэтому EMA200 инициализируется на закрытии свечи ~210, и для сходимости нужно ещё несколько сотен свечей; примерно на первых 200-400 свечах фильтр согласования EMA50/200 использует смещённый EMA200. На полной истории примерно из 53k свечей это несущественно, но может иметь значение в коротких скользящих окнах вне выборки.
Необязательно: задать якоря входа в on_position_opened или пересчитать якорь от avg_px_open на первой свече should_exit.
should_enter() записывает состояние позиции (_pos_side, _entry_price, _entry_atr, _best_close) до расчета размера ордера или его исполнения. Если затем ордер отбрасывается (размер 0 или ниже минимального номинала $5), состояние устаревает. В текущей реализации это безвредно: should_exit выполняется только при наличии позиции, а каждый новый вход перезаписывает состояние. Цена входа берется по закрытию бара, а не по avg_px_open, что согласуется с исполнением без задержки в бэктесте.
Убедись, что полный бэктест учитывает фандинг, и попроси аналитика указать PnL коротких позиций за вычетом фандинга.
Стратегия держит короткие позиции по бессрочному контракту USD-M (111 из 174 сделок в тестовом стенде) в среднем около 1.2 дней, но выплаты фандинга не входят в PnL стенда (funding_folded=false). Длинно-короткий портфель по DOGE платит или получает фандинг на каждой отметке 8h, пока позиция открыта.
Тестовый стенд (834 дней, 174 сделок) показывает PF 1.18 и Sharpe 0.34 с интервалом CI от -0.94 до 1.58. Вся доходность получена в терциле высокой волатильности (+42%). Спокойный терциль убыточен (9.3%), обычный — без изменений; преимущество похоже на эффект краша или трендового режима, а не на широкий рыночный эффект. 111 из 174 сделок — короткие, а фандинг не включён в PnL (NOT; funding_folded=false, 0 событий), поэтому экономика короткой стороны не измерена. Аналитику следует проверить результат за вычетом фандинга, сопоставить вариант B (use_ema_gate=false) с A, как было зарегистрировано заранее, и проверить концентрацию результата в нескольких крупнейших сделках стрессовых периодов. Влияние издержек — 21% валовой прибыли, это приемлемо.
Обзор бэктеста
- Шарп
- 0,41
- Общая доходность
- 117,17%
- Максимальная просадка
- 33,85%
- Всего сделок
- 455
- Доля прибыльных
- 37,1%
- Профит-фактор
- 1,16
455 сделок за 6.1 лет достаточно для измерения. Доходность на сделку составляет 1.03% от номинала, то есть около 7x минимального уровня комиссий 0.15% для фьючерсов Binance USD-M. Комиссии составляют 4.9% валовой прибыли.
Записи сделок сходятся: суммарный PnL сделок равен +$117.2k, что совпадает с total_return +117.2%, а end_unrealized составляет 0. Фандинг теперь учтён (-$6.1k по всем сделкам), поэтому замечание QA о том, что фандинг не измерялся, устранено.
Это не рыночная бета. Бета равна 0.04, корреляция — 0.41; портфель торгует в обе стороны (198 длинных позиций, 257 коротких). Доходность похожа на следование за трендом: прибыльны 37% сделок, средняя прибыль примерно в 1.97x раза больше среднего убытка.
Прибыль получена в 5 из 7 календарных лет (2020 и 2026 — неполные годы), а также во всех 7 указанных стрессовых периодах. Стратегия находится на рынке 30% времени, как и предсказывала гипотеза.
Сделки соответствуют заявленному механизму: входы происходят при смене направления Range Filter в сторону тренда EMA, выходы используют стопы и трейлинг-стопы ATR, а между сигналами позиции отсутствуют.
Преимущество невелико и зависит от нескольких крупных сделок. PF — 1.16, Sharpe 0.41 (95% CI -0.36–1.17), PSR 0.76. Без 5 лучших сделок PnL снизится до +$11k. Без 10 лучших результат составит -$71k.
Опасения QA по поводу режимов подтвердились. Вся доходность получена в трети дней с самой высокой волатильностью (+173%). Спокойная треть (-32%) и обычная треть (-14%) дали убыток; 2023 потерял $57k.
Короткие позиции примерно выходят в ноль после учета фандинга: +$13 тыс. на 257 сделках. Основная прибыль приходится на длинные позиции (+$104 тыс.).
Максимальная просадка — 33.9%; восстановление заняло 873 дней. Это намного выше стандартного лимита 20% для фьючерсов.
Возможная ошибка тестового стенда в daily_returns, не проверена: несколько пар дней колеблются примерно на -20%, затем на +25%, хотя стратегия рискует лишь 1% на сделку (например, 2024-04-27/28); на последней свече виден непарный -27.96%. На кривой капитала в файле с подробностями таких движений нет, итог — $217.2k, что совпадает с записями сделок. Sharpe, VaR и CVaR рассчитаны по ряду daily_returns, поэтому до проверки им нельзя доверять.
Вариант B (без фильтра EMA), который гипотеза обязалась оценить, не запускался.
Анализ
Валовое движение на сделку превышает минимальный уровень комиссий. Значение avg_trade_return_pct в первом отчете — 1.03%, после оптимизации — 0.49%; минимальный уровень составляет 0.15% (0.20% при 2x) для USD-M на Binance. Комиссии не стали причиной неудачи.
Выборка большая: 455 сделок в первом отчёте, 833 после оптимизации и 176 в отложенной выборке.
Нет резких провалов чувствительности. PBO составляет 0.35, результат walk-forward-анализа не помечен как переобученный, а DSR — 0.96.
Это не бета. Бета равна 0.04-0.05, корреляция с бенчмарком — 0.3-0.4, поэтому длинно-короткий портфель не просто следует за DOGE.
Неудача HARD: коэффициент Шарпа на отложенной выборке — -0.446 по 176 сделкам за 444 не использованных ранее дней (2025-05-24—2026-08-11). Выборка достаточна, поэтому отрицательный результат измерен, а не обусловлен ее малым размером.
Первый измеренный отчёт уже был на грани. Sharpe составил 0.41, бутстрэп-интервал CI — -0.36–1.17 (пересекает 0); PSR 0.76, PF 1.16, максимальная просадка 33.9% при заранее зарегистрированном лимите 25%. 2023 дал убыток 25%, а 2026 YTD — убыток 31%. Для восстановления после просадки потребовалось 873 дней.
Оптимизация снизила rf_mult (с 3.5 до 2.35) и trail_atr_mult (с 3.0 до 1.93), а risk_pct повысила. Оборот почти удвоился, средняя позиция выросла с 49% до 87% капитала. Модельное влияние издержек достигло 97% валовой PnL, реализованный PF упал до 1.003, а просадка достигла 61%. Кривая капитала падает до -100% в апреле 2026.
Прибыль есть только в терциле высокой волатильности (+173% в первом отчёте). Спокойный терциль дал убыток 32%, обычный — 14%.
Заранее зарегистрированный прогноз прошёл 3 из 6 проверок. Не пройдены OOS проверки по Sharpe (0.59 против 0.7), просадке (61% против 25%) и PF (1.00 против 1.2).
Оптимизированные «Sharpe 0.81 / DSR 0.96» рассчитаны по дневному ряду MTM с регулярно повторяющимися парными днями -X/+X, например -85%/+572% на 2023-11-10/11, -92%/+1175% на 2024-06-06/07 и -92%/+1158% на 2026-04-13/14. Такая же картина, но в меньшем масштабе, видна в первом отчёте, включая итоговую свечу -27.96% на 2026-08-12. Эти дни не согласуются с реализованным PnL (PF 1.003). Подозреваю артефакт оценки по рынку, но механизм не проверен; нужна проверка движка. Статистика значимости на основе этого ряда ненадёжна.
не сохранено
сохранено
Сводка по итогам
Превышения минимальной комиссии на сделку недостаточно: преимущество, которое возникает только при высокой волатильности и при оптимизации допускает рост размера позиции и оборота (средняя позиция — с 49% до 87%, влияние издержек — 97% валовой прибыли), не выдержит проверку вне выборки; повторная оптимизация того же механизма следования за трендом/пробоя DOGE не считается допустимой итерацией.
Аналитик отказался от стратегии с кодом неудачи no_edge после провала проверки на отложенной выборке HARD (Sharpe -0.446 по 176 неизвестным ранее сделкам). Первый отчёт уже был на грани: показатель Sharpe CI находился по обе стороны порога 0, просадка превышала заранее зарегистрированный лимит 25%, убытки были в 2023 и 2026; пройдены лишь 3 из 6 заранее зарегистрированных проверок, и кандидат не прошёл программу FDR.
Стратегия продолжения движения в длинную и короткую сторону на DOGEUSDT.BINANCE 1H: вход на первом баре после смены направления фильтра DonovanWall Range Filter только при совпадении направления EMA50/200, цвета свечи и положения цены закрытия относительно EMA50; выход по стопу ATR или трейлинг-стопу ATR; между сигналами позиции отсутствуют.
Первый бэктест (2020-07–2026-08, 455 сделок) показал доходность +117.2%, Sharpe 0.41 (от CI -0.36 до 1.17 с учётом 95%), PF 1.16, среднюю доходность на сделку 1.03% и максимальную просадку 33.9%; вся прибыль пришлась на терциль высокой волатильности. После оптимизации (833 сделок) Sharpe walk-forward OOS составил 0.59, а PBO 0.35, но PF снизился до 1.003, просадка достигла 61%, модельные издержки забрали 97% валового PnL, а Sharpe на отложенной выборке составил -0.446 по 176 сделкам за 444 дней.
Анализ
来自YouTube大神的「神奇的双EMA均线策略」
Stratmill — это инструмент для исследований и бумажной торговли, а не финансовая консультация или брокер. Результаты бэктестов и бумажной торговли являются гипотетическими. Торговля сопряжена с риском убытков.