
Esta es una estrategia de seguimiento de tendencias basada en señales cruzadas de promedios móviles de triple índice (EMA). La estrategia utiliza un indicador de EMA de 9 ciclos, 15 ciclos y 50 ciclos para determinar las señales cruzadas entre las medias a corto plazo y medias a largo plazo, y se combina con la media a largo plazo como un filtro de tendencia, mientras que se combina con un mecanismo de stop loss dinámico para administrar el riesgo de negociación.
La lógica central de la estrategia es determinar el momento de negociación mediante la monitorización de señales cruzadas de EMA de 9 ciclos y EMA de 15 ciclos, y el uso de EMA de 50 ciclos como indicador de confirmación de tendencia. En concreto:
Se trata de una estrategia de seguimiento de tendencias diseñada de manera razonable y lógica. La combinación de múltiples líneas medias garantiza la fiabilidad de la señal y permite un seguimiento eficaz de las tendencias. El mecanismo de gestión de riesgos incorporado garantiza el funcionamiento estable de la estrategia.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA Crossover Strategy with 50 EMA Filter", overlay=true)
// Customizable Inputs
ema9Length = input(9, title="EMA 9 Length")
ema15Length = input(15, title="EMA 15 Length")
ema50Length = input(50, title="EMA 50 Length")
stopLossPoints = input(100, title="Stop Loss Points")
takeProfitPoints = input(200, title="Take Profit Points")
// Calculate EMAs
ema9 = ta.ema(close, ema9Length)
ema15 = ta.ema(close, ema15Length)
ema50 = ta.ema(close, ema50Length)
// Detect crossovers
crossover_above = ta.crossover(ema9, ema15)
crossover_below = ta.crossunder(ema9, ema15)
// Plot EMAs
plot(ema9, color=color.blue, title="EMA 9")
plot(ema15, color=color.red, title="EMA 15")
// Make the 50 EMA invisible
plot(ema50, color=color.new(color.white, 100), title="EMA 50", display=display.none)
// Plot buy and sell signals as shapes
plotshape(crossover_above and close > ema50, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(crossover_below and close < ema50, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)
// Execute trades
if (crossover_above and close > ema50)
strategy.entry("Buy", strategy.long)
if (crossover_below and close < ema50)
strategy.close("Buy")
// Apply stop loss and take profit
if (crossover_above and close > ema50)
strategy.exit("Exit", from_entry="Buy", loss=stopLossPoints, profit=takeProfitPoints)
// Alerts for notifications
if (crossover_above and close > ema50)
alert("EMA 9 crossed above EMA 15 with price above EMA 50 - Buy Signal", alert.freq_once_per_bar_close)
if (crossover_below and close < ema50)
alert("EMA 9 crossed below EMA 15 with price below EMA 50 - Sell Signal", alert.freq_once_per_bar_close)