
Strategi RSI reversal adalah strategi perdagangan kuantitatif yang menggunakan indikator RSI yang agak kuat untuk mengenal pasti keadaan overbought dan oversold, untuk membeli dan menjual pada titik perubahan. Strategi ini memperoleh keuntungan dengan menetapkan nilai terendah RSI di kawasan overbought dan oversold, melakukan shorting ketika RSI memasuki kawasan overbought, dan melakukan overbought ketika RSI memasuki kawasan oversold, untuk menangkap harga yang berbalik.
Strategi ini berdasarkan kepada prinsip-prinsip berikut:
RSI boleh mencerminkan sama ada pasaran kini berada dalam keadaan overbought atau oversold. RSI mengukur kekuatan relatif momentum bullish dan bullish dengan mengira perbandingan kenaikan rata-rata dan penurunan rata-rata dalam jangka masa untuk menilai tahap overbought dan oversold pasaran semasa.
Apabila RSI memasuki kawasan overbought (biasanya dianggap sebagai overbought apabila RSI lebih besar daripada 70), ini menunjukkan bahawa momentum multipolar sudah kuat, ketika ini jumlah pedagang yang memegang kedudukan bullish akan lebih banyak, ruang untuk terus bullish adalah terhad, harga mungkin terus turun untuk membalikkan keadaan overbought.
Apabila RSI memasuki kawasan oversold (biasanya dianggap RSI kurang dari 30 untuk oversold), menunjukkan bahawa momentum kepala kosong sudah kuat, ketika ini jumlah pedagang yang memegang kedudukan penurunan akan lebih banyak, ruang untuk terus menurun adalah terhad, harga mungkin terus meningkat untuk membalikkan keadaan oversold.
Oleh itu, anda boleh menetapkan RSI overbought untuk 90 dan overbought untuk 10 untuk melakukan shorting apabila RSI memasuki overbought dan overbought apabila RSI memasuki overbought untuk menangkap pembalikan.
Secara khusus, logik utama strategi ini ialah:
Hitung nilai RSI dengan close harga penutupan sebagai input pengiraan RSI, panjangnya 2 kitaran.
Apabila RSI di atas 90 menunjukkan memasuki kawasan overbuy dan membuka posisi kosong; apabila RSI di bawah 10 menunjukkan memasuki kawasan oversold dan membuka posisi tambahan.
Untuk setiap perdagangan yang dibuka, set titik hentian hentian. Hentian bertopeng adalah harga rendah, dan hentian kosong adalah harga tinggi.
Untuk setiap perdagangan yang anda buka, anda perlu menetapkan titik hentian pengesanan. Jika RSI terus memasuki kawasan yang lebih terjual, anda perlu menyesuaikan titik hentian pengesanan anda untuk memudahkan jarak hentian.
Apabila RSI kembali ke zon neutral sekitar 50, anda boleh memilih untuk menghentikan atau melonggarkan kedudukan.
Jika pembalikan tidak datang, membuka kedudukan lebih dari 3 K garis tidak mencapai syarat berhenti atau berhenti, maka mewajibkan kedudukan kosong, untuk mengelakkan kerugian yang lebih besar yang disebabkan oleh kedudukan yang berlebihan.
Strategi pembalikan RSI mempunyai kelebihan berikut:
Penggunaan indikator RSI untuk menilai keadaan overbought dan oversold dapat menangkap titik balik pasaran dengan berkesan. RSI menilai keadaan overbought dan oversold dengan tepat, dan kadar kejayaan pembalikan lebih tinggi.
Strategi perdagangan terbalik mempunyai kelebihan sistematik untuk terus mengikuti perdagangan. Apabila berlaku keadaan membeli terlalu banyak, anda boleh melakukan shorting tepat pada masanya, dan menjual terlalu banyak, untuk mengelakkan terikat.
Strategi untuk memasukkan mekanisme hentikan kerugian dapat mengawal kerugian perdagangan tunggal dengan berkesan. Walaupun pembalikan tidak berjaya, hentikan kerugian dapat mengawal kerugian dalam jangkaan tertentu.
Tracking stop loss boleh menyesuaikan jarak stop loss secara fleksibel mengikut keadaan harga yang terus berjalan, untuk memastikan stop loss berfungsi, tetapi juga berusaha untuk menjejaki lebih banyak selisih harga.
Hentian tertakluk memastikan bahawa perdagangan yang tidak dapat dipulihkan untuk jangka masa yang lama dapat dihapuskan dan tidak menyebabkan kerugian tanpa had.
Parameter RSI boleh diselaraskan, boleh menyesuaikan parameter untuk pasaran yang berbeza, meningkatkan fleksibiliti strategi.
Strategi ini juga mempunyai risiko yang perlu diperhatikan:
RSI berbalik sebagai strategi perdagangan penunjuk teknikal, dan hasilnya mungkin mempunyai risiko penyesuaian kurva. Kesuksesan berbalik dalam set yang nyata mungkin kurang daripada hasil penyesuaian.
Walaupun RSI dapat menilai overbought dan oversold, ia tidak dapat meramalkan masa yang tepat untuk berbalik. Terdapat risiko bahawa harga akan terus berjalan tanpa berbalik setelah menggunakan strategi ini.
RSI overbought dan oversold yang ditetapkan oleh strategi mungkin tidak munasabah, dan jika ditetapkan dengan salah, ia boleh menyebabkan pembalikan yang tidak terjawab atau pembalikan sebelum penutupan malam.
Jika putaran terbalik tidak mencapai titik berhenti, terdapat kemungkinan putaran terbalik akan berlaku lagi.
Penetapan titik hentian adalah tidak munasabah, jarak yang terlalu dekat mungkin akan dihentikan, jarak yang terlalu jauh tidak bermakna.
Bayaran bayaran juga boleh memberi kesan kepada keuntungan.
Strategi pembalikan RSI juga boleh dioptimumkan dalam beberapa aspek:
Uji parameter RSI yang berbeza untuk mencari kombinasi parameter yang optimum, seperti uji panjang RSI, paras paras paras paras paras paras paras paras paras paras paras paras paras paras paras paras paras paras paras paras.
Tambah lebih banyak syarat penapisan untuk mengelakkan bunyi pembalikan palsu, seperti digabungkan dengan penunjuk MACD untuk menentukan kawasan kebarangkalian pembalikan yang tinggi.
Optimumkan strategi hentian kerugian, seperti hentian mengikut ATR, jarak hentian mengikut kadar turun naik, dan sebagainya.
Mengoptimumkan strategi penutupan, menetapkan penutupan bergerak, dan mengesan perbezaan harga yang lebih besar.
Menambah penilaian dengan model pembelajaran mesin untuk meningkatkan kadar kejayaan pembalikan.
Uji data dari pelbagai pasaran dan varieti, sesuaikan parameter untuk mendapatkan kesan terbaik.
Bersama-sama dengan jumlah urus niaga, isyarat pembalikan hanya dipertimbangkan jika jumlah urus niaga meningkat.
Secara keseluruhannya, strategi pembalikan RSI menggunakan indikator RSI untuk mengenal pasti keadaan pasaran yang lebih baik daripada yang lebih baik, dan perdagangan di titik perubahan dapat memperoleh keuntungan sistematik yang baik. Tetapi strategi ini juga mempunyai risiko tertentu, yang memerlukan pengujian optimasi parameter RSI dan strategi stop loss, ditambah dengan penapis indikator lain untuk mengurangkan perdagangan yang salah. Jika kaedahnya betul, strategi pembalikan RSI dapat menjadi modul strategi 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)