
La estrategia utiliza el cruce de la media EMA rápida (en el ciclo 9) y la media EMA lenta (en el ciclo 21) como señal de entrada, y se combina con un stop loss móvil para bloquear las ganancias y evitar retiros excesivos.
Cuando la línea EMA rápida rompe la línea EMA lenta desde abajo, se genera una señal de compra; cuando la línea EMA rápida rompe la línea EMA lenta desde arriba, se genera una señal de venta.
Una vez en el mercado, la estrategia rastrea en tiempo real los precios más altos y activa un stop loss móvil para bloquear los beneficios cuando el precio actual está por debajo del 2% de los precios más altos.
La solución al riesgo:
La estrategia combina las ventajas de la determinación de tendencias y la gestión de los riesgos, tanto en el caso de que se realice de forma indirecta, como para controlar el riesgo de manera efectiva. A través de la adaptación y optimización de los parámetros, puede aplicarse a diferentes tipos de mercados y variedades de operaciones, lo que merece la pena realizar pruebas adicionales.
/*backtest
start: 2023-12-12 00:00:00
end: 2023-12-19 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("EMA Crossover with Trailing Stop-Loss", overlay=true)
fastEMA = ema(close, 9)
slowEMA = ema(close, 21)
// Entry conditions
longCondition = crossover(fastEMA, slowEMA)
shortCondition = crossunder(fastEMA, slowEMA)
// Trailing stop-loss calculation
var float trailingStop = na
var float highestHigh = na
if (longCondition)
highestHigh := na
trailingStop := na
if (longCondition and high > highestHigh)
highestHigh := high
if (strategy.position_size > 0)
trailingStop := highestHigh * (1 - 0.02) // Adjust the trailing percentage as needed
// Execute trades
strategy.entry("Long", strategy.long, when=longCondition)
strategy.entry("Short", strategy.short, when=shortCondition)
// Apply trailing stop-loss to long positions
strategy.exit("Long", from_entry="Long", loss=trailingStop)
// Plot EMAs and Trailing Stop-Loss
plot(fastEMA, color=color.green, title="Fast EMA")
plot(slowEMA, color=color.red, title="Slow EMA")
plot(trailingStop, color=color.orange, title="Trailing Stop-Loss", linewidth=2)