
EMA Multiple Trend Filtering и ATR Tracking Stop Loss Mixed Quantification Strategy - это всеобъемлющая торговая система, которая объединяет в себе несколько ключевых элементов технического анализа. В основе стратегии лежит использование многоциклических скользящих средних индексов (EMA) в качестве фильтров для подтверждения тенденций, а также создание динамической системы стоп-слежения в сочетании со средним реальным диапазоном (ATR).
Основные принципы этой стратегии можно разделить на четыре ключевых компонента:
Подтверждение многочисленных тенденций EMA: Стратегия использует показательную скользящую среднюю (EMA) за четыре различных периода (EMA 20, 50, 100 и 200) для определения направления рыночной тенденции. Она рассматривается как тенденция к росту только тогда, когда цена одновременно находится выше всех четырех EMA; она рассматривается как тенденция к снижению только тогда, когда цена одновременно находится ниже всех четырех EMA.
Система ATR для отслеживания потерьATR является индикатором рыночной волатильности, который устанавливается путем умножения его на коэффициент чувствительности (по умолчанию 3.0) для установления стоп-дальности. Стоп-линия автоматически корректируется в зависимости от изменения цены, постепенно перемещается вверх при повышении цены и остается фиксированной при падении цены, таким образом, блокируя прибыль и ограничивая потери.
Цена и стоп-линия пересекаются: Сигнал покупки стратегии возникает, когда цена пересекает линию остановки отслеживания ATR вверх и удовлетворяет условиям восходящего тренда; сигнал продажи возникает, когда цена пересекает линию остановки отслеживания ATR вниз и удовлетворяет условиям нисходящего тренда. Этот перекрестный сигнальный механизм в сочетании с признанием тренда помогает захватить поворотные точки тренда.
Фильтрация по времени сделки: В стратегии введена функция фильтрации по времени торговли, которая по умолчанию устанавливается на “0930-1600” (в США стандартное время торговли). Этот фильтр гарантирует, что торговые сигналы генерируются только в указанные активные торговые часы, избегая потенциального риска низкой ликвидности или высокой волатильности.
Подтверждение многоуровневой тенденцииСтремясь к тому, чтобы цены находились одновременно на одной стороне четырех различных периодических ЭМА, стратегия значительно повышает надежность подтверждения тренда, эффективно отфильтровывает ложные сигналы в шокирующих рынках и снижает частоту ненужных сделок.
Динамическое управление рискамиATR Tracking Stop System автоматически корректирует стоп-дистанцию в зависимости от реальной волатильности рынка, что означает, что цены на более волатильных рынках получают больше свободы для действий, а на менее волатильных рынках используются более тесные стопы, что обеспечивает динамическую адаптацию к риску.
Высокая настройка: Стратегия предоставляет несколько регулируемых параметров, включая циклы ATR, коэффициент чувствительности и настройки на время торговли, что позволяет трейдерам оптимизировать настройки в соответствии с различными рыночными характеристиками и личными предпочтениями в отношении риска.
Оптимизация фильтрации времениФильтрация по времени торгов позволяет стратегии сосредоточиться на торговле в наиболее активные и наиболее ликвидные периоды рынка, избегая потенциального риска в предпродажно-послепродажное или другие периоды низкой ликвидности.
Интуитивный визуальный отзыв: Стратегия четко отображает на графике линии EMA, отслеживает линии стоп-лосс и сигналы о покупке и продаже, а также визуально отражает текущую позицию цены по отношению к линии стоп-лосс с помощью изменения цвета столбцовой диаграммы, что позволяет трейдерам контролировать состояние стратегии в реальном времени.
Задержка переходаНесмотря на повышенную надежность сигнала, многочисленные фильтрации EMA вводят определенные задержки, которые могут привести к тому, что часть потенциальной прибыли может быть пропущена в начале тренда или слишком поздно выйти в конце тренда. Это неизбежный баланс между надежностью и своевременностью.
Недостаточно хорошие показатели на горизонтальном рынкеПри отсутствии четкой тенденции на рынке, где цена часто пересекает несколько ЭМА, стратегии могут не удовлетворять всем условиям фильтрации ЭМА, что может привести к упущению потенциальных торговых возможностей или созданию слишком много ложных сигналов.
Параметр Чувствительность: эффективность стратегии сильно зависит от настроек ключевых параметров, таких как коэффициент чувствительности ATR, ATR-цикл. Неправильные параметры могут привести к чрезмерной сдерживаемости (частое запускание) или чрезмерной разгибаемости (большие потери). Рекомендуется оптимизировать эти параметры путем обратной проверки в различных рыночных условиях.
Риск возникновения внезапных событийATR может быть не в состоянии своевременно отслеживать убытки в случае значительных новостей или резких колебаний цен, вызванных событиями Black Swan, что приводит к тому, что фактические убытки превышают ожидания. Рекомендуется использовать максимальный риск в сочетании с использованием жестких ограничений на убытки.
Риски чрезмерной торговлиНесмотря на многоуровневые фильтры, в высоко волатильных рынках частое пересечение цен с ATR, отслеживающим стоп-линии, может привести к чрезмерной торговле и увеличению стоимости торговли. Для смягчения этой проблемы можно рассмотреть вопрос о увеличении минимального требования времени хранения.
Повышение показателя интенсивности тренда: В настоящее время стратегия основана только на определении тренда относительно позиции цены по отношению к нескольким EMA. Можно рассмотреть возможность увеличения показателей интенсивности тренда, таких как ADX (индекс среднего направления), для установления минимального порога интенсивности тренда и дальнейшей фильтрации сигналов в условиях слабой тенденции.
Введение подтверждения объема сделки: Включение анализа объема сделок в логику генерации сигналов, требуя, чтобы сигнал покупки и продажи сопровождался подтверждением достаточного объема сделок, помогает повысить надежность сигнала. Например, можно требовать, чтобы объем сделок во время генерации сигнала был выше, чем средний объем сделок за последние N циклов.
Оптимизация механизма адаптации стоп-параметровПри использовании фиксированного коэффициента чувствительности ATR в текущей стратегии можно рассмотреть возможность реализации механизма адаптивной корректировки параметров, основанной на исторической волатильности или состоянии рынка. Например, автоматическое увеличение коэффициента чувствительности в высоко волатильных рынках и снижение коэффициента чувствительности в низко волатильных рынках.
Фильтрация прибыльности и рискованности: Добавление механизма фильтрации сигналов на основе прогнозируемой прибыли и риска-возвращения, выполнение только сделок с ожидаемым риском-возвращением, превышающим определенную отметку. Это помогает оптимизировать эффективность использования капитала и сосредоточиться на высококачественных торговых возможностях.
Классификация состояния рынка и переключение стратегий: реализация механизма автоматической идентификации состояния рынка ((тренд/шок) и изменение параметров стратегии в зависимости от динамики различных состояний рынка или переключение различных логик стратегии. Например, использование текущей стратегии в четко трендовых рынках, переключение на средневзвешенную стратегию возврата в шокирующих.
Интеграция базовых фильтровДля конкретных классов активов можно рассмотреть возможность интеграции соответствующих фундаментальных показателей или фильтров событий, чтобы избежать торговли до и после публикации важных экономических данных или других событий с высокой неопределенностью.
EMA многократная тенденция фильтрации и ATR отслеживания остановки комбинированной количественной стратегии является целостной торговой системы, которая сочетает в себе тенденции отслеживания и управления рисками. Благодаря многократным механизмам, включающим подтверждение тенденции многократного цикла EMA, ATR динамического отслеживания остановки, ценового перекрестного сигнала и фильтрации периода торговли, эта стратегия обеспечивает хорошую способность к контролю риска при одновременном захвате среднесрочных и долгосрочных тенденций.
Основным преимуществом этой стратегии является то, что многоуровневое подтверждение тренда повышает надежность сигнала, в то время как ATR отслеживает убытки и обеспечивает динамическое управление рисками, адаптированные к волатильности рынка. Тем не менее, стратегия также имеет потенциальные риски, такие как задержка перехода тренда, плохая работа поперечного рынка и чувствительность параметров.
Существует еще много возможностей для оптимизации этой стратегии, включая такие меры, как индикаторы силы тренда, подтверждение объема торговли и механизм самостоятельного адаптации параметров. Самое важное, что трейдер должен корректировать ключевые параметры в соответствии с конкретными торговыми типами и рыночной средой с достаточной обратной связью и рассмотреть возможность использования этой стратегии в качестве части более крупной торговой системы в сочетании с другими взаимодополняющими стратегиями для достижения наилучших результатов.
/*backtest
start: 2025-07-17 00:00:00
end: 2025-07-24 00:00:00
period: 5m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"SOL_USDT"}]
*/
//@version=5
//Credits to HPotter who is the creator of the original code.
//Created as a strategy with an added EMA Trend Filter by shannonnhxrk
//Added a time button so you can adjust what times it signals.
//@version=5
strategy("UT Bot Strategy with EMA Trend Filter", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// === INPUTS ===
src = close
keyvalue = input.float(3.0, title="Key Value (Sensitivity)", step=0.5)
atrperiod = input.int(10, title="ATR Period")
xATR = ta.atr(atrperiod)
nLoss = keyvalue * xATR
// === EMAs ===
ema20 = ta.ema(src, 20)
ema50 = ta.ema(src, 50)
ema100 = ta.ema(src, 100)
ema200 = ta.ema(src, 200)
plot(ema20, color=color.orange, title="EMA 20")
plot(ema50, color=color.blue, title="EMA 50")
plot(ema100, color=color.purple, title="EMA 100")
plot(ema200, color=color.black, title="EMA 200")
// === Trend Filters ===
isUptrend = close > ema20 and close > ema50 and close > ema100 and close > ema200
isDowntrend = close < ema20 and close < ema50 and close < ema100 and close < ema200
// === ATR Trailing Stop ===
var float xATRTrailingStop = na
xATRTrailingStop := src > nz(xATRTrailingStop[1], 0) and src[1] > nz(xATRTrailingStop[1]) ? math.max(nz(xATRTrailingStop[1]), src - nLoss) :
src < nz(xATRTrailingStop[1]) and src[1] < nz(xATRTrailingStop[1]) ? math.min(nz(xATRTrailingStop[1]), src + nLoss) :
src > nz(xATRTrailingStop[1]) ? src - nLoss : src + nLoss
// === Time Filter ===
// === Buy/Sell Conditions with Time Filter ===
buy = ta.crossover(src, xATRTrailingStop) and isUptrend
sell = ta.crossunder(src, xATRTrailingStop) and isDowntrend
// === Strategy Execution ===
if buy
strategy.close("Short")
strategy.entry("Long", strategy.long)
if sell
strategy.close("Long")
strategy.entry("Short", strategy.short)
// === Visuals ===
plotshape(buy, title="Buy", style=shape.labelup, location=location.belowbar, color=color.green, text="Buy", textcolor=color.white, size=size.tiny)
plotshape(sell, title="Sell", style=shape.labeldown, location=location.abovebar, color=color.red, text="Sell", textcolor=color.white, size=size.tiny)
plot(xATRTrailingStop, color=buy ? color.green : sell ? color.red : color.gray, title="Trailing Stop")
barcolor(src > xATRTrailingStop ? color.green : color.red)