RSI Reversal Trading Strategy (Strategi Perdagangan Pembalikan RSI)

Penulis:ChaoZhang, Tarikh: 2023-11-14 16:49:02
Tag:

img

Ringkasan

Strategi perdagangan pembalikan RSI adalah strategi perdagangan kuantitatif yang mengenal pasti keadaan overbought dan oversold menggunakan penunjuk Indeks Kekuatan Relatif (RSI) dan memasuki perdagangan panjang atau pendek pada titik pembalikan.

Logika Strategi

Strategi ini berdasarkan logik teras berikut:

  1. RSI boleh mencerminkan sama ada pasaran semasa terlalu banyak dibeli atau terlalu banyak dijual. RSI mengukur momentum relatif kenaikan berbanding penurunan dengan mengira nisbah perubahan purata naik kepada perubahan purata turun dalam tempoh masa.

  2. Apabila RSI memasuki zon overbought (biasanya dianggap sebagai RSI di atas 70), ia menunjukkan momentum menaik yang kuat. Akan ada lebih banyak peniaga yang memegang kedudukan menaik dan ruang untuk meneruskan kenaikan adalah terhad. Harga mungkin berbalik ke bawah untuk membetulkan keadaan overbought.

  3. Apabila RSI memasuki zon oversold (biasanya di bawah 30), ia menunjukkan momentum penurunan yang kuat. Akan ada lebih banyak peniaga yang memegang kedudukan menurun dan ruang untuk meneruskan penurunan adalah terhad. Harga mungkin berbalik ke atas untuk membetulkan keadaan oversold.

  4. Oleh itu, kita boleh menetapkan ambang overbought RSI pada 90 dan ambang oversold pada 10. pergi pendek apabila RSI memasuki zon overbought dan pergi panjang apabila RSI memasuki zon oversold untuk menangkap pembalikan.

Secara khusus, logik strategi adalah:

  1. Mengira nilai penunjuk RSI, menggunakan harga dekat sebagai sumber RSI, dengan tempoh 2 tempoh.

  2. Apabila RSI melintasi di atas 90, ia menunjukkan memasuki zon overbought, pergi pendek. Apabila RSI melintasi di bawah 10, ia menunjukkan memasuki zon oversold, pergi panjang.

  3. Tetapkan stop loss untuk setiap perdagangan.

  4. Tetapkan trailing stop untuk setiap perdagangan. Jika RSI berterusan ke tahap overbought / oversold yang lebih melampau, sesuaikan trailing stop untuk memberikan lebih banyak ruang.

  5. Pertimbangkan untuk mengambil keuntungan apabila RSI kembali ke zon neutral sekitar 50.

  6. Jika tiada pembalikan selepas 3 bar, tutup perdagangan untuk mengelakkan kerugian tanpa had.

Kelebihan

Strategi pembalikan RSI mempunyai kelebihan berikut:

  1. Menggunakan RSI untuk mengenal pasti keadaan overbought / oversold dapat menangkap titik pembalikan pasaran dengan berkesan. RSI tepat dalam menilai ekstrem dan mempunyai kadar kejayaan pembalikan yang tinggi.

  2. Strategi pembalikan mempunyai kelebihan sistematik untuk terus mengikuti trend. Ia boleh menjadi pendek pada overbought dan panjang pada oversold tepat pada masanya untuk mengelakkan terperangkap.

  3. Mekanisme stop loss berkesan mengawal kerugian pada perdagangan individu. Walaupun pembalikan gagal, kerugian terkandung dalam julat tertentu.

  4. Hentian yang mengikut boleh menyesuaikan jarak hentian dengan fleksibel berdasarkan pergerakan harga yang berterusan, menyeimbangkan antara mengekalkan hentian yang dicetuskan dan menangkap lebih banyak perbezaan harga.

  5. Keluar paksa selepas bar tetap memastikan perdagangan tanpa pembalikan tepat pada masanya tidak akan membawa kepada kerugian tanpa had.

  6. Parameter RSI yang boleh diselaraskan dapat menyesuaikan strategi dengan pasaran yang berbeza.

Risiko

Strategi ini juga mempunyai risiko berikut:

  1. Sebagai strategi penunjuk teknikal, prestasi pembalikan RSI mungkin mempunyai kecenderungan pemasangan kurva. Kadar kejayaan pembalikan perdagangan sebenar mungkin lebih rendah daripada hasil backtest.

  2. Walaupun RSI dapat mengenal pasti keadaan overbought / oversold, ia tidak dapat meramalkan masa pembalikan yang tepat.

  3. Tahap overbought / oversold RSI mungkin tidak ditetapkan dengan munasabah. Tahap yang salah boleh menyebabkan pembalikan yang hilang atau dihentikan sebelum pembalikan.

  4. Kemungkinan harga membuat pembalikan lain sebelum mencapai mengambil keuntungan. mengambil keuntungan mungkin tidak dipenuhi.

  5. Jarak stop loss yang ditetapkan terlalu ketat atau terlalu longgar boleh membuat berhenti tidak berkesan.

  6. Komisen perdagangan juga boleh mempengaruhi keuntungan strategi.

Peningkatan

Strategi ini boleh ditingkatkan dengan cara berikut:

  1. Uji parameter RSI yang berbeza untuk mencari kombinasi yang optimum, seperti panjang RSI, paras ambang overbought / oversold.

  2. Tambah lebih banyak penapis untuk mengelakkan isyarat pembalikan palsu, seperti menggabungkan dengan MACD dll untuk meningkatkan kebarangkalian.

  3. Mengoptimumkan strategi stop loss, contohnya berhenti berasaskan ATR, jarak yang disesuaikan dengan turun naik.

  4. Mengoptimumkan mengambil keuntungan strategi, seperti bergerak mengambil keuntungan, menyusul lebih banyak perbezaan harga.

  5. Tambah model pembelajaran mesin untuk membantu menilai pembalikan dan meningkatkan kadar kejayaan.

  6. Uji strategi di pasaran dan instrumen yang berbeza untuk mencari parameter terbaik untuk perdagangan sebenar.

  7. Menggabungkan dengan jumlah dagangan, hanya mempertimbangkan isyarat pembalikan apabila jumlah lonjakan.

Kesimpulan

Kesimpulannya, strategi pembalikan RSI memanfaatkan kekuatan RSI dalam mengenal pasti keadaan pasaran yang terlalu banyak dibeli dan terlalu banyak dijual dan perdagangan pada titik pembalikan, memberikan pulangan sistematik yang baik. Tetapi ia juga mempunyai risiko yang perlu ditangani melalui parameter RSI dan pengoptimuman stop / take profit, dan penapisan dengan penunjuk lain. Jika dilaksanakan dengan betul, pembalikan RSI boleh membentuk komponen yang berkesan dalam sistem perdagangan kuantitatif.


/*backtest
start: 2023-11-06 00:00:00
end: 2023-11-13 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// Copyright (c) 2021-present, RicMos
//study("RSI2 Sell Strategy, overlay=true)

//------------------------------------------USER VARIABLE DEFINITIONS --------------------------------------
var float lots = 0.1
//var float fixed_commission = 0.6 // forex pairs commission  value USD per position size two sides
var float fixed_commission = 10 // BTC commission value USD per position size two sides
//var float money = 10000 //forex pairs position size
var float money = 0.3333 //BTC position size



strategy(title="RSI2 Sell Strategy", commission_type=strategy.commission.cash_per_order, calc_on_every_tick =true, commission_value = fixed_commission/2, overlay=true, default_qty_value= lots*100000, initial_capital=1000, currency = "USD", calc_on_order_fills = false)
len = input(2, minval=1, title="RSI Length")
src = input(close, "RSI Source", type = input.source)
upRsi = rma(max(change(src), 0), len)
downRsi = rma(-min(change(src), 0), len)
rsi = downRsi == 0 ? 100 : upRsi == 0 ? 0 : 100 - (100 / (1 + upRsi / downRsi))
var color buyColor = color.blue
var color sellColor = color.red


plotshape(rsi <= 10 ? low : na, title="Arrow Up", style=shape.triangleup, location=location.belowbar, size=size.tiny, color=buyColor)
plotshape(rsi >= 90 ? high : na, title="Arrow Down", style=shape.triangledown, location=location.abovebar, size=size.tiny, color=sellColor)


// long = rsi <= 10 
// var float longsl = 0
// var int long_ts_points = 0

// if long
//     longsl:= low
//     long_ts_points := 200
    
// if rsi >= 70
//     long_ts_points := 100
// else if rsi >= 80
//     long_ts_points := 80


// plot (longsl)
// var int barsPassed = 0
// barsPassed := barssince(long)
// if long
//     strategy.entry("long", long = strategy.long, qty = 10000, stop = high)
// strategy.exit("slLo", from_entry="long", stop = longsl-0.0002, trail_points = long_ts_points )
// //strategy.close("long", when = rsi[1]>=50 and rsi < 50 , comment = "rsi under 50" )
// strategy.cancel_all(barsPassed > 3  and not long)


short = rsi >= 90 
var float shortsl = 0
var int short_ts_points = 0
//var bool stClose = 0

if short
    shortsl:= high
    short_ts_points := 200
    
if rsi <= 30
    short_ts_points := 100
    //stClose :=1
else if rsi <= 20
    short_ts_points := 80 
//else
    //stClose := 0

plot (shortsl)
var int barsPassedSh = 0
barsPassedSh := barssince(short)
if short
    strategy.entry("short", long = strategy.short, qty = money, stop = low)
strategy.exit("slSh", from_entry="short", stop = shortsl, trail_points = short_ts_points, trail_offset =20 )
//strategy.close("short", comment="rsi<30", when = stClose)


//strategy.close("long", when = rsi[1]>=50 and rsi < 50 , comment = "rsi under 50" )
strategy.cancel_all(barsPassedSh > 3  and not short)










Lebih lanjut