
Se trata de una estrategia de trading de indicadores de tendencia súper basada en la línea K de 5 minutos de BankNifty. La estrategia utiliza principalmente indicadores de tendencia súper para identificar tendencias y negociar en combinación con períodos de negociación y reglas de gestión de riesgos.
La estrategia primero define variables de entrada como el horario de transacción y el rango de fechas. El horario de transacción se establece como el horario de transacción de la India, desde las 9:15 a.m. hasta las 3:10 p.m.
Luego se calcula el indicador de tendencia súper y su dirección. El indicador de tendencia súper puede identificar la dirección de la tendencia.
Al comienzo de cada período de negociación, la estrategia es esperar a que se formen 3 líneas K antes de considerar la entrada. Esto es para filtrar las brechas falsas.
La señal multicabeza es cuando el indicador de tendencia súper cambia de dirección de abajo hacia arriba; la señal de cabecera es cuando el indicador de tendencia súper cambia de dirección de arriba hacia abajo.
El punto de parada fijo y el porcentaje de parada de seguimiento se pueden ajustar mediante la entrada de variables.
Al final del período de negociación, la estrategia liquida todas las posiciones no liquidadas.
Se trata de una estrategia de negociación sencilla que utiliza indicadores para identificar tendencias. Tiene las siguientes ventajas:
La estrategia también tiene sus riesgos:
Estos riesgos se pueden reducir optimizando los parámetros de los indicadores de tendencia súper o añadiendo otros indicadores de juicio.
La estrategia también puede ser optimizada en los siguientes aspectos:
Esta estrategia es una estrategia de trading de indicadores de tendencias súper basado en la línea de 5 minutos de BankNifty. Utiliza indicadores de tendencias súper para determinar la dirección de la tendencia, en combinación con los períodos de negociación y las reglas de gestión de riesgos para operar. Comparado con la estrategia cuantitativa compleja, las reglas de la estrategia son simples, claras y fáciles de entender e implementar.
/*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)