Strategi pembalikan tren berdasarkan Renko Average True Range


Tanggal Pembuatan: 2024-02-01 14:30:24 Akhirnya memodifikasi: 2024-02-01 14:30:24
menyalin: 0 Jumlah klik: 1467
1
fokus pada
1617
Pengikut

Strategi pembalikan tren berdasarkan Renko Average True Range

Ringkasan

Strategi Reversal Tren ATR adalah strategi perdagangan unik yang bertujuan untuk mengidentifikasi titik balik tren di pasar keuangan dengan menggunakan grafik Renko yang digabungkan dengan indikator ATR. Strategi ini menghilangkan masalah pencitraan lag dari grafik Renko dan mampu menangkap titik balik dengan akurat dan memberikan sinyal yang jelas untuk keputusan perdagangan.

Prinsip Strategi

Blok Renko dibuat

Strategi ini pertama-tama menghitung nilai ATR dalam periode tertentu dan menetapkan ukuran blok Renko dengan ATR ini sebagai basis. Blok Renko baru digambar ketika harga bergerak lebih dari satu ATR. Dengan cara ini, Renko dapat secara otomatis menyesuaikan diri dengan tingkat fluktuasi pasar, mengatur ukuran blok yang lebih besar pada saat fluktuasi tinggi, dan ukuran blok yang lebih kecil pada saat fluktuasi rendah.

Pembelian dan penjualan sinyal

Ketika Renko membuka harga di bawah harga penutupan, menghasilkan sinyal beli; Ketika Renko membuka harga di atas harga penutupan, menghasilkan sinyal jual. Sinyal-sinyal ini menandai titik balik tren potensial.

Pengaturan Stop Loss dan Stop

Strategi ini secara dinamis mengatur harga stop loss dan harga stop loss untuk setiap transaksi berdasarkan persentase stop loss dan persentase stop loss yang didefinisikan pengguna, dengan harga buka Renko sebagai harga acuan, dan mengontrol risiko dan keuntungan dari setiap transaksi.

Analisis Keunggulan

Menghilangkan keterlambatan

Strategi ini menghilangkan masalah penargetan tertunda dengan menghitung secara manual harga pembukaan dan harga penutupan Renko, membuat sinyal lebih akurat dan tepat waktu.

Adaptasi otomatis terhadap volatilitas pasar

Pengaturan ukuran blok Renko berdasarkan indikator ATR memungkinkan strategi untuk secara otomatis menyesuaikan tingkat fluktuasi harga dalam kondisi pasar yang berbeda.

Dinamis Stop Stop Stop Set

Strategi ini menetapkan mekanisme stop loss dan stop loss yang dinamis untuk setiap transaksi, yang dapat mengendalikan risiko sesuai dengan tingkat fluktuasi pasar.

Pemandangan grafik sederhana

Grafik Renko itu sendiri dapat memfilter kebisingan pasar dan memberikan visual yang jelas dan ringkas ketika tren berbalik.

Analisis risiko

Risiko Optimasi Parameter

Pengguna perlu mengoptimalkan parameter seperti siklus ATR, persentase stop loss dan persentase stop loss untuk menyesuaikan dengan lingkungan pasar yang berbeda. Jika parameter tidak diatur dengan benar, itu akan menyebabkan efektivitas strategi yang buruk.

Risiko Kejadian Luar Biasa

Peristiwa ekonomi besar atau munculnya kebijakan dapat menyebabkan kenaikan harga yang cepat, sehingga level stop loss atau stop loss dapat ditembus dan menyebabkan kerugian yang lebih besar.

Resiko kegagalan terbalik

Dalam beberapa kasus, sinyal perdagangan yang menentukan pembalikan mungkin gagal dan tidak dapat mendorong harga ke arah pembalikan, sehingga menyebabkan kerugian.

Arah optimasi

Menggabungkan beberapa periode waktu

Anda dapat menilai tren besar pada periode waktu yang lebih tinggi dan menghindari perdagangan berlawanan. Anda juga dapat memfilter sinyal palsu pada periode waktu yang lebih rendah.

Kombinasi dengan Indikator Lain

Penggunaan ini dalam kombinasi dengan indikator momentum, indikator tingkat fluktuasi, dan lain-lain dapat meningkatkan kualitas sinyal dan menghindari sinyal yang salah.

Dinamika penyesuaian stop-loss ratio

Rasio stop dapat disesuaikan secara dinamis dengan tingkat fluktuasi pasar dan jarak harga terbaru dari titik masuk.

Meringkaskan

Strategi reversal tren yang didasarkan pada rentang gelombang nyata rata-rata Renko berhasil menggunakan grafik Renko yang digabungkan dengan indikator ATR untuk mengidentifikasi titik balik di pasar keuangan secara otomatis. Strategi ini memiliki keuntungan seperti penghapusan pencitraan lag, adaptasi otomatis terhadap volatilitas pasar, dan stop loss dinamis.

Kode Sumber Strategi
/*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))