Strategi Multi Timeframe RSI and Stochastics adalah strategi yang menggabungkan indikator RSI dan Stochastics di beberapa jangka waktu untuk menentukan kondisi overbought dan oversold di pasar. Strategi ini menggunakan nilai rata-rata RSI dan Stochastics dari 4 jangka waktu yang berbeda untuk mengukur momentum pasar secara keseluruhan dan overextension. Hal ini memungkinkan untuk memanfaatkan kekuatan indikator di berbagai jangka waktu.
Indikator RSI adalah osilator yang kuat yang mengukur tingkat overbought dan oversold berdasarkan besarnya pergerakan harga baru-baru ini.
Strategi ini menggunakan RSI 14 periode dan memperoleh nilai RSI dari jangka waktu bulanan, harian, 4 jam dan 1 jam.
Stochastics %K adalah indikator yang menunjukkan tingkat overbought / oversold di pasar pada skala 0 sampai 100. Secara umum, nilai di atas 80 menunjukkan pasar yang overbought sementara nilai di bawah 20 menandakan pasar yang oversold.
Strategi ini menggunakan konfigurasi 14,3 Stochastics dan juga memperoleh nilai %K dari kerangka waktu yang disebutkan di atas.
Inti dari strategi ini terletak pada mengambil rata-rata dari dua indikator di berbagai kerangka waktu. Hal ini memungkinkan untuk memanfaatkan kekuatan dari setiap kerangka waktu ketika mengukur kondisi pasar secara keseluruhan.
Rata-rata RSI = (RSI bulanan + RSI harian + RSI 4H + RSI 1H) / 4
Rata-rata Stokastis = (Stokastis bulanan + Stokastis harian + Stokastis 4H + Stokastis 1H) / 4
Strategi ini memicu panjang ketika rata-rata RSI turun di bawah 30 dan rata-rata Stochastics turun di bawah 20. Ini memicu pendek ketika rata-rata RSI naik di atas 70 dan rata-rata Stochastics melanggar 80.
Posisi panjang ditutup ketika rata-rata Stochastic naik di atas 70 dan rata-rata RSI naik di atas 50. Posisi pendek ditutup ketika rata-rata Stochastic turun di bawah 30 dan rata-rata RSI turun di bawah 50.
Keuntungan utama dari strategi ini terletak pada kombinasi dua indikator di beberapa kerangka waktu. Hal ini sangat meningkatkan keandalan sinyal perdagangan dan meminimalkan sinyal palsu. Keuntungan spesifik meliputi:
RSI dan Stochastics saling memverifikasi sebagai sinyal. Bergantung hanya pada satu indikator cenderung menghasilkan sinyal palsu lebih sering. Pendekatan indikator ganda mempromosikan akurasi.
Beberapa kerangka waktu mengarah pada analisis yang lebih kuat. Misalnya, kerangka waktu bulanan dan harian menunjukkan pasar yang terlalu banyak dibeli tetapi kerangka waktu yang lebih kecil belum mencapai tingkat overextension. Ini menunjukkan bahwa tren naik kemungkinan akan berlanjut. Sinyal lebih dapat diandalkan ketika semua kerangka waktu setuju.
Identifikasi yang lebih jelas dari titik balik struktural ketika beberapa kerangka waktu secara bersamaan menunjukkan pemutusan tingkat S/R utama, menandakan pembalikan tren.
Perhitungan otomatis rata-rata menyederhanakan alur kerja. Tidak perlu perhitungan manual karena kode menangani pengambilan data, perhitungan indikator dan rata-rata secara otomatis.
Seperti semua strategi analisis teknis, risiko inti terletak pada whipsaws dan sinyal palsu.
Pembalikan tren yang menyebabkan berhenti. Misalnya, harga membuat pelanggaran jangka pendek di bawah dukungan sebelum bangkit sementara panjang. Kasus-kasus seperti itu dapat menimbulkan kerugian jangka pendek karena logika keluar.
Invalidasi S/R kunci yang menyebabkan kegagalan trailing stop. Pelanggaran tingkat S/R utama dapat langsung memicu stop yang dirancang di bawah mereka, menghasilkan kerugian di atas rata-rata.
Penghakiman yang salah dari konfigurasi timeframe suboptimal. oversmoothed atau timeframe undersmoothed dapat memberikan nilai osilator yang menyesatkan.
Divergensi di antara kerangka waktu yang menyebabkan efek Dunkirk, di mana kerangka waktu yang lebih tinggi menunjukkan pasar yang terlalu banyak dibeli tetapi kerangka waktu yang lebih rendah menandakan kondisi oversold, membuat rata-rata tidak efektif.
Solusi melibatkan mengoptimalkan strategi stop loss, melacak tingkat S/R dinamis, menyesuaikan parameter timeframe dan menambahkan filter tambahan.
Mengingat risiko yang dibahas, peluang peningkatan meliputi:
Mengoptimalkan mekanisme stop loss untuk memasukkan trailing stop dan partial exit. Ini mengunci keuntungan sambil mengendalikan risiko perdagangan tunggal.
Menambahkan kerangka waktu yang lebih tinggi seperti grafik triwulanan. Ini memungkinkan panduan tren yang lebih besar untuk menyaring sinyal palsu. Memprioritaskan pembacaan dari kerangka waktu yang lebih tinggi ketika divergensi terjadi.
Menggabungkan volume untuk validasi tren tambahan melalui divergensi bull/bear untuk menghindari tren zombie.
Sinyal masuk yang disesuaikan dengan baik dengan menunggu terobosan di sekitar S / R historis utama atau memungkinkan entri mundur yang optimal.
Mengimplementasikan adaptif stop berdasarkan volatilitas terbaru dan nilai ATR untuk posisi stop dinamis.
Multi Timeframe RSI and Stochastics Strategy adalah pendekatan yang jelas dan dapat diandalkan yang menggunakan kombinasi RSI dan Stochastics di beberapa jangka waktu untuk mengidentifikasi tingkat overbought/oversold. Kekuatannya terbesar terletak pada verifikasi saling indikator dan jangka waktu untuk meminimalkan risiko whipsaw dan sinyal palsu.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ ////////////////////////////////////////// MTF Stochastic & RSI Strategy π₯ Β©οΈ bykzis ///////////////////////////////////////// // // *** Inspired by "Binance CHOP Dashboard" from @Cazimiro and "RSI MTF Table" from @mobester16 *** and LOT OF COPY of Indicator-Jones MTF Scanner // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //@version=5 strategy('MTF RSI & STOCH Strategyπ₯ by kzi', overlay=false,initial_capital=100, currency=currency.USD, commission_value=0.01, commission_type=strategy.commission.percent) // Pair list var string GRP1 = 'ββββββββββ ββ General ββ ββββββββββ' overbought = input.int(80, 'Overbought Level', minval=1, group=GRP1) oversold = input.int(20, 'Oversold Level', minval=1, group=GRP1) /// Timeframes var string GRP2 = 'ββββββββββ ββTimeframesββ ββββββββββ' timeframe1 = input.timeframe(title="Timeframe 1", defval="W", group=GRP2) timeframe2 = input.timeframe(title="Timeframe 2", defval="D", group=GRP2) timeframe3 = input.timeframe(title="Timeframe 3", defval="240", group=GRP2) timeframe4 = input.timeframe(title="Timeframe 4", defval="60", group=GRP2) // RSI settings var string GRP3 = 'ββββββββββ ββRSI settingsββ ββββββββββ' rsiLength = input.int(14, minval=1, title='RSI length', group=GRP3) rsiSource = input(close, 'RSI Source', group=GRP3) rsioverbought = input.int(70, 'RSI Overbought Level', minval=1, group=GRP3) rsioversold = input.int(30, 'RSI Oversold Level', minval=1, group=GRP3) /// Get RSI values of each timeframe ///////////////////////////////////////////////////// rsi = ta.rsi(rsiSource, rsiLength) callRSI(id,timeframe) => rsiValue = request.security(id, str.tostring(timeframe), rsi, gaps=barmerge.gaps_off) rsiValue RSI_TF1 = callRSI(syminfo.tickerid, timeframe1) RSI_TF2 = callRSI(syminfo.tickerid, timeframe2) RSI_TF3 = callRSI(syminfo.tickerid, timeframe3) RSI_TF4 = callRSI(syminfo.tickerid, timeframe4) /////// Calculate Averages ///////////////////////////////////////////////////////////////// calcAVG(valueTF1, valueTF2, valueTF3, valueTF4) => math.round((valueTF1 + valueTF2 + valueTF3 + valueTF4) / 4, 2) AVG=calcAVG(RSI_TF1, RSI_TF2, RSI_TF3, RSI_TF4) // Stochastic settings var string GRP4 = 'ββββββββββ ββStochastic settingsββ ββββββββββ' periodK = input.int(14, '%K length', minval=1, group=GRP4) smoothK = input.int(3, 'Smooth K', minval=1, group=GRP4) stochSource = input(close, 'Stochastic Source', group=GRP4) stochoverbought = input.int(70, 'Stochastic Overbought Level', minval=1, group=GRP4) stochoversold = input.int(30, 'Stochastic Oversold Level', minval=1, group=GRP4) /// Get Stochastic values of each timeframe //////////////////////////////////////////////// stoch = ta.sma(ta.stoch(stochSource, high, low, periodK), smoothK) getStochastic(id,timeframe) => stochValue = request.security(id, str.tostring(timeframe), stoch, gaps=barmerge.gaps_off) stochValue Stoch_TF1 = getStochastic(syminfo.tickerid, timeframe1) Stoch_TF2 = getStochastic(syminfo.tickerid, timeframe2) Stoch_TF3 = getStochastic(syminfo.tickerid, timeframe3) Stoch_TF4 = getStochastic(syminfo.tickerid, timeframe4) AVG_STOCH=calcAVG(Stoch_TF1, Stoch_TF2, Stoch_TF3, Stoch_TF4) plot(AVG, color = color.blue, title='RSI') plot(AVG_STOCH, color = color.yellow,title='STOCH') hline(rsioverbought,color=color.red) hline(rsioversold, color=color.lime) hline(50, color=color.white) //============ signal Generator ==================================// if AVG <= rsioversold and AVG_STOCH <=stochoversold strategy.entry('Buy_Long', strategy.long) strategy.close("Buy_Long",when=(AVG_STOCH >=70 and AVG >=50 and close >=strategy.position_avg_price),comment="Long_OK") if AVG >=rsioverbought and AVG_STOCH >=stochoverbought strategy.entry('Buy_Short', strategy.short) strategy.close("Buy_Short",when=(AVG_STOCH <=30 and AVG <=50 and close <=strategy.position_avg_price),comment="Short_OK") ///////////////////////////////////////////////////////////////////////////////////////////