
La estrategia es un sistema de comercio automatizado basado en la teoría de la ruptura de la doble línea de equilibrio, combinado con la función de gestión de riesgos. El núcleo de la estrategia utiliza una media móvil de índices de 21 y 50 períodos (EMA) como indicador de señal, para juzgar los cambios en la tendencia del mercado a través de la cruza de la línea de equilibrio y ejecutar automáticamente las operaciones. El sistema integra las funciones de stop loss (Stop Loss) y stop profit (Take Profit), que permiten controlar eficazmente el riesgo y los objetivos de ganancias de cada operación.
La lógica central de la estrategia se basa en la clásica teoría del cruce equilíneo en el análisis técnico. Cuando el EMA de período corto (21 días) sube a través del EMA de período largo (50 días), el sistema lo identifica como una señal de ventaja y abre una posición de ventaja; cuando el EMA de período corto sube a través del EMA de período largo, el sistema lo identifica como una señal de ventaja y abre una posición de ventaja.
Esta es una estrategia de negociación automatizada de diseño razonable, lógica clara. Al combinar señales de cruce lineal uniforme y una estricta gestión de riesgos, la estrategia proporciona un marco tecnológico fiable para aprovechar las oportunidades de tendencias del mercado, al tiempo que garantiza la seguridad de las operaciones. Aunque existe cierto espacio de optimización, la infraestructura de la estrategia está intacta y es adecuada para el desarrollo y perfeccionamiento de módulos básicos de sistemas de negociación cuantitativos.
/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-31 23:59:59
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA Crossover Strategy with SL & TP", overlay=true, default_qty_type=strategy.percent_of_equity)
// Input settings for SL and TP (ticks)
slTicks = input.int(40, title="Stop Loss (ticks)", minval=1)
tpTicks = input.int(80, title="Take Profit (ticks)", minval=1)
// Define EMA periods
ema21 = ta.ema(close, 21)
ema50 = ta.ema(close, 50)
// Detect crossovers
bullishCross = ta.crossover(ema21, ema50)
bearishCross = ta.crossunder(ema21, ema50)
// Plot the EMAs
plot(ema21, color=color.green, linewidth=2, title="EMA 21")
plot(ema50, color=color.red, linewidth=2, title="EMA 50")
// Calculate tick size in points
var float tickSize = syminfo.mintick
// Calculate stop loss and take profit prices for long and short positions
longSL = close - slTicks * tickSize
longTP = close + tpTicks * tickSize
shortSL = close + slTicks * tickSize
shortTP = close - tpTicks * tickSize
// Execute trades on crossover signals
if (bullishCross)
strategy.entry("Long", strategy.long)
strategy.exit("Exit Long", "Long", stop=longSL, limit=longTP)
if (bearishCross)
strategy.entry("Short", strategy.short)
strategy.exit("Exit Short", "Short", stop=shortSL, limit=shortTP)
// Plot arrows on crossovers
plotshape(series=bullishCross, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", size=size.small)
plotshape(series=bearishCross, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", size=size.small)
// Optional: Background coloring
bgcolor(bullishCross ? color.new(color.green, 90) : na, title="Bullish Background")
bgcolor(bearishCross ? color.new(color.red, 90) : na, title="Bearish Background")