BankNifty Supertrend Strategi Dagangan

Penulis:ChaoZhang, Tarikh: 2023-12-29 17:09:57
Tag:

img

Ringkasan

Ini adalah strategi dagangan berdasarkan K-line 5 minit BankNifty menggunakan penunjuk Supertrend. Strategi ini terutamanya menggunakan penunjuk Supertrend untuk mengenal pasti trend dan menggabungkan sesi dagangan dan peraturan pengurusan risiko untuk berdagang.

Prinsip Strategi

Strategi pertama menentukan pembolehubah input seperti sesi dagangan dan julat tarikh.

Kemudian ia mengira penunjuk Supertrend dan arahnya.

Pada permulaan setiap sesi dagangan, strategi ini menunggu 3 lilin terbentuk sebelum mempertimbangkan untuk memasuki perdagangan.

Isyarat panjang adalah apabila arah penunjuk Supertrend berubah dari bawah ke atas; isyarat pendek adalah apabila arah Supertrend berubah dari atas ke bawah.

Selepas memasuki, stop loss akan ditetapkan. Kedua-dua titik stop loss tetap dan peratusan stop loss boleh diselaraskan melalui pembolehubah input.

Pada akhir sesi dagangan, strategi akan menutup semua kedudukan terbuka.

Kelebihan Strategi

Ini adalah strategi perdagangan yang mudah yang menggunakan penunjuk untuk mengenal pasti trend.

  1. Gunakan penunjuk Supertrend untuk menilai arah trend, yang dapat mengenal pasti trend dengan berkesan
  2. Menggabungkan sesi dagangan boleh mengelakkan sesi pembukaan dan penutupan yang paling tidak menentu
  3. Tetapkan Stop Loss untuk mengunci keuntungan
  4. Banyak parameter boleh diselaraskan secara bebas melalui pembolehubah input, kebolehsesuaian yang tinggi

Risiko Strategi

Strategi ini juga mempunyai beberapa risiko:

  1. Indikator Supertrend mempunyai ketinggalan, mungkin terlepas titik kemasukan terbaik
  2. Penghakiman penunjuk tunggal cenderung dipengaruhi oleh pecah palsu, kadar kemenangan mungkin rendah
  3. Tidak mengambil kira trend pasaran, mungkin berbeza dari pasaran keseluruhan
  4. Tetapan stop loss yang tidak betul boleh membawa kepada kerugian yang lebih besar daripada yang dijangkakan

Risiko ini boleh dikurangkan dengan mengoptimumkan parameter penunjuk Supertrend atau menambah penilaian penunjuk lain.

Arahan pengoptimuman

Strategi ini juga boleh dioptimumkan dalam aspek berikut:

  1. Tambah penilaian penunjuk lain untuk membentuk strategi gabungan, meningkatkan kestabilan
  2. Tambah penilaian trend pasaran secara keseluruhan untuk mengelakkan perbezaan dari pasaran
  3. Mengoptimumkan parameter penunjuk Supertrend, mencari panjang terbaik dan faktor
  4. Sesuaikan strategi stop loss, seperti trailing stop loss bersama dengan trend
  5. Uji produk yang berbeza, cari yang paling sesuai

Kesimpulan

Ringkasnya, ini adalah strategi dagangan penunjuk Supertrend berdasarkan carta 5 minit BankNifty. Ia menggunakan penunjuk Supertrend untuk menentukan arah trend dan menggabungkan sesi dagangan dan peraturan pengurusan risiko untuk berdagang. Berbanding dengan strategi kuantitatif yang kompleks, strategi ini mempunyai peraturan yang mudah dan jelas yang mudah difahami dan dilaksanakan. Sebagai strategi sampel, ia menyediakan asas dan arah untuk pengoptimuman dan penambahbaikan masa depan. Melalui penyempurnaan dan peningkatan yang berterusan, diharapkan bahawa strategi dapat menjadi strategi dagangan kuantitatif yang boleh dipercayai dan menguntungkan.


/*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)





Lebih lanjut