Strategi ini didasarkan pada ide klasik Larry Connors, menggunakan sistem rata-rata bergerak ganda untuk menangkap osilasi jangka menengah pasar dan mengambil keuntungan ketika terlalu banyak dibeli atau terlalu banyak dijual.
Gunakan RSI 2 periode untuk menentukan apakah harga berada di wilayah oversold.
Gunakan rata-rata bergerak jangka panjang (200 periode) untuk menentukan arah tren utama.
Ketika harga berada di atas MA panjang dan RSI berada di bawah garis oversold, buka posisi panjang dengan harga pasar.
Ketika harga melewati MA periode pendek (5 periode) ke atas, tutup posisi panjang dengan harga pasar untuk mengambil keuntungan.
Selain itu, strategi menyediakan pilihan konfigurasi berikut:
Parameter RSI: panjang periode, tingkat overbought/oversold.
Parameter MA: periode panjang dan pendek.
RSI MA filter: tambahkan RSI MA untuk menghindari fluktuasi RSI.
Stop loss: dapat dikonfigurasi untuk menambahkan stop loss atau tidak.
Sistem MA ganda dapat secara efektif melacak tren jangka menengah dan panjang.
RSI menghindari kehilangan waktu masuk terbaik selama fluktuasi ganas.
Konfigurasi fleksibel yang cocok untuk optimasi parameter.
Strategi terobosan, tidak mungkin melewatkan sinyal.
Strategi Double MA sensitif terhadap parameter, membutuhkan optimasi untuk mencapai kinerja terbaik.
Tidak ada stop loss membawa risiko ekspansi kerugian.
Pertimbangkan untuk mengoptimalkan periode MA atau menambahkan filter lain.
Backtest risiko overfit. membutuhkan validasi di pasar dan periode waktu.
Uji dan optimalkan kombinasi parameter RSI dan MA untuk menemukan yang optimal.
Uji filter masuk tambahan seperti lonjakan volume untuk mengurangi sinyal palsu.
Tambahkan stop loss trailing untuk mengendalikan kerugian perdagangan tunggal.
Evaluasi dampak dari periode penahanan yang berbeda untuk menemukan yang optimal.
Uji ketahanan dalam jangka waktu yang lebih lama seperti setiap hari.
Strategi ini menggabungkan pelacakan tren MA ganda dan RSI overbought/oversold untuk membentuk sistem breakout yang khas. Dengan optimasi parameter, manajemen risiko yang ketat dan validasi ketahanan, ini dapat menjadi alat perdagangan kuantitatif yang kuat.
/*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()