A estratégia usa os indicadores EMA e MACD de 255 ciclos para procurar oportunidades de negociação de reversão. Quando o preço se afasta da EMA de 255, a entrada de reversão ocorre quando o MACD se torna um forco de ouro ou um forco morto.
Usando a EMA de 255 ciclos como uma tendência de médio a longo prazo. O preço que se afasta da EMA representa a entrada em uma área de supercompra e supervenda.
O EMA superior define o traçado de subida e o EMA inferior o traçado de descida, sendo a largura da trajetória ajustada dinamicamente através do indicador ATR.
Quando o preço está acima da linha de alta, é uma zona de supera compra, quando o preço está abaixo da linha de baixa, é uma zona de supera venda. Nesses casos, aguarde um sinal de reversão.
O indicador MACD usa os parâmetros padrão ((12, 26, 9) ]. Quando o MACD Gold Fork é um sinal de multi-cabeça, quando o Dead Fork é um sinal de cabeçalho vazio.
Combinando os sinais de EMAs e MACDs, quando o preço se afasta da EMA e o MACD reverte, a entrada inversa é tomada.
O uso de 255 EMAs de ciclo permite um melhor julgamento da direção da tendência a médio e longo prazo.
O MACD Gold Fork Dead Fork pode ser mais sensível para capturar oportunidades de reversão de curto prazo.
A configuração do campo de trajetória EMA para cima e para baixo permite determinar áreas de sobrevenda e de sobrevenda, evitando o fluxo de ondas na tendência.
A estratégia de negociação reversa, que pode ser acessada antes da reversão do preço, tem uma certa planejamento.
O uso de ATR stop-loss dinâmico pode controlar o risco de forma eficaz.
Os sinais do MACD podem ter uma falsa inversão, causando perdas desnecessárias.
A reversão de uma forte tendência tem uma maior probabilidade de falha, evitando a reversão cega.
A configuração de stop loss muito pequena pode causar o disparo do stop loss, e a configuração de stop loss muito grande pode não controlar o risco.
A configuração inadequada dos parâmetros também pode afetar a eficácia da estratégia, que precisa ser testada e otimizada repetidamente.
Os custos de transação também afetam o lucro final, e é necessário considerar a sua influência na estratégia.
Pode-se testar diferentes parâmetros de EMA de ciclo para encontrar indicadores de tendência de médio e longo prazo mais adequados.
Pode-se tentar outros indicadores em combinação com a EMA para determinar áreas de sobrevenda e sobrecompra. Por exemplo, Brinks, KD, RSI, etc.
Os parâmetros do MACD também podem ser otimizados para encontrar parâmetros de combinação mais sensíveis ou estáveis.
Pode-se testar outras formas de parar o prejuízo, tais como trailing stop loss para bloquear o lucro.
Os parâmetros podem ser otimizados de acordo com diferentes ciclos de diferentes variedades, tornando as estratégias mais adaptáveis.
Pode ser combinado com um indicador de força de tendência para evitar a reversão de uma tendência forte.
A estratégia integra o julgamento de tendências de longo prazo na EMA e os sinais de reversão de curto prazo do MACD, e é uma estratégia de reversão básica em áreas de sobrevenda e sobrevenda. A estratégia tem certas vantagens, mas também há alguns riscos a serem evitados.
/*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")