Стратегия следования за трендом на основе ATR и EMA


Дата создания: 2024-02-23 14:34:24 Последнее изменение: 2024-02-23 14:34:24
Копировать: 0 Количество просмотров: 825
1
Подписаться
1617
Подписчики

Стратегия следования за трендом на основе ATR и EMA

Обзор

Основная идея этой стратегии заключается в том, чтобы использовать диапазон колебаний цены, рассчитанный показателем ATR, для определения ценового прорыва, а также показатель EMA для определения общего направления тенденции, чтобы реализовать трендовую торговлю. Когда цена прорывается вдоль или вниз от диапазона ATR, если направление прорыва совпадает с направлением EMA, то вход в рынок делает больше или делает меньше.

Стратегический принцип

Во-первых, эта стратегия использует индикатор ATR для расчета диапазона колебаний цен в течение определенного периода. Верхний предел диапазона ATR - SMA + ATR, а нижний - SMA-ATR.

Торговые возможности возникают, когда цена выходит из ATR вверх или вниз. В этом случае необходимо определить направление. Если вы выходите вверх, вы делаете больше, если вы выходите вниз, вы делаете пустое.

Наконец, стратегия использует ценовое возвращение в пределы ATR в качестве сигнала для ликвидации. Если цена пересекает нижнюю границу, она будет ликвидирована. Если цена пересекает верхнюю границу, она будет ликвидирована.

Стратегические преимущества

  1. Используя показатель ATR для определения прорыва, можно эффективно улавливать прорыв в ценовом тренде. Диапазон ATR устанавливается в соответствии с волатильностью, не вызывая слишком больших помех нормальному колебанию.

  2. Добавление показателя EMA в качестве ориентировочной оценки, чтобы избежать торговли в направлении, противоположном тренду, может значительно повысить уровень прибыли.

  3. Применение ценового возврата в пределах ATR в качестве метода остановки убытков позволяет максимально контролировать риск потери.

Стратегический риск

  1. В условиях шока ATR-диапазон может быть часто нарушен, что может привести к чрезмерному количеству недействительных сделок и увеличению убытков.

  2. Поскольку EMA является индикатором направления тенденции, существует определенная отсталость. Таким образом, можно упустить возможность краткосрочного изменения цены.

  3. Стоп-лосс - это метод возврата цены, который может быть расширен из-за внезапных событий.

Направление оптимизации стратегии

  1. Можно рассматривать тенденции и отступления в сочетании с другими показателями, чтобы избежать ошибок в одном суждении EMA. Например, MACD, KDJ и т. Д.

  2. Можно рассмотреть возможность корректировки параметров ATR в режиме реального времени в зависимости от рыночных колебаний, чтобы сделать диапазон ATR более близким к реальным колебаниям.

  3. Мобильный метод остановки может быть объединен с реальным временем регулирования точки остановки, чтобы максимально контролировать риск потерь.

Подвести итог

Эта стратегия имеет четкую общую концепцию, использует показатели ATR для определения ценового прорыва и совмещает направление оценки EMA, чтобы эффективно следовать тенденции; метод остановки прямой и простой. Но в то же время существует определенный риск, большой простор для оптимизации, который ожидает дальнейшего тестирования и корректировки. В целом, эта стратегия подходит для трендовых трейдеров, которые стремятся к высокой выигрышной доходности.

Исходный код стратегии
/*backtest
start: 2024-01-23 00:00:00
end: 2024-02-22 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © cwagoner78
//@version=4
strategy("cATRpillar", overlay=true)
//------------

//inputs
lookback = input(title="Periods", type=input.integer, defval=37)
atrMult = input(title="Range Multiplier", type=input.float, defval=.2)
takeProfit = input(title="Take Profit", type=input.float, defval=5000)
stopLoss = input(title="Stop Loss", type=input.float, defval=2500)
lots = input(title="Lots to Trade", type=input.float, defval=1)
//------------

//indicators
atr=atr(lookback)*atrMult
sma=sma(close, lookback)
ema=ema(close,lookback*2)
rangeLo=sma-atr
rangeHi=sma+atr
//------------

//draw objects
p0 =plot(close, title="Close", color=#26A69A, linewidth=0, transp=80,style=plot.style_stepline)
p1 =plot(rangeHi, title="High", color=color.fuchsia, linewidth=0, transp=80,style=plot.style_stepline)
p2 =plot(rangeLo, title="Low", color=color.lime, linewidth=0, transp=80,style=plot.style_stepline)
p3 =plot(ema, title="EMA", color=color.white, linewidth=0, transp=80, style=plot.style_stepline)
fill(p1, p0, color=color.fuchsia)
fill(p0, p2, color=color.lime)
//------------

//Trading
atrShort=open[1] > rangeHi and open < rangeLo
atrLong=open[1] < rangeLo and open > rangeHi
exitLong=open>rangeLo
exitShort=open<rangeHi

//Long
longCondition=atrLong and open>ema+atr
strategy.entry(id="cATRpillar-Buy", long=true, when=longCondition)
longCloseCondition=exitLong
strategy.exit(id="cATRpillar-Exit", qty=lots, profit=takeProfit, loss=stopLoss, when=longCloseCondition)

//Short
shortCondition=atrShort and open<ema-atr
strategy.entry(id="cATRpillar-Sell", long=false, when=shortCondition)
shortCloseCondition=exitShort
strategy.exit(id="cATRpillar-Exit",  qty=lots, profit=takeProfit, loss=stopLoss, when=shortCloseCondition)

plotshape(shortCondition,  title= "Short", location=location.belowbar, color=color.fuchsia, transp=80, style=shape.triangledown, size=size.tiny)
plotshape(longCondition,  title= "Long", location=location.abovebar, color=color.lime, transp=80, style=shape.triangleup, size=size.tiny)
//------------