
La estrategia es un sistema de seguimiento de tendencias basado en el cruce de las medias móviles de dos índices (EMA), combinado con un mecanismo de salida por etapas para optimizar los beneficios de las operaciones. La estrategia utiliza los EMA de 9 y 21 ciclos como líneas rápidas y lentas, para identificar los cambios en las tendencias del mercado a través de sus cruces, mientras que se utiliza un esquema de salida de posición en dos etapas para equilibrar el riesgo y los beneficios.
La lógica central de la estrategia se basa en la señal de cruce de la EMA rápida ((9 ciclos) y la EMA lenta ((21 ciclos)). Cuando se cruza la línea lenta en la línea rápida, el sistema abre una posición con 0.02 para abrir una posición con 0.02 para abrir una posición con 0.02 para abrir una posición con 0.02 para abrir una posición con 0.02 para abrir una posición con 0.02 para abrir una posición con 0.02 para abrir una posición con 0.02 para abrir una posición con 0.02 para abrir una posición con 0.02 para abrir una posición con 0.02 para abrir una posición con 0.01 para cerrar una posición con 0.01 para cerrar una posición con 0.01 para cerrar una posición con 0.01 para cerrar una posición con 0.01 para cerrar una posición con 0.01 para cerrar una posición con 0.01 para cerrar una posición con 0.01 para cerrar una posición con 0.01 para cerrar una posición con 0.01 para cerrar una posición con 0.01 para cerrar una posición con 0.01 para cerrar una posición con 0.01 para cerrar una posición con 0.01 para cerrar una posición con 0.01 para cerrar una posición con 0.01 para cer
Se trata de un sistema de negociación completo que combina la clásica estrategia de cruce de línea con la gestión moderna de posiciones. La estrategia mejora la rentabilidad de la estrategia de cruce de línea tradicional a través de un mecanismo de salida por etapas, pero aún requiere que el comerciante realice los ajustes adecuados según el entorno específico del mercado y su propia capacidad de asumir riesgos.
/*backtest
start: 2024-02-25 00:00:00
end: 2025-02-22 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/
//@version=5
strategy("EMA Crossover with Partial Exit", overlay=true, default_qty_type=strategy.cash, default_qty_value=50)
// Define lot sizes
lotSize = 0.02 // Initial trade size
partialLot = 0.01 // Half quantity to close at 20 pips profit
profitTarget = 200 // 20 pips = 200 points (for Forex, adjust accordingly)
// Define EMA lengths
fastLength = 9
slowLength = 21
// Compute EMAs
fastEMA = ta.ema(close, fastLength)
slowEMA = ta.ema(close, slowLength)
// Define crossover conditions
longEntry = ta.crossover(fastEMA, slowEMA) // Buy when 9 EMA crosses above 21 EMA
shortEntry = ta.crossunder(fastEMA, slowEMA) // Sell when 9 EMA crosses below 21 EMA
// Track trade state
var float entryPrice = na
var bool inTrade = false
var bool isLong = false
// Entry Logic (Enter with 0.02 lot size)
if (longEntry and not inTrade)
strategy.entry("Long", strategy.long, qty=lotSize)
entryPrice := close
inTrade := true
isLong := true
if (shortEntry and not inTrade)
strategy.entry("Short", strategy.short, qty=lotSize)
entryPrice := close
inTrade := true
isLong := false
// Partial Exit Logic (Close 0.01 lot after 20 pips profit)
if (isLong and inTrade and close >= entryPrice + profitTarget * syminfo.mintick)
strategy.close("Long", qty=partialLot)
if (not isLong and inTrade and close <= entryPrice - profitTarget * syminfo.mintick)
strategy.close("Short", qty=partialLot)
// Full Exit (Close remaining 0.01 lot at the next major crossover)
if (isLong and shortEntry)
strategy.close("Long") // Close remaining position
inTrade := false
if (not isLong and longEntry)
strategy.close("Short") // Close remaining position
inTrade := false
// Plot EMAs
plot(fastEMA, color=color.blue, title="9 EMA")
plot(slowEMA, color=color.red, title="21 EMA")
// Mark Buy/Sell Signals
plotshape(series=longEntry, location=location.belowbar, color=color.green, style=shape.labelup, title="BUY Signal")
plotshape(series=shortEntry, location=location.abovebar, color=color.red, style=shape.labeldown, title="SELL Signal")