Renko ATR Strategi Pembalikan Tren

Penulis:ChaoZhang, Tanggal: 2024-02-01 14:30:24
Tag:

img

Gambaran umum

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.

Logika Strategi

Renko Brick Generasi

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.

Pembelian dan Penjualan Generasi Sinyal

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.

Hentikan Kerugian dan Ambil Keuntungan

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.

Analisis Keuntungan

Menghilangkan Perbaikan Lukisan

Dengan menghitung harga buka dan tutup secara manual, lukisan ulang dihilangkan, membuat sinyal lebih akurat dan tepat waktu.

Otomatis Beradaptasi dengan Volatilitas

Ukuran batu bata berdasarkan ATR memungkinkan strategi untuk secara otomatis beradaptasi dengan kondisi volatilitas pasar yang berbeda.

Stop Loss dan Take Profit yang Dinamis

Mekanisme dinamis untuk menetapkan tingkat stop loss dan take profit memungkinkan kontrol risiko yang lebih baik berdasarkan volatilitas pasar.

Menghilangkan tampilan grafik

Bagan Renko menyaring kebisingan pasar dan memberikan visual yang bersih untuk melihat pembalikan tren.

Analisis Risiko

Risiko Optimasi Parameter

Pengguna perlu mengoptimalkan parameter seperti periode ATR, stop loss % dan take profit % untuk lingkungan pasar yang berbeda.

Risiko Kejadian

Peristiwa berita utama atau rilis kebijakan dapat menyebabkan pergeseran cepat di luar stop loss atau mengambil tingkat keuntungan, yang mengarah pada kerugian besar.

Risiko Pembaikan yang Gagal

Dalam beberapa kasus, pola pembalikan yang disinyalisasikan mungkin gagal terwujud, yang menyebabkan kehilangan perdagangan.

Peluang Peningkatan

Menggunakan Beberapa Kerangka Waktu

Kerangka waktu yang lebih tinggi dapat digunakan untuk mengukur arah tren keseluruhan. Kerangka waktu yang lebih rendah dapat menyaring sinyal palsu.

Menggabungkan Indikator Lainnya

Menggunakan momentum, volatilitas atau indikator lain dalam kombinasi dapat meningkatkan kualitas sinyal dan menghindari sinyal palsu.

Penyesuaian Keuntungan Dinamis

Rasio keuntungan dapat disesuaikan secara dinamis berdasarkan volatilitas pasar dan jarak antara harga masuk dan harga saat ini.

Kesimpulan

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))


Lebih banyak