Это торговая стратегия, основанная на 5-минутной K-линии BankNifty с использованием индикатора Supertrend. Стратегия в основном использует индикатор Supertrend для выявления тенденций и сочетает в себе торговые сессии и правила управления рисками для торговли.
Стратегия сначала определяет входные переменные, такие как торговые сессии и диапазоны дат.
Затем он рассчитывает индикатор Supertrend и его направление.
В начале каждой торговой сессии стратегия ждет, пока 3 свечи сформируются, прежде чем рассматривать возможность вступления в сделку.
Длинный сигнал - это когда направление индикатора Supertrend меняется сверху вверх; короткий сигнал - это когда направление Supertrend меняется сверху вниз.
После ввода, стоп-лосс будет установлен.
В конце торговой сессии стратегия закрывает все открытые позиции.
Это простая стратегия торговли, которая использует индикаторы для выявления тенденций.
Стратегия также сопряжена с некоторыми рисками:
Эти риски могут быть уменьшены путем оптимизации параметров индикатора Supertrend или добавления других суждений по индикаторам.
Стратегия также может быть оптимизирована в следующих аспектах:
В общем, это стратегия торговли с индикатором Supertrend, основанная на 5-минутном графике BankNifty. Он использует индикатор Supertrend для определения направления тренда и сочетает торговые сессии и правила управления рисками для торговли. По сравнению со сложными количественными стратегиями, эта стратегия имеет простые и ясные правила, которые легко понять и реализовать. Как примерная стратегия, она обеспечивает основу и направление для будущей оптимизации и улучшения.
/*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)