Стратегия торговли BankNifty Supertrend

Автор:Чао Чжан, Дата: 2023-12-29 17:09:57
Тэги:

img

Обзор

Это торговая стратегия, основанная на 5-минутной K-линии BankNifty с использованием индикатора Supertrend. Стратегия в основном использует индикатор Supertrend для выявления тенденций и сочетает в себе торговые сессии и правила управления рисками для торговли.

Принцип стратегии

Стратегия сначала определяет входные переменные, такие как торговые сессии и диапазоны дат.

Затем он рассчитывает индикатор Supertrend и его направление.

В начале каждой торговой сессии стратегия ждет, пока 3 свечи сформируются, прежде чем рассматривать возможность вступления в сделку.

Длинный сигнал - это когда направление индикатора Supertrend меняется сверху вверх; короткий сигнал - это когда направление Supertrend меняется сверху вниз.

После ввода, стоп-лосс будет установлен.

В конце торговой сессии стратегия закрывает все открытые позиции.

Преимущества стратегии

Это простая стратегия торговли, которая использует индикаторы для выявления тенденций.

  1. Использовать индикатор Supertrend для оценки направления тренда, который может эффективно идентифицировать тенденции
  2. Сочетание торговых сессий позволяет избежать наиболее волатильной сессии открытия и закрытия
  3. Установка остаточного стоп-лосса для блокировки прибыли
  4. Многие параметры могут быть свободно регулированы с помощью входных переменных, высокая адаптивность

Риски стратегии

Стратегия также сопряжена с некоторыми рисками:

  1. Индикатор Supertrend отстает, может пропустить лучшую точку входа
  2. Определение по одному индикатору подвержено влиянию ложных прорывов, процент выигрыша может быть низким
  3. Не учитывает рыночную тенденцию, может отклоняться от общего рынка
  4. Неправильное установление стоп-лосса может привести к большим потерям, чем ожидалось

Эти риски могут быть уменьшены путем оптимизации параметров индикатора Supertrend или добавления других суждений по индикаторам.

Руководство по оптимизации

Стратегия также может быть оптимизирована в следующих аспектах:

  1. Добавление других показателей для формирования комбинированной стратегии, повышение стабильности
  2. Добавить общую оценку рыночной тенденции, чтобы избежать отклонения от рынка
  3. Оптимизировать параметры индикатора Supertrend, найти лучшую длину и фактор
  4. Корректировать стратегию стоп-лосса, как отслеживание стоп-лосса вместе с трендом
  5. Проверьте на различных продуктах, найдите лучшее совпадение

Заключение

В общем, это стратегия торговли с индикатором 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)





Больше