Renko ATR Trend Reversal Strategy adalah pendekatan perdagangan yang unik yang memanfaatkan grafik Renko bersama dengan indikator Average True Range (ATR) untuk mengidentifikasi titik pembalikan tren di pasar keuangan.
Strategi ini pertama-tama menghitung nilai ATR selama periode yang ditentukan dan menggunakan ATR ini sebagai ukuran bata untuk grafik Renko. Bata Renko baru ditarik ketika pergerakan harga melebihi satu ATR. Dengan cara ini, grafik Renko dapat secara otomatis beradaptasi dengan volatilitas pasar, dengan ukuran bata yang lebih besar untuk volatilitas yang lebih tinggi dan ukuran bata yang lebih kecil untuk periode volatilitas yang lebih rendah.
Sinyal beli dihasilkan ketika harga buka grafik Renko melintasi di bawah harga penutupan. Sebaliknya, sinyal jual dihasilkan ketika harga buka melintasi di atas harga penutupan. Sinyal ini menandai titik pembalikan tren potensial.
Strategi secara dinamis menetapkan tingkat stop loss dan take profit untuk setiap perdagangan sebagai persentase dari harga buka Renko, berdasarkan parameter input yang ditentukan pengguna.
Dengan menghitung harga buka dan tutup secara manual, lukisan ulang dihilangkan, membuat sinyal lebih akurat dan tepat waktu.
Ukuran batu bata berdasarkan ATR memungkinkan strategi untuk secara otomatis beradaptasi dengan kondisi volatilitas pasar yang berbeda.
Mekanisme dinamis untuk menetapkan tingkat stop loss dan take profit memungkinkan kontrol risiko yang lebih baik berdasarkan volatilitas pasar.
Bagan Renko menyaring kebisingan pasar dan memberikan visual yang bersih untuk melihat pembalikan tren.
Pengguna perlu mengoptimalkan parameter seperti periode ATR, stop loss % dan take profit % untuk lingkungan pasar yang berbeda.
Peristiwa berita utama atau rilis kebijakan dapat menyebabkan pergeseran cepat di luar stop loss atau mengambil tingkat keuntungan, yang mengarah pada kerugian besar.
Dalam beberapa kasus, pola pembalikan yang disinyalisasikan mungkin gagal terwujud, yang menyebabkan kehilangan perdagangan.
Kerangka waktu yang lebih tinggi dapat digunakan untuk mengukur arah tren keseluruhan. Kerangka waktu yang lebih rendah dapat menyaring sinyal palsu.
Menggunakan momentum, volatilitas atau indikator lain dalam kombinasi dapat meningkatkan kualitas sinyal dan menghindari sinyal palsu.
Rasio keuntungan dapat disesuaikan secara dinamis berdasarkan volatilitas pasar dan jarak antara harga masuk dan harga saat ini.
Renko ATR Trend Reversal Strategy berhasil memanfaatkan grafik Renko dengan indikator ATR untuk secara otomatis menemukan titik pembalikan tren di pasar keuangan. Keuntungan utama termasuk penghapusan pencelupan ulang, otomatis beradaptasi dengan perubahan volatilitas, dan stop loss / take profit dinamis. Namun, pengguna perlu berhati-hati terhadap risiko optimasi parameter, risiko peristiwa dan risiko pembalikan yang gagal. Peningkatan lebih lanjut dapat mencakup menggunakan beberapa kerangka waktu, menggabungkan indikator lain, dan penyesuaian take profit dinamis.
/*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"}] */ //@version=5 strategy(title='[tradinghook] - Renko Trend Reversal Strategy', shorttitle='[tradinghook] - Renko TRS', overlay=true ,initial_capital = 100, commission_value = 0.05, default_qty_value = 5) // INPUTS renkoATRLength = input.int(10, minval=1, title='ATR Length') stopLossPct = input.float(3, title='Stop Loss Percentage', step=0.1) takeProfitPct = input.float(20, title='Take Profit Percentage', step=0.1) startDate = input(timestamp("01 July 2023 00:00"), title="Start Date") endDate = input(timestamp("31 Dec 2025 23:59"), title="End Date") enableShorts = input.bool(true, title="Enable Shorts") var float stopLossPrice = na var float takeProfitPrice = na atr = ta.atr(renkoATRLength) // thanks to https://www.tradingview.com/script/2vKhpfVH-Renko-XZ/ for manually calculating renkoClose and renkoOpen in order to remove repaint getRenkoClose() => p1 = 0.0 p1 := close > nz(p1[1]) + atr ? nz(p1[1]) + atr : close < nz(p1[1]) - atr ? nz(p1[1]) - atr : nz(p1[1]) p1 Renko3() => p3 = 0.0 p3 := open > nz(p3[1]) + atr ? nz(p3[1]) + atr : open < nz(p3[1]) - atr ? nz(p3[1]) - atr : nz(p3[1]) p3 getRenkoOpen() => open_v = 0.0 Br_2 = Renko3() open_v := Renko3() != Renko3()[1] ? Br_2[1] : nz(open_v[1]) open_v renkoOpen = getRenkoOpen() renkoClose = getRenkoClose() // COLORS colorGreen = #089981 colorRed = #F23645 bgTransparency = 95 bgColorRed = color.new(colorRed, bgTransparency) bgColorGreen = color.new(colorGreen, bgTransparency) lineColor = renkoClose < renkoOpen ? colorRed : colorGreen bgColor = renkoClose < renkoOpen ? bgColorRed : bgColorGreen // PLOTS plot(renkoOpen, title="Renko Open", style=plot.style_line, linewidth=2, color=lineColor) bgcolor(bgColor) // SIGNALS isWithinTimeRange = true buySignal = ta.crossunder(renkoOpen, renkoClose) and isWithinTimeRange sellSignal = ta.crossover(renkoOpen, renkoClose) and isWithinTimeRange and enableShorts if (buySignal) stopLossPrice := renkoOpen * (1 - stopLossPct / 100) takeProfitPrice := renkoOpen * (1 + takeProfitPct / 100) strategy.entry("Long", strategy.long) strategy.exit("ExitLong", "Long", stop = stopLossPrice, limit = takeProfitPrice, comment="SL: " + str.tostring(stopLossPrice) + ", TP: " + str.tostring(takeProfitPrice)) if (sellSignal) stopLossPrice := renkoOpen * (1 + stopLossPct / 100) takeProfitPrice := renkoOpen * (1 - takeProfitPct / 100) strategy.entry("Short", strategy.short) strategy.exit("ExitShort", "Short", stop = stopLossPrice, limit = takeProfitPrice, comment="SL: " + str.tostring(stopLossPrice) + ", TP: " + str.tostring(takeProfitPrice))