Strategi Dagangan Kuantitatif Berdasarkan RSI Regresi Linear

Penulis:ChaoZhang, Tarikh: 2024-01-24 11:35:19
Tag:

img

Ringkasan

Strategi ini direka berdasarkan penunjuk RSI regresi linear. Ia menghasilkan isyarat beli dan jual dengan mengira persilangan antara RSI regresi linear dan EMA. Strategi ini juga menyediakan dua pilihan untuk logik beli yang boleh dipilih mengikut keperluan.

Logika Strategi

Strategi ini mula-mula mengira regresi linear 200 tempoh, kemudian mengira RSI 21 tempoh berdasarkan hasil regresi linear. Selepas itu, EMA 50 tempoh dikira. Apabila RSI melintasi di atas EMA, isyarat beli dihasilkan. Apabila RSI melintasi di bawah EMA, isyarat jual dicetuskan untuk menutup kedudukan.

Strategi ini menawarkan dua jenis logik beli:

  1. Beli apabila RSI melintasi EMA
  2. Beli apabila RSI di atas EMA dan juga di atas garis overbought

Logik pembelian yang sesuai boleh dipilih berdasarkan keadaan pasaran.

Analisis Kelebihan

Strategi ini menggabungkan kekuatan RSI regresi linear dan EMA, yang berkesan menapis beberapa bunyi harga dan menghasilkan isyarat perdagangan yang lebih boleh dipercayai.

RSI regresi linear menangkap trend dengan lebih baik, dan EMA membantu mengenal pasti titik perubahan.

Strategi ini menyediakan dua logik pembelian pilihan untuk lebih fleksibiliti untuk menyesuaikan diri dengan peringkat pasaran yang berbeza.

Analisis Risiko

Risiko utama strategi ini terletak pada potensi perubahan hubungan antara RSI dan EMA, yang boleh membawa kepada isyarat perdagangan yang salah.

Di samping itu, sifat ketinggalan RSI dan EMA sebagai penunjuk juga boleh menyebabkan kelewatan tertentu dalam kemasukan dan keluar, gagal menangkap titik perubahan dengan sempurna.

Untuk mengurangkan risiko, parameter seperti panjang RSI dan EMA boleh dioptimumkan untuk penyelarasan yang lebih baik antara kedua-duanya.

Arahan Penambahbaikan

Strategi ini boleh ditingkatkan dari aspek berikut:

  1. Mengoptimumkan panjang regresi linear RSI dan EMA untuk mencari kombinasi parameter terbaik
  2. Tambah penunjuk lain seperti MACD, Bollinger Bands dan lain-lain untuk peningkatan kualiti isyarat
  3. Memasukkan metrik turun naik untuk menyesuaikan saiz kedudukan
  4. Menggunakan teknik pembelajaran mesin untuk mengoptimumkan parameter secara automatik

Kesimpulan

Strategi ini merancang strategi pembalikan purata berdasarkan RSI regresi linear dan EMA, mengenal pasti peluang pembalikan dalam julat dengan melihat salib RSI-EMA. Ia juga menyediakan dua logika pembelian pilihan untuk fleksibiliti untuk menyesuaikan diri dengan pasaran yang berbeza. Secara keseluruhan, dengan menggabungkan beberapa penunjuk, strategi dapat dengan berkesan menemui peluang pembalikan. Dengan penyesuaian parameter dan penapis tambahan, ia mempunyai potensi untuk prestasi yang lebih baik.


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

//@version=4
strategy("Linear RSI")

startP = timestamp(input(2017, "Start Year"), input(12, "Month"), input(17, "Day"), 0, 0)
end   = timestamp(input(9999, "End Year"),   input(1, "Month"),   input(1, "Day"),   0, 0)
_testPeriod() => true

//inputs
length = input(defval=200, minval=1, title="LR length")
length2 = input(defval=21, minval=1, title="RSI length")
ema_fast = input(defval=50, minval=1, title="EMA")
lag = 0

overBought = input(50)
overSold = input(50)


//rsi
src = close
Lr = linreg(src, length, lag)
rsi = rsi(Lr, length2)
ema = ema(rsi, ema_fast)

plot(rsi, color = rsi > overBought ? color.green : rsi < overSold ? color.red : color.silver)
plot(overBought, color=color.purple)
plot(overSold, color=color.purple)
plot(ema, color=color.blue)

first_type = input(true, title="Use first logic?")
second_type =  input(false, title="Use second logic?")

long_condition = (first_type ? crossover(rsi, ema) and _testPeriod() : false) or (second_type ? rsi > ema and rsi > overBought and _testPeriod() : false)
strategy.entry('BUY', strategy.long, when=long_condition)  
 
short_condition = crossunder(rsi, ema)
strategy.close('BUY', when=short_condition)

Lebih lanjut