
La estrategia es un sistema de negociación automatizado basado en señales cruzadas de múltiples medias móviles (SMA) y indicadores relativamente débiles (RSI). Combina mecanismos de verificación múltiple de medias móviles de corto y mediano plazo y confirma la tendencia a través del indicador RSI, mientras que utiliza el stop loss ATR dinámico para controlar el riesgo, para establecer un marco de decisión de negociación completo. La estrategia se utiliza principalmente para capturar los puntos de inflexión de la tendencia del mercado y mejorar la precisión de las operaciones mediante la confirmación cruzada de múltiples indicadores técnicos.
La lógica central de la estrategia se basa en un juicio integrado de cinco condiciones clave:
La estrategia solo generará una señal de compra si se cumplen estas cinco condiciones al mismo tiempo. Una vez en el mercado, la estrategia utiliza niveles de stop loss y stop loss dinámicos basados en ATR, donde el stop loss se establece en 1.5 veces el ATR y el stop loss en 2.5 veces el ATR, un diseño que permite ajustar automáticamente los parámetros de gestión de riesgo según la volatilidad del mercado.
Se trata de una estrategia de trading tecnológico razonablemente diseñada, que mejora la precisión de las operaciones mediante la confirmación cruzada de múltiples indicadores tecnológicos y utiliza un sistema de gestión de riesgos dinámico para proteger los beneficios. Aunque la estrategia tiene ciertas limitaciones, su rendimiento puede ser mejorado aún más mediante la dirección de optimización recomendada.
/*backtest
start: 2024-02-22 00:00:00
end: 2025-02-19 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/
//@version=5
strategy("Virat Bharat Auto Trade", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// **User-Defined Inputs for Customization**
smaLength20 = input(20, title="SMA High/Low 20 Length")
smaLength50 = input(50, title="SMA High/Low 50 Length")
rsiLength = input(7, title="RSI Length")
rsiLevel = input(50, title="RSI Crossover Level")
atrMultiplierSL = input(1.5, title="ATR Multiplier for Stop Loss")
atrMultiplierTP = input(2.5, title="ATR Multiplier for Target")
// **Defining the Indicators with Custom Inputs**
smaHigh20 = ta.sma(high, smaLength20)
smaLow20 = ta.sma(low, smaLength20)
smaHigh50 = ta.sma(high, smaLength50)
smaLow50 = ta.sma(low, smaLength50)
rsiValue = ta.rsi(close, rsiLength)
atrValue = ta.atr(14) // ATR for Dynamic Stop Loss & Target
// **Conditions for Buy Signal**
condition1 = ta.crossover(close, smaHigh20)
condition2 = ta.crossover(close, smaLow20)
condition3 = ta.crossover(close, smaHigh50)
condition4 = ta.crossover(close, smaLow50)
condition5 = ta.crossover(rsiValue, rsiLevel)
// **Final Buy Signal (Only when all conditions match)**
buySignal = condition1 and condition2 and condition3 and condition4 and condition5
// **Buy Price, Stop Loss & Target**
buyPrice = close
stopLoss = buyPrice - (atrValue * atrMultiplierSL) // Dynamic Stop Loss
target = buyPrice + (atrValue * atrMultiplierTP) // Dynamic Target
// **Plot Buy Signal on Chart**
plotshape(buySignal, location=location.belowbar, color=color.green, style=shape.labelup, title="BUY", size=size.small, text="BUY")
// **Plot Labels for Buy, Stop Loss & Target**
if buySignal
label.new(x=bar_index, y=buyPrice, text="BUY @ " + str.tostring(buyPrice, format="#.##"), color=color.green, textcolor=color.white, size=size.small, style=label.style_label_down, yloc=yloc.price)
label.new(x=bar_index, y=stopLoss, text="STOP LOSS @ " + str.tostring(stopLoss, format="#.##"), color=color.red, textcolor=color.white, size=size.small, style=label.style_label_down, yloc=yloc.price)
label.new(x=bar_index, y=target, text="TARGET @ " + str.tostring(target, format="#.##"), color=color.blue, textcolor=color.white, size=size.small, style=label.style_label_up, yloc=yloc.price)
// **Strategy Trading Logic - Automated Entry & Exit**
if buySignal
strategy.entry("BUY", strategy.long)
strategy.exit("SELL", from_entry="BUY", loss=atrValue * atrMultiplierSL, profit=atrValue * atrMultiplierTP)