
Ini adalah strategi perdagangan indikator supertrend berdasarkan garis K 5 minit BankNifty. Strategi ini menggunakan indikator supertrend untuk mengenal pasti trend dan berdagang dengan gabungan masa perdagangan dan peraturan pengurusan risiko.
Strategi ini mula-mula menentukan pembolehubah input seperti masa perdagangan dan julat tarikh. Masa perdagangan ditetapkan sebagai masa perdagangan India, dari 9:15 pagi hingga 3:10 petang.
Ia kemudian mengira indikator supertrend dan arahnya.
Pada permulaan setiap tempoh dagangan, strategi menunggu 3 garis K terbentuk sebelum mempertimbangkan untuk masuk. Ini adalah untuk menyaring penembusan palsu.
Isyarat multihead adalah apabila arah penunjuk trend super berubah dari bawah ke atas; isyarat kosong adalah apabila arah penunjuk trend super berubah dari atas ke bawah.
Apabila anda masuk ke dalam permainan, anda boleh menetapkan hentian, menetapkan titik hentian dan mengesan peratusan hentian yang boleh disesuaikan dengan input pembolehubah.
Pada penghujung tempoh perdagangan, strategi akan menebus semua kedudukan yang belum ditapis.
Ini adalah strategi perdagangan mudah yang menggunakan indikator untuk mengenal pasti trend. Ia mempunyai kelebihan seperti berikut:
Strategi ini mempunyai beberapa risiko:
Risiko ini boleh dikurangkan dengan mengoptimumkan parameter indikator supertrend atau menambah penilaian indikator lain.
Strategi ini juga boleh dioptimumkan dalam beberapa aspek:
Strategi ini adalah strategi perdagangan indikator trend super berdasarkan BankNifty 5 minit. Ia menggunakan indikator trend super untuk menentukan arah trend, digabungkan dengan masa perdagangan dan peraturan pengurusan risiko untuk berdagang.
/*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)