Renko ATR Trend Reversal Strategy adalah pendekatan perdagangan yang unik yang menggunakan carta Renko bersama dengan indikator Average True Range (ATR) untuk mengenal pasti titik pembalikan trend di pasaran kewangan.
Strategi ini mula-mula mengira nilai ATR dalam tempoh yang ditentukan dan menggunakan ATR ini sebagai saiz bata untuk carta Renko. Bata Renko baru ditarik apabila pergerakan harga melebihi satu ATR. Dengan cara ini, carta Renko dapat menyesuaikan diri secara automatik dengan turun naik pasaran, dengan saiz bata yang lebih besar untuk turun naik yang lebih tinggi dan saiz bata yang lebih kecil untuk tempoh turun naik yang lebih rendah.
Isyarat beli dihasilkan apabila harga terbuka carta Renko melintasi di bawah harga penutupan. Sebaliknya, isyarat jual dihasilkan apabila harga terbuka melintasi di atas harga penutupan. Isyarat ini menandakan titik pembalikan trend yang berpotensi.
Strategi secara dinamik menetapkan tahap stop-loss dan mengambil keuntungan untuk setiap perdagangan sebagai peratusan daripada harga terbuka Renko, berdasarkan parameter input yang ditakrifkan oleh pengguna. Ini mengawal risiko dan ganjaran untuk setiap perdagangan.
Dengan mengira harga buka dan tutup secara manual, lukisan semula dihapuskan, menjadikan isyarat lebih tepat dan tepat pada masanya.
Saiz bata berasaskan ATR membolehkan strategi menyesuaikan diri secara automatik dengan keadaan turun naik pasaran yang berbeza.
Mekanisme dinamik untuk menetapkan paras stop loss dan mengambil keuntungan membolehkan kawalan risiko yang lebih baik berdasarkan turun naik pasaran.
Carta Renko menapis bunyi pasaran dan menyediakan visual yang bersih untuk melihat pembalikan trend.
Pengguna perlu mengoptimumkan parameter seperti tempoh ATR, stop loss % dan mengambil keuntungan % untuk persekitaran pasaran yang berbeza. tetapan parameter yang buruk boleh merosot prestasi strategi.
Peristiwa berita utama atau siaran dasar boleh menyebabkan pergeseran cepat di luar stop loss atau mengambil tahap keuntungan, yang membawa kepada kerugian besar.
Dalam beberapa kes, corak pembalikan yang ditandakan mungkin gagal terwujud, yang membawa kepada perdagangan yang rugi.
Jangka masa yang lebih tinggi boleh digunakan untuk mengukur arah trend keseluruhan. Jangka masa yang lebih rendah boleh menapis isyarat palsu.
Menggunakan momentum, turun naik atau penunjuk lain dalam kombinasi boleh meningkatkan kualiti isyarat dan mengelakkan isyarat palsu.
Nisbah keuntungan boleh diselaraskan secara dinamik berdasarkan turun naik pasaran dan jarak antara harga kemasukan dan harga semasa.
Renko ATR Trend Reversal Strategy berjaya menggunakan carta Renko dengan penunjuk ATR untuk mengesan secara automatik titik pembalikan trend di pasaran kewangan. Kelebihan utama termasuk penghapusan lukisan semula, penyesuaian automatik terhadap perubahan turun naik, dan stop loss / mengambil keuntungan dinamik. Walau bagaimanapun, pengguna perlu berhati-hati terhadap risiko pengoptimuman parameter, risiko peristiwa dan risiko pembalikan yang gagal. Peningkatan lanjut mungkin termasuk menggunakan beberapa jangka masa, menggabungkan penunjuk lain, dan penyesuaian keuntungan yang dinamik.
/*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))