Strategi perdagangan yang bagus berdasarkan penunjuk RSI


Tarikh penciptaan: 2024-01-25 12:23:39 Akhirnya diubah suai: 2024-01-25 12:23:39
Salin: 1 Bilangan klik: 640
1
fokus pada
1617
Pengikut

Strategi perdagangan yang bagus berdasarkan penunjuk RSI

Gambaran keseluruhan

Strategi ini adalah berdasarkan pada indeks RSI yang relatif lemah, dan merancang strategi pelaburan kuantitatif untuk perdagangan indeks Nifty. Strategi ini menggunakan indikator RSI untuk mengenal pasti peluang overbought dan oversold, untuk mencapai harga rendah dan harga tinggi, untuk mengejar keuntungan tambahan.

Prinsip Strategi

Strategi ini menetapkan 2 RSI sebagai isyarat perdagangan. Apabila RSI melewati 20, lakukan lebih banyak; apabila RSI melewati 70, kosong. Ini dapat menangkap peluang penyesuaian indeks dalam jangka pendek.

Prinsip khusus adalah: apabila RSI lebih rendah daripada 20, ia adalah keadaan oversold, yang menunjukkan aset yang diremehkan, yang menandakan kenaikan harga yang akan datang; apabila RSI di atas 20, lakukan lebih banyak; apabila RSI lebih tinggi daripada 70, ia adalah keadaan overbuy, yang menunjukkan aset yang diremehkan, yang menandakan pengurangan yang akan datang; apabila RSI di bawah 70, posisi kosong.

Analisis kelebihan

Ini adalah strategi kuantitatif yang menggunakan penunjuk untuk mengenal pasti peluang overbought dan oversold dalam jangka pendek. Kelebihan strategi ini berbanding strategi pembelajaran mesin dan statistik yang rumit adalah:

  1. Prinsip-prinsip yang mudah difahami dan disahkan
  2. Kurang parameter penunjuk, mudah dioptimumkan dan disesuaikan
  3. Mencari keuntungan tambahan dalam jangka pendek, sesuai dengan konsep perdagangan melintasi
  4. Tempoh perdagangan yang boleh disesuaikan untuk memenuhi jangkaan yang berbeza

Analisis risiko

Strategi ini mempunyai risiko utama:

  1. Tidak dapat mengawal trend jangka panjang, mudah terlepas peluang besar
  2. Terlalu bergantung pada parameter yang dioptimumkan, mungkin ada risiko overfit
  3. Mekanisme tanpa kerugian, tidak dapat mengawal kerugian dengan berkesan
  4. Perdagangan yang kerap, mempengaruhi masa pegangan, menghasilkan lebih banyak kos perdagangan

Untuk mengawal risiko di atas, anda boleh mengoptimumkan dari beberapa aspek berikut:

  1. Indikator-indikator seperti trend untuk mengenal pasti trend jangka panjang
  2. Kaedah Walk Forward Analysis untuk mengelakkan overfitting
  3. Tetapkan titik henti, hentikan pada masanya
  4. Menyesuaikan parameter perdagangan dengan betul untuk mengawal kekerapan perdagangan

Arah pengoptimuman

Strategi ini boleh dioptimumkan dalam beberapa aspek:

  1. Optimumkan RSI untuk mencari kombinasi optimum
  2. Meningkatkan mekanisme penangguhan kerugian dan mengawal pengeluaran maksimum
  3. Mengambil kira trend jangka panjang dengan menggunakan penunjuk seperti purata bergerak
  4. Menambah modul pengurusan kedudukan untuk mengoptimumkan peruntukan kedudukan
  5. Menambah fungsi hak cipta kuantitatif, menyesuaikan parameter secara automatik

ringkaskan

Strategi ini berdasarkan RSI telah merancang strategi perdagangan jangka pendek, menggunakan isyarat RSI untuk membeli dan menjual untuk membeli dan menjual, mencari keuntungan yang lebih tinggi. Prinsip strategi ini mudah, mudah dilaksanakan, tetapi terdapat beberapa masalah perdagangan yang sering, tidak dapat mengenal pasti trend jangka panjang dan lain-lain.

Kod sumber strategi
/*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)