
Strategi ini didasarkan pada gagasan Larry Connors tentang strategi klasik, menggunakan sistem dua garis lurus untuk menangkap pergerakan garis tengah dan garis pendek di pasar, dan menerapkan strategi operasi yang aman di zona overbought dan oversold.
Menggunakan indikator RSI 2 siklus untuk menentukan apakah harga saham berada di zona oversold.
Menggunakan garis rata-rata jangka panjang ((200 siklus) untuk menentukan arah tren besar. Hanya pertimbangkan untuk berposisi jika harga lebih tinggi dari garis rata-rata jangka panjang.
Ketika harga lebih tinggi dari rata-rata jangka panjang dan RSI di bawah garis oversold, buka lebih banyak posisi dengan harga pasar.
Ketika kenaikan harga menembus rata-rata periode pendek ((5 siklus), harga pasar akan naik lebih dari satu kali.
Selain itu, kebijakan ini juga menyediakan opsi konfigurasi berikut:
Parameter RSI: Panjang siklus, posisi overbought dan oversold.
Parameter rata-rata: panjang dan pendek rata-rata siklus.
RSI Average Line Filter: Menambahkan penilaian RSI Average Line untuk menghindari indikator RSI bergoyang terlalu keras.
Pengaturan Stop Loss: Anda dapat memilih untuk menambahkan Stop Loss.
Dengan menggunakan sistem dua baris, dapat secara efektif melacak tren garis panjang.
Indeks RSI menghindari terjadinya terjadinya terjadinya terjadinya terjadinya terjadinya terjadinya terjadinya terjadinya terjadinya terjadinya terjadinya terjadinya
Fleksibel untuk mengkonfigurasi dan mengoptimalkan parameter yang berbeda.
Rundown adalah strategi untuk menembus rundown, dan tidak mudah untuk melewatkan rundown.
Strategi dua garis rata sensitif terhadap parameter dan perlu mengoptimalkan parameter untuk mendapatkan hasil yang optimal.
Pengaturan tanpa kerugian memiliki risiko peningkatan kerugian. Perlu berhati-hati dalam pengelolaan dana dan pengendalian ukuran posisi tunggal.
False breakout dalam situasi yang bergolak dapat menimbulkan risiko kerugian. Anda dapat mempertimbangkan untuk mengoptimalkan siklus rata-rata atau menambahkan kondisi lain sebagai filter.
Risiko penyesuaian data retrospektif. Perlu waktu yang lama untuk memverifikasi kehandalan strategi di beberapa pasar.
Uji optimasi kombinasi parameter RSI dan garis rata-rata untuk menemukan parameter optimal.
Uji kondisi penyaringan masuk yang berbeda, seperti lonjakan volume transaksi, untuk mengurangi sinyal palsu.
Menambahkan tracking stop loss untuk mengendalikan kerugian tunggal. Perlu mengevaluasi dampak dari pengaturan stop loss terhadap keuntungan keseluruhan.
Evaluasi dampak dari berbagai periode kepemilikan posisi pada keuntungan, mencari periode kepemilikan posisi yang optimal.
Tes strategi stabilitas dalam periode waktu yang lebih lama (misalnya, tingkat garis matahari).
Strategi ini mengintegrasikan fitur overbought dan oversold dari trend tracking dan indikator RSI. Strategi ini dapat menjadi alat yang kuat untuk mengukur perdagangan melalui pengoptimalan parameter, manajemen dana yang ketat, dan validasi kehandalan. Namun, pedagang perlu berhati-hati untuk memantau masalah kecocokan dan terus menyesuaikan dan menyempurnakan strategi di pasar yang berubah.
/*backtest
start: 2023-09-26 00:00:00
end: 2023-10-26 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("RSI Strategy", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
//Starter Parameters
length = input(title="RSI Lenght", defval=2)
overBoughtRSI = input(title="OverBought Level for RSI", defval=10)
shortLength = input(title="Short MA Length", defval=5)
longLength = input(title="Long MA Length", defval=200)
RuleMRSI=input(title="RSI Moving Average Filter", defval= true)
lengthmrsi=input(title="RSI Moving Average Length", defval=4)
overBoughtMRSI=input(title="OverBought Level for the Moving Average of the RSI", defval=30)
Rulestop=input(title="Apply Stop Loss", defval=false)
stop_percentual=input(title="% Stop Loss", defval=10)
//RSI
vrsi = rsi(close, length)
//Moving Averages
longma = sma(close,longLength)
shortma = sma(close,shortLength)
mrsi=sma(vrsi,lengthmrsi)
//Stop Loss
stop_level = strategy.position_avg_price*((100-stop_percentual)/100)
//Backtest Period
testStartYear = input(2009, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(2, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testStopYear = input(2020, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)
testPeriod() => true
//Strategy
if testPeriod() and (not na(vrsi))
if (RuleMRSI==false) and (Rulestop==false)
if (vrsi<overBoughtRSI) and (close>longma)
strategy.entry("RsiLE", strategy.long , comment="Open")
if (close>shortma)
strategy.close_all()
if (RuleMRSI==true) and (Rulestop==false)
if (vrsi<overBoughtRSI) and (close>longma) and (mrsi<overBoughtMRSI)
strategy.entry("RsiLE", strategy.long , comment="Open")
if (close>shortma)
strategy.close_all()
if (RuleMRSI==false) and (Rulestop==true)
if (vrsi<overBoughtRSI) and (close>longma)
strategy.entry("RsiLE", strategy.long , comment="Open")
strategy.exit("RsiLE", stop = stop_level)
if (close>shortma)
strategy.close_all()
if (RuleMRSI==true) and (Rulestop==true)
if (vrsi<overBoughtRSI) and (close>longma) and (mrsi<overBoughtMRSI)
strategy.entry("RsiLE", strategy.long , comment="Open")
strategy.exit("RsiLE", stop = stop_level)
if (close>shortma)
strategy.close_all()