Estrategia de negociación de futuros de BankNifty basada en la media móvil


Fecha de creación: 2024-03-28 18:15:32 Última modificación: 2024-03-28 18:15:32
Copiar: 0 Número de Visitas: 605
1
Seguir
1617
Seguidores

Estrategia de negociación de futuros de BankNifty basada en la media móvil

Descripción general

La estrategia es una estrategia de negociación de futuros de BankNifty basada en un promedio móvil simple (SMA). La idea principal de la estrategia es utilizar el SMA como indicador de tendencia, hacer más cuando el precio atraviesa el SMA y hacer menos cuando el precio atraviesa el SMA. Al mismo tiempo, la estrategia también establece condiciones de stop loss y stop loss para controlar el riesgo y bloquear las ganancias.

Principio de estrategia

El núcleo de la estrategia es el uso de la SMA como indicador de tendencia. En concreto, la estrategia calcula primero la SMA de un período determinado (default 200) y luego juzga la dirección de la tendencia en función de la posición relativa del precio con respecto a la SMA. Cuando el precio cruza la SMA, se considera que se ha formado una tendencia alcista y hace más; cuando el precio cruza la SMA, se considera que se ha formado una tendencia descendente y hace vacío.

Ventajas estratégicas

  1. Simple y fácil de entender: La estrategia se basa en el clásico indicador técnico SMA, el principio es simple, fácil de entender y de implementar.
  2. Adaptabilidad: La estrategia puede adaptarse a diferentes entornos de mercado y variedades de transacciones mediante la adaptación de parámetros.
  3. Control de riesgo: la estrategia establece múltiples condiciones de stop loss para controlar eficazmente las pérdidas potenciales. Al mismo tiempo, la configuración de las condiciones de stop loss también ayuda a bloquear los beneficios a tiempo.
  4. Seguimiento de tendencias: El SMA es un indicador de retraso, pero también por esta razón, puede confirmar muy bien la formación de tendencias. La estrategia utiliza esta característica del SMA para capturar eficazmente las tendencias a medio y largo plazo del mercado.

Riesgo estratégico

  1. Sensible a los parámetros: el rendimiento de esta estrategia depende en gran medida de la elección de los parámetros, y diferentes configuraciones de los parámetros pueden dar lugar a resultados muy diferentes. Por lo tanto, es necesario optimizar y probar los parámetros en aplicaciones reales.
  2. Mercado en turbulencia: En un mercado en turbulencia, los precios a menudo cruzan por debajo de la SMA, lo que puede conducir a que la estrategia se negocie con frecuencia, lo que aumenta los costos de negociación y el riesgo.
  3. Reversión de tendencias: la estrategia puede retrasar la reacción cuando se produce una reversión de tendencias en el mercado, lo que puede ocasionar pérdidas.
  4. La estrategia puede disparar señales de negociación en cualquier momento de la oferta, mientras que los futuros de BankNifty pueden tener una gran volatilidad en la oferta, lo que puede causar grandes deslizamientos y pérdidas potenciales.

Dirección de optimización de la estrategia

  1. Optimización de parámetros: se puede encontrar la configuración de parámetros que mejor se adapte a la situación actual del mercado mediante la revisión y optimización de diferentes combinaciones de parámetros.
  2. Combinación con otros indicadores: Se puede considerar la combinación de SMA con otros indicadores técnicos (como RSI, MACD, etc.) para mejorar la fiabilidad y la precisión de la estrategia.
  3. Detención dinámica: Se puede considerar la adopción de estrategias de detención dinámica (como el seguimiento de la detención) para controlar mejor el riesgo.
  4. Limitar el tiempo de negociación: Se puede considerar limitar el tiempo de negociación a períodos de tiempo con menor volatilidad (como antes y después de la apertura y el cierre) para reducir el impacto de la volatilidad en el mercado.

Resumir

La estrategia es una estrategia de negociación simple basada en SMA para los futuros de BankNifty. Su ventaja es que el principio es simple, adaptable y cuenta con medidas de control de riesgo. Pero en la aplicación práctica, también se debe tener en cuenta los riesgos potenciales como la optimización de los parámetros, el mercado de las sacudidas, las inversiones de tendencia y la fluctuación en el mercado. En el futuro, se puede considerar la optimización y mejora de la estrategia en términos de optimización de parámetros, en combinación con otros indicadores, paros dinámicos y límites de tiempo de negociación.

Código Fuente de la Estrategia
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Bhasker_S

//@version=5
strategy("Strategy BankNifty SMA", overlay=true, margin_long=100, margin_short=100)

src = input(close, title="Source")
timeFrame = input.timeframe(defval='5', title = "Select Chart Timeframe")
typeMA = input.string(title = "Method", defval = "SMA", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
len = input.int(200, minval=1, title="Length", step = 10)
alertPrecision = input.float(0, "Alert Precision", minval = 0, maxval = 50, step=1)
slTimeFrame = input.timeframe(defval='1', title = "Select Stoploss Candle Timeframe")
slBuffer = input.float(0, "Stop Loss Buffer", minval = 0, maxval = 50, step = 1)
targetSlab = input.float(150, "Target Price", minval = 1, maxval = 2000, step = 10)
Stoploss  = input.float(20, "Stop Loss", minval = 1, maxval = 2000, step = 5)
offset = input.int(title="Offset", defval=0, minval=-500, maxval=500)

//out = ta.sma(src, len)


ma(source, length, type) =>
    switch type
        "SMA" => ta.sma(source, length)
        "EMA" => ta.ema(source, length)
        "SMMA (RMA)" => ta.rma(source, length)
        "WMA" => ta.wma(source, length)
        "VWMA" => ta.vwma(source, length)

tfSource = request.security(syminfo.tickerid, timeFrame, src, barmerge.gaps_on, barmerge.lookahead_off)
mySMA = ma(tfSource, len, typeMA)
plot(mySMA, color=color.rgb(243, 33, 89), title="MA", offset=offset, linewidth = 2)

slClose = request.security(syminfo.tickerid, slTimeFrame, src, barmerge.gaps_on, barmerge.lookahead_off)


highTravel = low > mySMA
lowTravel = high < mySMA

touchabove = (((high[1] + alertPrecision) > mySMA[1]) and (low[1] < mySMA[1])) //and (high[2] < mySMA[2])
touchbelow = (((low[1] - alertPrecision) < mySMA[1]) and (high[1] > mySMA[1])) //and (low[2] > mySMA[2])

crossabove = math.min(open, close) > mySMA
crossbelow = math.max(open, close) < mySMA

upalert = (touchabove or touchbelow) and crossabove
downalert = (touchabove or touchbelow) and crossbelow

h=hour(time('1'),"Asia/Kolkata")
m=minute(time('1'),"Asia/Kolkata")
startTime=h*100+m

if upalert and strategy.position_size == 0 
    strategy.entry("buy", strategy.long, 15)
    
if downalert and strategy.position_size == 0
    strategy.entry("sell", strategy.short, 15)

longexit = (slClose < (mySMA - slBuffer)) or (slClose < (strategy.opentrades.entry_price(strategy.opentrades - 1) - Stoploss)) or (slClose > (strategy.opentrades.entry_price(strategy.opentrades - 1) + targetSlab)) or (hour(time) == 15)
shortexit = (slClose > (mySMA + slBuffer)) or (slClose > (strategy.opentrades.entry_price(strategy.opentrades - 1) + Stoploss)) or (slClose < (strategy.opentrades.entry_price(strategy.opentrades - 1) - targetSlab)) or (hour(time) == 15)

if longexit
    strategy.close("buy")

if shortexit
    strategy.close("sell")