Strategi perdagangan kuantitatif berdasarkan regresi linear RSI


Tarikh penciptaan: 2024-01-24 11:35:19 Akhirnya diubah suai: 2024-01-24 11:35:19
Salin: 0 Bilangan klik: 770
1
fokus pada
1617
Pengikut

Strategi perdagangan kuantitatif berdasarkan regresi linear RSI

Gambaran keseluruhan

Strategi ini adalah berdasarkan reka bentuk RSI Linear Regression. Strategi ini menghasilkan isyarat beli dan jual dengan mengira silang RSI Linear Regression dan EMA. Strategi ini menyediakan dua pilihan logik beli pada masa yang sama, yang boleh dipilih mengikut keperluan.

Prinsip Strategi

Strategi pertama mengira pulangan linear dengan panjang 200 kitaran, kemudian berdasarkan hasil pulangan linear mengira RSI dengan 21 kitaran. Kemudian mengira EMA dengan panjang 50 kitaran. Apabila RSI melintasi EMA menghasilkan isyarat beli, dan apabila RSI melintasi EMA menghasilkan isyarat jual, keuntungan dicapai.

Strategi ini menawarkan dua logik pembelian:

  1. Beli semasa RSI memakai EMA
  2. Beli apabila RSI lebih tinggi daripada EMA dan lebih tinggi daripada garis beli

Anda boleh memilih logik pembelian yang sesuai dengan keadaan pasaran.

Analisis kelebihan

Strategi ini menggabungkan kelebihan RSI dan EMA yang berpatah balik secara linear untuk menghapuskan sebahagian bunyi harga dan menghasilkan isyarat perdagangan yang lebih dipercayai.

RSI yang berpatah balik secara linear lebih baik untuk menggambarkan trend, dan EMA membantu untuk mencari titik balik. Kombinasi kedua-duanya boleh mencari peluang untuk berpatah balik dalam trend dan membentuk strategi mean reversion.

Strategi ini menawarkan dua pilihan logik beli yang boleh disesuaikan dengan lebih fleksibel mengikut peringkat pasaran. Sebagai contoh, logik pertama boleh dipilih apabila trend jelas, logik kedua boleh dipilih apabila goyah.

Analisis risiko

Strategi ini bergantung kepada hubungan antara RSI dan EMA, dan jika hubungan antara kedua-duanya berubah, ia boleh menyebabkan isyarat perdagangan menjadi salah. Ini adalah risiko utama.

Di samping itu, RSI dan EMA sebagai penunjuk itu sendiri akan mengalami ketinggalan, yang boleh menyebabkan pembelian dan penjualan mengalami kelewatan, tidak dapat menangkap titik-titik perubahan dengan sempurna. Ini juga membawa risiko sebenar.

Untuk mengurangkan risiko, parameter panjang RSI dan EMA boleh disesuaikan dengan betul, mengoptimumkan kerjasama antara keduanya. Unit forex ini juga perlu dikawal dengan tepat untuk mengelakkan kerugian tunggal yang terlalu besar.

Arah pengoptimuman

Strategi ini boleh dioptimumkan dalam beberapa arah:

  1. Mengoptimumkan parameter panjang RSI dan EMA untuk mencari kombinasi parameter terbaik
  2. Menambah penapis petunjuk lain, seperti MACD, Brinband dan sebagainya, untuk meningkatkan kualiti isyarat
  3. Pengurusan kedudukan yang diselaraskan dengan indikator kadar turun naik
  4. Mengoptimumkan parameter secara automatik menggunakan kaedah pembelajaran mesin

ringkaskan

Strategi ini adalah berdasarkan kepada RSI dan EMA yang mempunyai pengembalian linear. Strategi ini menggunakan RSI dan EMA untuk mencari peluang pengembalian dalam jangkauan setup. Strategi ini menawarkan dua pilihan logik pembelian yang boleh dipilih secara fleksibel untuk keadaan pasaran yang berbeza. Secara keseluruhan, strategi ini menggabungkan kelebihan beberapa indikator untuk mencari peluang pengembalian dengan berkesan.

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