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

Стратегии

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 передали на проверку движка, но не подтвердили.

Гипотеза

Адаптировано по статье из дайджеста FMZ «来自YouTube大神的「神奇的双EMA均线策略」» автора 发明者量化-小小梦 (https://www.fmz.com/digest-topic/9670, 2022-10-09). Благодарность автору и DonovanWall за Range Filter (индикатор «VuManChu Swing Free»). Это NOT точный перенос (урок L167). В исходнике торговали 15m ETH/BTC с фиксированным стопом в 30 пунктов и трейлингом в 30 пунктов. На ETH это примерно 0.1-0.2% цены, то есть около полной комиссии за вход и выход 0.10%; поэтому та версия изначально обречена из-за комиссий. Бэктест FMZ……Показать большеСвернуть

Адаптировано по статье из дайджеста FMZ «来自YouTube大神的「神奇的双EMA均线策略」» автора 发明者量化-小小梦 (https://www.fmz.com/digest-topic/9670, 2022-10-09). Благодарность автору и DonovanWall за Range Filter (индикатор «VuManChu Swing Free»). Это NOT точный перенос (урок L167). В исходнике торговали 15m ETH/BTC с фиксированным стопом в 30 пунктов и трейлингом в 30 пунктов. На ETH это примерно 0.1-0.2% цены, то есть около полной комиссии за вход и выход 0.10%; поэтому та версия изначально обречена из-за комиссий. Бэктест FMZ охватывал лишь 9 месяцев данных 2022 и считается непроверенным. MECHANISM, изложено с исходных принципов: Range Filter — это адаптивный к волатильности ступенчатый фильтр. Он сдвигается только тогда, когда цена закрытия выходит за полосу, ширина которой равна 3.5x дважды сглаженному среднему абсолютному изменению бара, поэтому направление меняется лишь после движения, значительного относительно недавнего шума. Сигнал на вход в исходнике срабатывает на FIRST баре нового направления фильтра (longCondition/shortCondition = смена состояния CondIni) и только если (a) EMA50 и EMA200 направлены одинаково, (b) тело свечи подтверждает направление (close>open для длинной позиции, close<open для короткой) и (c) цена закрытия находится по трендовую сторону от EMA50. Это вход в продолжение движения: пробой с поправкой на шум, совершаемый только в направлении более медленного тренда. Экономический агент: поздние последователи тренда и участники, чьи позиции закрываются по стопу, продлевающие движение после выхода цены из недавнего шумового диапазона (медленное распространение информации о тренде). ADAPTATIONS: бары 1H вместо 15m, поэтому типичное движение в каждой сделке в несколько раз превышает полную комиссию за вход и выход (1). (2) Стопы и трейлинги выражены в ATR, а не в фиксированных пунктах, поэтому масштабируются с учетом уровня цены и периода. (3) Инструмент — DOGEUSDT.BINANCE, а не BTC или ETH. BTC составляет около 44-62% корпуса, а в ETH есть более 8 активных записей в конвейере. DOGE — ликвидный бессрочный контракт USD-M с историей с середины -2020 (~6 лет данных 1H, ~53 тыс. баров) и 1H ATR около 0.9-1.3%, что обеспечивает валовое движение, необходимое для покрытия комиссий. Выбрана Binance, а не Hyperliquid, поскольку механизм основан исключительно на OHLCV (урок L168). (4) Короткие позиции разрешены, как и в исходнике; таким образом, это фьючерсная торговля USD-M с плечом 1x. Предусмотрено явное состояние FLAT: после выхода стратегия остается вне рынка до NEXT смены направления фильтра, удовлетворяющей всем фильтрам. Ожидаемое время в рынке — около 30-40%, вне рынка — около 60-70% (урок L150). SELECTION DISCLOSURE (урок L122): решения, принятые после изучения истории фабрики, — это символ (DOGE, выбранный за соотношение волатильности к комиссиям и низкую долю в корпусе), таймфрейм (1H, минимальный интервал, на котором расчеты дают результат выше 3x RT) и множители стопа/трейлинга ATR. Параметры Range Filter (20, 3.5) и EMA (50, 200) взяты из настроек по умолчанию в исходнике и зафиксированы, а не подобраны. PRE-REGISTERED VARIANT (урок L130): вариант B использует тот же вход, но без условий согласования с EMA50/200 и цены закрытия относительно EMA50 (только смена направления фильтра + цвет свечи). Он оценивается отдельно. Если B сравняется с A или превзойдет его, значит, фильтр EMA не приносит пользы; это будет отражено в отчете.

Реализует вариант A гипотезы: фиксированные исходные параметры RF(20,3.5) и EMA(50,200), адаптированные к 1H, со стопом и трейлингом, масштабированными через ATR. Вариант B — тот же код с use_ema_gate=false; его нужно оценить отдельным запуском. ATR входа, сторона позиции, цена входа и лучшее закрытие — скалярные атрибуты, зафиксированные при входе, поэтому они сохраняются после перезапуска. Кредитное плечо — 1.0; используются фьючерсы, поскольку стратегия открывает короткие позиции.

Код неудачи: no_edge, взят из первого измеренного отчета (согласно L159). В первом отчете коэффициент Шарпа составил 0.41, а CI от -0.36 до 1.17 охватывает 0; PF 1.16, просадка 33.9% против заранее зарегистрированного 25%. 2023 и 2026 принесли убыток, а прибыль была получена только в терциле волатильности при стрессовых условиях. Это NOT fee_edge: avg_trade_return_pct составлял 1.03% в первом отчете и 0.49% после оптимизации против минимального уровня для одной сделки Binance USD-M на 0.15%. Это также не……Показать большеСвернуть

Код неудачи: no_edge, взят из первого измеренного отчета (согласно L159). В первом отчете коэффициент Шарпа составил 0.41, а CI от -0.36 до 1.17 охватывает 0; PF 1.16, просадка 33.9% против заранее зарегистрированного 25%. 2023 и 2026 принесли убыток, а прибыль была получена только в терциле волатильности при стрессовых условиях. Это NOT fee_edge: avg_trade_return_pct составлял 1.03% в первом отчете и 0.49% после оптимизации против минимального уровня для одной сделки Binance USD-M на 0.15%. Это также не бета-доходность (бета 0.04, корреляция 0.41). Затем оптимизация провалила проверку на отложенной выборке HARD: коэффициент Шарпа -0.446 по 176 не использованным ранее сделкам за 444 дней — это достаточная выборка и измеренный отрицательный результат на будущих данных. Подбор параметров увеличил размер позиции и оборот (средняя позиция выросла с 49% до 87%, число сделок — с 455 до 833). Смоделированное проскальзывание поглотило 97% валовой прибыли, PF упал до 1.003, просадка достигла 61%, а капитал к 2026-04 снизился до -100%. Предварительно зарегистрированный прогноз подтвердился по 3 из 6 проверок. Проблема преимущества QA здесь не поднималась. Сочетание смены направления Range Filter и продолжения EMA50/200 на DOGE 1H не выдерживает проверку вне выборки. Оно пополняет список ранее провалившихся трендовых/пробойных стратегий DOGE (4H с тройным фильтром no_edge, переоптимизация пробоя сжатия 15m). Повторная оптимизация того же механизма не считается допустимой итерацией (L126). Вариант B (без фильтра EMA) не оценивался, поэтому он не дает свидетельств ни в пользу, ни против. Отдельно, и это не проверено: в оптимизированном дневном ряду MTM регулярно встречаются парные дни -X/+X (до -92%/+1175%), не согласующиеся с реализованной прибылью и убытком и завышающие заявленные коэффициент Шарпа и DSR. Это следует передать на проверку движка.

Реализация

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 — это инструмент для исследований и бумажной торговли, а не финансовая консультация или брокер. Результаты бэктестов и бумажной торговли являются гипотетическими. Торговля сопряжена с риском убытков.