Strategi gabungan RSI dan MA

RSI MA EMA SMA HMA WMA STOCHRSI
Tarikh penciptaan: 2024-05-28 17:34:11 Akhirnya diubah suai: 2024-05-28 17:34:11
Salin: 2 Bilangan klik: 1310
1
fokus pada
1617
Pengikut

Strategi gabungan RSI dan MA

Gambaran keseluruhan

Strategi ini menggabungkan RSI dengan purata bergerak ((MA) untuk menghasilkan isyarat perdagangan. RSI digunakan untuk menentukan sama ada pasaran terlalu beli atau terlalu jual, dan MA digunakan untuk menentukan trend harga. Ia menghasilkan isyarat beli apabila RSI terlalu beli dan harga lebih tinggi daripada MA; ia menghasilkan isyarat jual apabila RSI terlalu beli atau MA menghasilkan garpu mati.

Prinsip Strategi

  1. Hitung nilai RSI untuk menentukan sama ada pasaran terlalu banyak membeli (<70) atau terlalu banyak menjual (<30).
  2. Mengira MA kitaran tersuai, termasuk empat jenis EMA, SMA, HMA, dan WMA, dan memutuskan sama ada ia akan dipaparkan pada carta berdasarkan parameter yang ditetapkan.
  3. Apabila RSI overbought dan harga penutupan lebih tinggi daripada MA, ia menghasilkan isyarat beli; apabila RSI overbought atau MA menghasilkan garpu mati, ia menghasilkan isyarat jual.
  4. Memperkenalkan indikator StochRSI sebagai penilaian tambahan, StochRSI akan memberi isyarat pada carta apabila overbuy ((> 70) atau oversell ((< 30), tetapi tidak menghasilkan isyarat perdagangan sebenar.

Kelebihan Strategik

  1. Ia menggabungkan RSI dan MA secara organik untuk menangkap lebih baik keadaan trend dan masa untuk membeli dan menjual.
  2. Jenis dan parameter MA boleh diatur secara bebas, dengan fleksibiliti yang tinggi, dan boleh disesuaikan dengan ciri-ciri pasaran yang berbeza.
  3. Memperkenalkan penunjuk StochRSI sebagai penilaian tambahan untuk memberi lebih banyak rujukan kepada keputusan perdagangan.
  4. Logik kod jelas, mudah dibaca, mudah difahami dan digunakan semula.

Risiko Strategik

  1. RSI dan MA adalah penunjuk ketinggalan, dan mungkin menghasilkan lebih banyak isyarat yang menyesatkan pada permulaan pembalikan trend.
  2. Tetapan parameter yang tidak betul boleh menyebabkan isyarat terlalu awal atau terlambat, menjejaskan hasil keseluruhan.
  3. Kurangnya pengurusan stop loss dan kedudukan boleh menyebabkan risiko yang lebih besar dalam keadaan pasaran yang tidak menentu.

Arah pengoptimuman strategi

  1. Memperkenalkan lebih banyak penunjuk awal seperti kadar turun naik untuk menilai perubahan trend lebih awal.
  2. Menapis isyarat beli dan jual, seperti memerlukan RSI dan MA untuk memenuhi syarat tertentu untuk menghasilkan isyarat, untuk meningkatkan ketepatan isyarat.
  3. Menggabungkan modul pengurusan stop loss dan kedudukan dalam strategi untuk mengawal risiko perdagangan tunggal dan risiko keseluruhan.
  4. Optimumkan parameter untuk strategi, cari kombinasi parameter terbaik.
  5. Pertimbangkan untuk memasukkan pelbagai kitaran atau pelbagai jenis, memanfaatkan hubungan antara pelbagai jenis atau kitaran.

ringkaskan

Strategi ini dengan menggabungkan RSI dan MA dua penunjuk klasik, dapat menangkap trend trend dan masa overbought dan oversold, sambil memperkenalkan penunjuk StochRSI sebagai penilaian tambahan, pemikiran keseluruhan mudah dan jelas. Tetapi strategi ini juga mempunyai beberapa kelemahan, seperti kekurangan langkah-langkah kawalan risiko, ketepatan isyarat perlu dipertingkatkan dan lain-lain.

Kod sumber strategi
/*backtest
start: 2023-05-22 00:00:00
end: 2024-05-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("RSI Strategy with Customizable MA and StochRSI Alert", overlay=true)

// กำหนดค่า RSI สำหรับการเปิดสัญญาณซื้อและขาย
rsiOverbought = input(70, title="RSI Overbought Level")
rsiOversold = input(30, title="RSI Oversold Level")

// เลือกชนิดของเส้นค่าเฉลี่ยเคลื่อนที่
maType = input.string("EMA", title="MA Type", options=["EMA", "SMA", "HMA", "WMA"])

// กำหนดค่าเส้นค่าเฉลี่ยเคลื่อนที่
maShortLength = input(12, title="MA Short Length")
maLongLength = input(26, title="MA Long Length")

// เลือกการแสดงผลของเส้นค่าเฉลี่ยเคลื่อนที่
showShortMA = input(true, title="Show Short Moving Average")
showLongMA = input(true, title="Show Long Moving Average")

// ฟังก์ชันสำหรับเลือกชนิดของเส้นค่าเฉลี่ยเคลื่อนที่
f_ma(src, length, type) =>
    switch type
        "SMA" => ta.sma(src, length)
        "EMA" => ta.ema(src, length)
        "HMA" => ta.hma(src, length)
        "WMA" => ta.wma(src, length)

// คำนวณค่าเส้นค่าเฉลี่ยเคลื่อนที่
maShort = showShortMA ? f_ma(close, maShortLength, maType) : na
maLong = showLongMA ? f_ma(close, maLongLength, maType) : na

// คำนวณค่า RSI
rsiValue = ta.rsi(close, 14)

// สร้างสัญญาณซื้อและขาย
buySignal = (rsiValue > rsiOverbought and ((showShortMA and showLongMA and close > maShort and maShort > maLong) or (showShortMA and not showLongMA and close > maShort) or (showLongMA and not showShortMA and close > maLong)))
sellSignal = (showShortMA and showLongMA and ta.crossover(maLong, maShort)) or (showShortMA and not showLongMA and ta.crossover(maShort, close)) or (showLongMA and not showShortMA and ta.crossover(maLong, close))

// แสดงค่าเส้นค่าเฉลี่ยเคลื่อนที่บนกราฟ
plot(maShort, color=color.red, title="MA Short")
plot(maLong, color=color.green, title="MA Long")

// คำนวณค่า Stochastic RSI
smoothK = 3
smoothD = 3
RSIlen = 14
STOlen = 14
SRsrc = close
OSlevel = 30
OBlevel = 70

rsi1 = ta.rsi(SRsrc, RSIlen)
k = ta.sma(ta.stoch(rsi1, rsi1, rsi1, STOlen), smoothK)
d = ta.sma(k, smoothD)

stochRSIOverbought = OBlevel
stochRSIOversold = OSlevel

stochRSIBuyAlert = ta.crossover(k, stochRSIOversold)
stochRSISellAlert = ta.crossunder(k, stochRSIOverbought)

// สร้างคำสั่งซื้อและขายเมื่อมีสัญญาณจาก RSI และ MA เท่านั้น
if (buySignal)
    strategy.entry("Buy", strategy.long)
if (sellSignal)
    strategy.close("Buy")

// แสดงสัญญาณเตือนจาก Stochastic RSI บนกราฟ
plotshape(series=stochRSIBuyAlert, location=location.belowbar, color=color.green, style=shape.labelup, title="StochRSI Buy Alert")
plotshape(series=stochRSISellAlert, location=location.abovebar, color=color.red, style=shape.labeldown, title="StochRSI Sell Alert")

// แสดงสัญญาณซื้อและขายจาก RSI และ MA บนกราฟ
plotshape(series=buySignal, location=location.top, color=color.green, style=shape.triangleup, title="RSI>70")
plotshape(series=sellSignal, location=location.top, color=color.red, style=shape.triangledown, title="MA crossoverDown")