La estrategia utiliza el EMA y el indicador MACD de 255 ciclos para buscar oportunidades de inversión. Cuando el precio se aleja del EMA de 255, se realiza una entrada inversa en el MACD cuando se produce un tenedor o un tenedor muerto.
Utilizando la EMA de 255 ciclos como un criterio de tendencia a medio y largo plazo. El precio alejado de la EMA representa el ingreso a la zona de sobrecompra y sobreventa.
EMA superior establece la subida, EMA inferior establece la bajada, la anchura de la órbita se ajusta dinámicamente a través del indicador ATR.
Cuando el precio está por encima de la vía es zona de sobrecompra, cuando el precio está por debajo de la vía es zona de sobreventa. En estos casos, espere a que aparezca la señal de inversión.
El indicador MACD utiliza los parámetros estándar ((12,26,9)). Cuando el MACD tiene un tenedor dorado, es una señal de varios puntos, y cuando tiene un tenedor muerto, es una señal de puntos vacíos.
En combinación con las señales de sobreventa y sobrecompra de EMA y MACD, se toma una entrada inversa cuando el precio se aleja de la EMA y el MACD se invierte.
El uso de EMA de 255 ciclos permite un mejor juicio de la dirección de la tendencia a medio y largo plazo.
El MACD Gold Fork Dead Fork puede ser más sensible para capturar las oportunidades de reversión a corto plazo.
La configuración del campo de la trayectoria de la EMA arriba y abajo permite determinar las zonas de sobreventa y sobrecompra, evitando la fluctuación de la tendencia.
Las estrategias de inversión, que se pueden entrar antes de que el precio se invierta, tienen cierta planificación.
El uso de un ATR dinámico para detener el daño puede controlar el riesgo de manera efectiva.
Las señales del MACD pueden dar un falso giro y causar pérdidas innecesarias.
La probabilidad de reversión es mayor en el caso de una fuerte tendencia, por lo que se debe evitar la reversión ciega.
Si la configuración de stop loss es demasiado pequeña, puede provocar que se active el stop loss, y si la configuración es demasiado grande, puede no controlar el riesgo.
La configuración incorrecta de los parámetros también puede afectar la eficacia de la estrategia, que necesita ser optimizada mediante pruebas repetidas.
Los costos de transacción también afectan a los ingresos finales, y se debe considerar su impacto en la estrategia.
Se pueden probar diferentes parámetros de la EMA para encontrar indicadores de tendencias a medio y largo plazo más adecuados.
Se pueden probar otros indicadores en combinación con la EMA para determinar las zonas de sobreventa y sobrecompra. Por ejemplo, las bandas de Brin, KD, RSI, etc.
Los parámetros del MACD también se pueden optimizar para encontrar parámetros de combinación más sensibles o estables.
Se pueden probar otras formas de detener la pérdida, como el trailing stop para bloquear las ganancias.
Se pueden optimizar los parámetros para diferentes ciclos de diferentes variedades, lo que hace que las estrategias sean más adaptables.
Se puede combinar con indicadores de la fuerza de la tendencia para evitar una reversión de una tendencia fuerte.
La estrategia integra un juicio de tendencia a largo plazo en la EMA y una señal de reversión a corto plazo en el MACD, y es una estrategia de reversión básica en el comercio inverso en zonas de sobreventa y sobreventa. La estrategia tiene ciertas ventajas, pero también hay algunos riesgos que deben evitarse. Mediante la optimización continua de los parámetros y el control del riesgo, la estrategia puede convertirse en una estrategia de comercio cuantitativa eficiente.
/*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")