Strategi Dagangan Niaga Hadapan BankNifty Berdasarkan Purata Pergerakan


Tarikh penciptaan: 2024-03-28 18:15:32 Akhirnya diubah suai: 2024-03-28 18:15:32
Salin: 0 Bilangan klik: 605
1
fokus pada
1617
Pengikut

Strategi Dagangan Niaga Hadapan BankNifty Berdasarkan Purata Pergerakan

Gambaran keseluruhan

Strategi ini adalah strategi perdagangan niaga hadapan BankNifty berdasarkan purata bergerak sederhana (SMA). Gagasan utama strategi ini adalah menggunakan SMA sebagai penunjuk trend, melakukan lebih banyak apabila harga melewati SMA, dan melakukan kosong apabila harga melewati SMA.

Prinsip Strategi

Strategi ini menggunakan SMA sebagai penunjuk trend. Secara khusus, strategi ini pertama-tama mengira SMA untuk tempoh yang ditetapkan (default 200) dan kemudian menilai arah trend berdasarkan kedudukan harga berbanding dengan SMA. Apabila harga melintasi SMA ke atas, ia dianggap sebagai tren naik, dan ia melakukan lebih banyak; apabila harga melintasi SMA ke bawah, ia dianggap sebagai tren turun, dan ia melakukan kosong.

Kelebihan Strategik

  1. Mudah difahami: Strategi ini berdasarkan kepada indikator teknikal klasik SMA, asasnya mudah, mudah difahami dan dilaksanakan.
  2. Adaptif: Strategi ini dapat menyesuaikan parameternya untuk menyesuaikan diri dengan keadaan pasaran dan jenis perdagangan yang berbeza.
  3. Kawalan risiko: Strategi ini menetapkan pelbagai syarat berhenti untuk mengawal kerugian yang berpotensi. Pada masa yang sama, penetapan syarat berhenti juga membantu mengunci keuntungan tepat pada masanya.
  4. Pengesanan Trend: SMA adalah penunjuk yang ketinggalan zaman, tetapi juga kerana itu, ia dapat mengkonfirmasi pembentukan trend dengan baik. Strategi ini menggunakan ciri SMA ini, yang dapat menangkap trend jangka menengah dan jangka panjang pasaran dengan berkesan.

Risiko Strategik

  1. Sensitiviti parameter: Prestasi strategi ini sangat bergantung kepada pilihan parameter, dan tetapan parameter yang berbeza mungkin menghasilkan hasil yang sangat berbeza. Oleh itu, parameter perlu dioptimumkan dan diuji dalam aplikasi sebenar.
  2. Pasaran bergolak: Dalam pasaran bergolak, harga sering merentasi SMA dan mungkin menyebabkan strategi ini sering diperdagangkan, sehingga meningkatkan kos dan risiko perdagangan.
  3. Trend reversal: Strategi ini mungkin menangguhkan tindak balas dan menyebabkan kerugian yang berpotensi apabila trend pasaran berbalik.
  4. Volatiliti dalam jangka masa: Strategi ini boleh mencetuskan isyarat dagangan pada bila-bila masa dalam jangka masa, dan berlakunya pergerakan dalam jangka masa yang lebih besar dalam BankNifty boleh menyebabkan slippage yang lebih besar dan potensi kerugian.

Arah pengoptimuman strategi

  1. Pengoptimuman parameter: anda boleh mengkaji semula dan mengoptimumkan kombinasi parameter yang berbeza untuk mencari tetapan parameter yang paling sesuai dengan keadaan pasaran semasa.
  2. Gabungan dengan penunjuk lain: Anda boleh mempertimbangkan untuk menggabungkan SMA dengan penunjuk teknikal lain (seperti RSI, MACD, dan sebagainya) untuk meningkatkan kebolehpercayaan dan ketepatan strategi.
  3. Hentikan dinamik: Anda boleh mempertimbangkan untuk menggunakan strategi hentikan dinamik (seperti hentikan pelacakan) untuk mengawal risiko dengan lebih baik.
  4. Hadkan masa dagangan: Anda boleh mempertimbangkan untuk mengehadkan masa dagangan pada tempoh masa yang kurang turun naik (seperti sebelum dan selepas pembukaan dan penutupan) untuk mengurangkan kesan turun naik dalam cakera.

ringkaskan

Strategi ini adalah strategi perdagangan sederhana berasaskan SMA yang digunakan untuk BankNifty futures. Kelebihannya adalah asasnya mudah, mudah disesuaikan, dan mempunyai langkah-langkah kawalan risiko. Tetapi dalam aplikasi praktikal, anda juga perlu memperhatikan risiko yang berpotensi seperti pengoptimuman parameter, pasaran yang bergolak, pembalikan trend dan turun naik dalam saham.

Kod sumber strategi
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Bhasker_S

//@version=5
strategy("Strategy BankNifty SMA", overlay=true, margin_long=100, margin_short=100)

src = input(close, title="Source")
timeFrame = input.timeframe(defval='5', title = "Select Chart Timeframe")
typeMA = input.string(title = "Method", defval = "SMA", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
len = input.int(200, minval=1, title="Length", step = 10)
alertPrecision = input.float(0, "Alert Precision", minval = 0, maxval = 50, step=1)
slTimeFrame = input.timeframe(defval='1', title = "Select Stoploss Candle Timeframe")
slBuffer = input.float(0, "Stop Loss Buffer", minval = 0, maxval = 50, step = 1)
targetSlab = input.float(150, "Target Price", minval = 1, maxval = 2000, step = 10)
Stoploss  = input.float(20, "Stop Loss", minval = 1, maxval = 2000, step = 5)
offset = input.int(title="Offset", defval=0, minval=-500, maxval=500)

//out = ta.sma(src, len)


ma(source, length, type) =>
    switch type
        "SMA" => ta.sma(source, length)
        "EMA" => ta.ema(source, length)
        "SMMA (RMA)" => ta.rma(source, length)
        "WMA" => ta.wma(source, length)
        "VWMA" => ta.vwma(source, length)

tfSource = request.security(syminfo.tickerid, timeFrame, src, barmerge.gaps_on, barmerge.lookahead_off)
mySMA = ma(tfSource, len, typeMA)
plot(mySMA, color=color.rgb(243, 33, 89), title="MA", offset=offset, linewidth = 2)

slClose = request.security(syminfo.tickerid, slTimeFrame, src, barmerge.gaps_on, barmerge.lookahead_off)


highTravel = low > mySMA
lowTravel = high < mySMA

touchabove = (((high[1] + alertPrecision) > mySMA[1]) and (low[1] < mySMA[1])) //and (high[2] < mySMA[2])
touchbelow = (((low[1] - alertPrecision) < mySMA[1]) and (high[1] > mySMA[1])) //and (low[2] > mySMA[2])

crossabove = math.min(open, close) > mySMA
crossbelow = math.max(open, close) < mySMA

upalert = (touchabove or touchbelow) and crossabove
downalert = (touchabove or touchbelow) and crossbelow

h=hour(time('1'),"Asia/Kolkata")
m=minute(time('1'),"Asia/Kolkata")
startTime=h*100+m

if upalert and strategy.position_size == 0 
    strategy.entry("buy", strategy.long, 15)
    
if downalert and strategy.position_size == 0
    strategy.entry("sell", strategy.short, 15)

longexit = (slClose < (mySMA - slBuffer)) or (slClose < (strategy.opentrades.entry_price(strategy.opentrades - 1) - Stoploss)) or (slClose > (strategy.opentrades.entry_price(strategy.opentrades - 1) + targetSlab)) or (hour(time) == 15)
shortexit = (slClose > (mySMA + slBuffer)) or (slClose > (strategy.opentrades.entry_price(strategy.opentrades - 1) + Stoploss)) or (slClose < (strategy.opentrades.entry_price(strategy.opentrades - 1) - targetSlab)) or (hour(time) == 15)

if longexit
    strategy.close("buy")

if shortexit
    strategy.close("sell")