Esta es una estrategia de negociación basada en la línea K de 5 minutos de BankNifty utilizando el indicador Supertrend.
La estrategia primero define variables de entrada como sesiones de negociación y rangos de fechas.
Luego calcula el indicador de Supertrend y su dirección.
Al comienzo de cada sesión de negociación, la estrategia espera que se formen 3 velas antes de considerar entrar en una operación.
La señal larga es cuando la dirección del indicador de Supertrend cambia de abajo a arriba; la señal corta es cuando la dirección de Supertrend cambia de arriba a abajo.
Los puntos de stop loss fijos y el porcentaje de stop loss posterior se pueden ajustar a través de variables de entrada.
Al final de la sesión, la estrategia cerrará todas las posiciones abiertas.
Esta es una estrategia de trading simple que utiliza indicadores para identificar tendencias.
La estrategia también tiene algunos riesgos:
Estos riesgos pueden reducirse optimizando los parámetros del indicador Supertrend o añadiendo otros juicios sobre el indicador.
La estrategia también puede optimizarse en los siguientes aspectos:
En resumen, esta es una estrategia de trading de indicadores de Supertrend basada en el gráfico de BankNifty de 5 minutos. Utiliza el indicador de Supertrend para determinar la dirección de la tendencia y combina sesiones de trading y reglas de gestión de riesgos para el comercio. En comparación con estrategias cuantitativas complejas, esta estrategia tiene reglas simples y claras que son fáciles de entender e implementar. Como una estrategia de muestra, proporciona una base y dirección para la optimización y mejora futuras. A través del refinamiento y mejora continuos, se espera que la estrategia pueda convertirse en una estrategia de trading cuantitativa confiable y rentable.
/*backtest start: 2023-11-28 00:00:00 end: 2023-12-28 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("BankNifty 5min Supertrend Based Strategy, 09:15 Entry with Date Range and Risk Management") // Session and date range input variables session = input("0915-1510", "Session", group="Indian Session Time") start_date = input(title="Start Date", defval=timestamp("01 Jan 2022 00:00:00"), group="Backtest Specific Range") end_date = input(title="End Date", defval=timestamp("01 Dec 2023 23:59:59")) atrPeriod = input(50, "ATR Length", group="SuperTrend Setting") factor = input.float(3.0, "Factor", step=0.1) useDelay = input(true, "Use Delay?", group="Delay at Session Start") Delay = useDelay ? input(10, title="Delay N numbers of candle", group="Delay at Session Start") : na useDelay_stopLoss = input(true, "Use Stoploss Points?", group="Risk Management") stopLoss = useDelay_stopLoss ? input(100, "Stop Loss Points", group="Risk Management"): na useDelay_stopLossPerc1 = input(true, "Use Stoploss Trail?", group="Risk Management") stopLossPerc1 =useDelay_stopLossPerc1 ? input.float(0.1, "Stop Loss Trail%", step=0.1,maxval = 1, group="Risk Management"): na // Check if current time is within the specified session and date range inSession = true [supertrend, direction] = ta.supertrend(factor, atrPeriod) // Wait for 3 candles to form at the start of every session var candlesFormed = 0 if inSession and not inSession[1] candlesFormed := 1 else if inSession and candlesFormed > 0 candlesFormed := candlesFormed + 1 else candlesFormed := 0 // // Only enter trades if 3 candles have formed at the start of the session entryce = (ta.change(direction) < 0) or (candlesFormed >= Delay and direction < 0) exitce = ta.change(direction) > 0 entrype = (ta.change(direction) > 0) or (candlesFormed >= Delay and direction > 0) exitpe = ta.change(direction) < 0 var entryPrice = 0.0 if entryce and inSession // Enter long trade onePercent = strategy.position_avg_price *stopLossPerc1 entryPrice := close strategy.entry("My Long Entry Id", strategy.long, comment="long" ) // Set stop loss at x% below entry price strategy.exit("My Long Exit Id", "My Long Entry Id", stop=(entryPrice - stopLoss),trail_points=onePercent ) if entrype and inSession onePercent1 = strategy.position_avg_price *stopLossPerc1 entryPrice := close // Enter short trade strategy.entry("My Short Entry Id", strategy.short, comment="short") // Set stop loss at x% above entry price strategy.exit("My Short Exit Id", "My Short Entry Id", stop=(entryPrice + stopLoss),trail_points=onePercent1) // Close all trades at end of session if not inSession and strategy.opentrades > 0 strategy.close_all() // Plot Supertrend with changing colors plot(supertrend, title="Supertrend", color=direction == 1 ? color.red : color.green, linewidth=2)