Эта стратегия использует 255 циклов EMA и MACD индикатора для поиска возможности для обратной торговли. Когда цена удаляется от 255 EMA, во время появления золотой или мертвой форки MACD производится обратный вход.
Использование 255 циклов EMA для определения среднесрочных и долгосрочных тенденций. Отход от EMA означает переход в зону сверхпокупок и сверхпродаж.
Верхняя часть EMA устанавливается вверх, нижняя часть EMA - вниз, а ширина орбиты динамически регулируется с помощью индикатора ATR.
Когда цена выше верхней полосы, это зона сверхпокупок, когда цена ниже нижней полосы, это зона сверхпродаж. В этих случаях ждите обратного сигнала.
MACD использует стандартные параметры ((12,26,9)). При использовании золотой форки MACD используется многоголовый сигнал, а при использовании мертвой форки - пустой сигнал.
В сочетании с сигналом о перекупке и перепродаже по EMA и MACD, используется обратный вход, когда цена отходит от EMA и MACD переворачивается.
Используя 255 циклов EMA, можно лучше определить направление среднесрочных и долгосрочных тенденций.
MACD Gold Fork Dead Fork может быть более чувствительным к краткосрочным возможностям поворота.
Установка орбитального поля EMA позволяет определить зоны перепродажи и перекупа, чтобы избежать волнообразного движения в тренде.
Стратегия обратного трейдинга, в которую можно войти до того, как цена перевернется, имеет определенную планомерность.
Применение динамического ATR-стоп-лома может эффективно контролировать риск.
Сигналы MACD могут быть ложно перевернуты, что может привести к ненужным потерям.
В случае сильного тренда вероятность неудачи поворота выше, поэтому следует избегать слепого поворота.
Слишком маленькая настройка может привести к возникновению сбоев, а слишком большая - к недостаточному контролю риска.
Неправильная настройка параметров также может повлиять на эффективность стратегии, которая требует повторного тестирования и оптимизации.
Расходы на транзакции также влияют на конечную прибыль, поэтому необходимо учитывать их влияние на стратегию.
Можно тестировать различные циклические параметры EMA в поисках более подходящих среднесрочных и долгосрочных показателей.
Можно попробовать другие индикаторы в сочетании с EMA, чтобы определить зоны перепродажи. Например, Brin Belt, KD, RSI и т. Д.
Параметры MACD также могут быть оптимизированы, чтобы найти более чувствительные или стабильные комбинации.
Можно проверить другие способы остановки, например, trailing stop, чтобы закрепить прибыль.
Параметры могут быть оптимизированы в зависимости от различных циклов разных сортов, чтобы сделать стратегию более адаптивной.
Для предотвращения реверсии в сильных тенденциях можно использовать индикатор силы тренда.
Стратегия, объединяющая долгосрочные трендовые суждения в EMA и краткосрочные обратные сигналы MACD, является основополагающей стратегией обратной торговли в зоне перепродажи. У этой стратегии есть определенные преимущества, но также есть некоторые риски, от которых нужно остерегаться.
/*backtest
start: 2023-09-12 00:00:00
end: 2023-09-19 00:00:00
period: 15m
basePeriod: 5m
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/
// © bufirolas
//--- From 15 Trading Examples by Trader Alyx ---
// Seems like this strategy works better if we reverse the EMA filter logic.
// "Description: This basic scalping strategy allows you to enter the market based upon sentiment
// provided by the EMA, set at 255 periods. When price is trading below the 255 EMA, you would
// look to enter a LONG BUY positions, and when price is trading above the 255 EMA, you would
// look to enter a SELL SHORT position. The MACD lagging indicator will show you clear signals for
// when to do this. When the MACD lines cross in a bullish manner and price is below the 255
// EMA, buy. When the MACD lines cross in a bearish manner and price is above the 255 EMA,
// sell.
// NOTE: Make sure that price is trading away from the 255EMA before entering a LONG or SHORT
// position. As you can see in the chart below, the clearest signs for trade entry were presented
// when price was trading AWAY from the 255EMA"
//@version=4
// strategy("255 EMA Strategy", overlay=true, pyramiding=1, default_qty_type=strategy.cash, default_qty_value=100, commission_value = 0.04, initial_capital=100)
//Inputs
i_reverse=input(false, title="Trade Reverse")
i_EMAreverse=input(true, title="EMA Reverse Entry")
i_EMAlength=input(defval=255, title="EMA Length")
i_EMAexpander=input(defval=5, title="EMA Expander")
i_MACDmult=input(defval=1, minval=1, title="MACD Mult")
//SL & TP Calculations
i_SL=input(true, title="Use Swing Lo/Hi Stop Loss & Take Profit")
i_SwingLookback=input(20, title="Swing Lo/Hi Lookback")
i_SLExpander=input(defval=0, step=.2, title="SL Expander")*.01
i_TPExpander=input(defval=0, step=.2, title="TP Expander")*.01
//Strategy Variables
EMA=ema(close,i_EMAlength)
[macdLine, signalLine, histLine]=macd(close, 12*i_MACDmult, 26*i_MACDmult, 9*i_MACDmult)
EMAupper=EMA+((atr(100))*i_EMAexpander)
EMAlower=EMA-((atr(100))*i_EMAexpander)
//SL & TP Variables
SwingLow=lowest(i_SwingLookback)
SwingHigh=highest(i_SwingLookback)
//Calculations
EMAbuy=i_EMAreverse ? close > EMAupper : close < EMAlower
EMAsell=i_EMAreverse ? close < EMAlower : close > EMAupper
MACDbuy=crossover(macdLine, signalLine)
MACDsell=crossunder(macdLine, signalLine)
//SL & TP Calculations
bought=strategy.position_size != strategy.position_size[1]
lSL=valuewhen(bought, SwingLow, 0)*(1-i_SLExpander)
sSL=valuewhen(bought, SwingHigh, 0)*(1+i_SLExpander)
lTP=strategy.position_avg_price + (strategy.position_avg_price-(valuewhen(bought, SwingLow, 0))*(1-i_TPExpander))
sTP=strategy.position_avg_price - (valuewhen(bought, SwingHigh, 0) - strategy.position_avg_price)*(1+i_TPExpander*100)
islong=strategy.position_size > 0
isshort=strategy.position_size < 0
SL= islong ? lSL : isshort ? sSL : na
TP= islong ? lTP : isshort ? sTP : na
//Entries
strategy.entry("long", long=not i_reverse?true:false, when=EMAbuy and MACDbuy)
strategy.entry("short", long=not i_reverse?false:true, when=EMAsell and MACDsell)
//Exits
if i_SL
strategy.exit("longexit", "long", stop=SL, limit=TP)
strategy.exit("shortexit", "short", stop=SL, limit=TP)
//Plots
plot(EMA, "EMA", color=color.white, linewidth=2)
plot(EMAupper, "EMA Upper Band")
plot(EMAlower, "EMA Lower Band")
plot(i_SL ? SL : na, color=color.red, style=plot.style_cross, title="SL")
plot(i_SL ? TP : na, color=color.green, style=plot.style_cross, title="TP")