Il s'agit d'une stratégie de trading basée sur la K-line de 5 minutes de BankNifty utilisant l'indicateur Supertrend.
La stratégie définit d'abord des variables d'entrée telles que les sessions de négociation et les plages de dates.
Il calcule ensuite l'indicateur Supertrend et sa direction.
Au début de chaque session de négociation, la stratégie attend que 3 bougies se forment avant d'envisager d'entrer dans un commerce.
Le signal long est lorsque la direction de l'indicateur Supertrend change de bas vers le haut; le signal court est lorsque la direction de la Supertrend change de haut vers le bas.
Après l'entrée, le stop loss sera réglé. Les points de stop loss fixes et le pourcentage de stop loss peuvent être ajustés via des variables d'entrée.
À la fin de la session de négociation, la stratégie fermera toutes les positions ouvertes.
Il s'agit d'une stratégie de trading simple qui utilise des indicateurs pour identifier les tendances.
La stratégie comporte également certains risques:
Ces risques peuvent être réduits en optimisant les paramètres de l'indicateur Supertrend ou en ajoutant d'autres jugements d'indicateur.
La stratégie peut également être optimisée dans les aspects suivants:
En résumé, il s'agit d'une stratégie de trading d'indicateur de Supertrend basée sur le graphique de 5 minutes BankNifty. Il utilise l'indicateur de Supertrend pour déterminer la direction de la tendance et combine les sessions de trading et les règles de gestion des risques pour le commerce. Par rapport aux stratégies quantitatives complexes, cette stratégie a des règles simples et claires qui sont faciles à comprendre et à mettre en œuvre.
/*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)