Esta é uma estratégia de negociação baseada na linha K de 5 minutos do BankNifty usando o indicador Supertrend.
A estratégia define primeiro variáveis de entrada, como sessões de negociação e intervalos de datas.
O indicador Supertrend pode identificar a direcção da tendência.
No início de cada sessão de negociação, a estratégia espera que 3 velas se formem antes de considerar entrar em um comércio.
O sinal longo é quando a direção do indicador Supertrend muda de baixo para cima; o sinal curto é quando a direção do Supertrend muda de cima para baixo.
Após a entrada, o stop loss será definido. Tanto os pontos de stop loss fixos quanto a porcentagem de stop loss traseira podem ser ajustados através de variáveis de entrada.
No final da sessão de negociação, a estratégia fechará todas as posições abertas.
Trata-se de uma estratégia de negociação simples que utiliza indicadores para identificar tendências.
A estratégia apresenta também alguns riscos:
Estes riscos podem ser reduzidos através da otimização dos parâmetros do indicador Supertrend ou da adição de outros julgamentos do indicador.
A estratégia pode também ser otimizada nos seguintes aspectos:
Em resumo, esta é uma estratégia de negociação de indicadores de Supertrend baseada no gráfico de 5 minutos do BankNifty. Utiliza o indicador de Supertrend para determinar a direção da tendência e combina sessões de negociação e regras de gerenciamento de risco para negociar. Em comparação com estratégias quantitativas complexas, esta estratégia tem regras simples e claras que são fáceis de entender e implementar. Como uma estratégia de amostra, fornece uma base e direção para otimização e melhoria futuras. Através do refinamento e aprimoramento contínuos, espera-se que a estratégia possa se tornar uma estratégia de negociação quantitativa confiável e lucrativa.
/*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)