Strategi Dagangan Nifty Berdasarkan Indikator RSI

Penulis:ChaoZhang, Tarikh: 2024-01-25 12:23:39
Tag:

img

Ringkasan

Prinsip Strategi

Strategi ini menetapkan RSI 2 tempoh sebagai isyarat perdagangan. Ia pergi lama apabila RSI melintasi di atas 20, dan menutup kedudukan apabila RSI melintasi di bawah 70. Ini menangkap peluang penyesuaian jangka pendek indeks.

Logiknya ialah: apabila RSI di bawah 20, ia menunjukkan status oversold, yang menunjukkan aset itu diremehkan dan rebound di hadapan. Apabila RSI melintasi di atas 20, pergi panjang. Apabila RSI di atas 70, ia menunjukkan status overbought, yang menunjukkan aset itu terlalu dinilai dan panggilan balik di hadapan. Apabila RSI melintasi di bawah 70, tutup kedudukan.

Analisis Kelebihan

Sebagai strategi yang mengenal pasti peluang overbought / oversold jangka pendek dengan penunjuk, kelebihan utama adalah:

  1. Prinsipnya mudah dan jelas, mudah difahami dan disahkan
  2. Beberapa parameter penunjuk, mudah untuk mengoptimumkan dan menyesuaikan
  3. Mencari pulangan jangka pendek yang berlebihan, sejajar dengan falsafah perdagangan scalping
  4. Tempoh perdagangan yang boleh disesuaikan, menyesuaikan diri dengan jangkaan yang berbeza

Analisis Risiko

Risiko utama strategi ini termasuk:

  1. Tidak dapat menangkap trend jangka panjang, mungkin terlepas pergerakan besar
  2. Terlalu bergantung pada pengoptimuman parameter, risiko terlalu sesuai
  3. Tiada mekanisme stop loss untuk mengawal kerugian secara berkesan
  4. Perdagangan yang kerap mempengaruhi tempoh penahanan, yang menimbulkan lebih banyak kos transaksi

Untuk mengawal risiko yang disebutkan di atas, pengoptimuman boleh dibuat dalam aspek berikut:

  1. Menggabungkan penunjuk trend untuk mengenal pasti pergerakan jangka panjang
  2. Mengambil Walk Forward Analysis untuk mengelakkan overfit
  3. Tetapkan titik stop loss untuk stop loss tepat pada masanya
  4. Sesuaikan parameter perdagangan dengan sewajarnya untuk mengawal kekerapan perdagangan

Arahan pengoptimuman

Aspek utama untuk mengoptimumkan strategi:

  1. Mengoptimumkan parameter RSI untuk mencari kombinasi parameter optimum
  2. Tambah mekanisme stop loss untuk mengehadkan pengeluaran maksimum
  3. Menggabungkan purata bergerak dan lain-lain untuk menilai trend jangka panjang
  4. Tambah modul saiz kedudukan untuk mengoptimumkan peruntukan kedudukan

Kesimpulan

Strategi ini merancang strategi perdagangan jangka pendek berdasarkan penunjuk RSI, menangkap isyarat overbought / oversold untuk pembelian rendah dan penjualan tinggi. Strategi ini mempunyai prinsip yang mudah dan mudah dilaksanakan, tetapi mempunyai tahap perdagangan yang kerap, ketidakupayaan untuk mengenal pasti trend jangka panjang dan lain-lain. Penambahbaikan masa depan boleh dibuat pada pengoptimuman parameter RSI, menambah stop loss, menggabungkan trend penilaian dan lain-lain, untuk menjadikan strategi lebih stabil dan boleh dipercayai.


/*backtest
start: 2023-01-18 00:00:00
end: 2024-01-24 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("RSI Strategy", overlay=true,pyramiding = 1000)
rsi_period = 2
rsi_lower = 20
rsi_upper = 70

rsi_value = rsi(close, rsi_period)
buy_signal = crossover(rsi_value, rsi_lower)
sell_signal = crossunder(rsi_value, rsi_upper)
current_date1 =  input(defval=timestamp("01 Nov 2009 00:00 +0000"), title="stary Time", group="Time Settings")

current_date =  input(defval=timestamp("01 Nov 2023 00:00 +0000"), title="End Time", group="Time Settings")
investment_amount = 100000.0
start_time = input(defval=timestamp("01 Dec 2018 00:00 +0000"), title="Start Time", group="Time Settings") 
end_time = input(defval=timestamp("30 Nov 2023 00:00 +0000"), title="End Time", group="Time Settings")

in_time = time >= start_time and time <= end_time
// Variable to track accumulation.
var accumulation = 0.0
out_time = time >= end_time 

if (buy_signal )
    strategy.entry("long",strategy.long,qty= 1) 
    accumulation += 1
if (out_time)
    strategy.close(id="long")

plotshape(series=buy_signal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup)
plotshape(series=sell_signal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown)

plot(rsi_value, title="RSI", color=color.blue)
hline(rsi_lower, title="Lower Level", color=color.red)



plot(strategy.opentrades, style=plot.style_columns, 
     color=#2300a1, title="Profit first entry")
plot(strategy.openprofit, style=plot.style_line, 
     color=#147a00, title="Profit first entry")
// plot(strategy.position_avg_price, style=plot.style_columns, 
//      color=#ca0303, title="Profit first entry")
// log.info(strategy.position_size * strategy.position_avg_price)


Lebih lanjut