
Strategi ini menggunakan saluran ATR dan teori breakout, memasuki tren saat melintasi saluran, dan merupakan strategi pelacakan tren. Strategi ini sederhana dan mudah dimengerti, menggunakan saluran rata-rata dan indikator ATR untuk menentukan arah tren, dan mengirimkan sinyal perdagangan di titik-titik kunci.
Strategi ini menggunakan harga tinggi, rendah, tutup dan indikator ATR untuk membangun tren naik turun, membentuk saluran ATR. Lebar saluran ditentukan oleh ukuran parameter ATR. Ketika harga menerobos saluran, dinilai sebagai awal tren, saat ini masuk ke arah melakukan lebih banyak atau lebih sedikit. Strategi ini terbagi menjadi dua sinyal perdagangan, harga menerobos satu lebar ATR dianggap sebagai awal tren, saat ini titik jual beli yang pertama dipicu; harga menerobos dua lebar ATR dianggap sebagai percepatan tren, titik jual beli kedua dipicu.
Keuntungan utama dari strategi ini adalah:
Risiko utama dari strategi ini adalah sebagai berikut:
Strategi ini dapat dioptimalkan sebagai berikut:
Strategi ini memiliki kerangka kerja yang jelas dan dapat dipahami sebagai strategi validasi konsep. Namun, jarak dari real-time masih ada kesenjangan dan ada ruang untuk pengoptimalan yang lebih besar. Strategi ini memiliki prospek yang lebih baik jika dapat memperbaiki kontrol angin dan kontrol frekuensi perdagangan.
/*backtest
start: 2023-12-03 00:00:00
end: 2024-01-02 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Myhaj_Lito
//@version=5
strategy("Renko Trend Strategy",shorttitle = "RENKO-Trend str.",overlay = true)
TF = input.timeframe(title='TimeFrame', defval="60")
ATRlength = input.int(title="ATR length", defval=60, minval=2, maxval=1000)
HIGH = request.security(syminfo.tickerid, TF, high)
LOW = request.security(syminfo.tickerid, TF, low)
CLOSE = request.security(syminfo.tickerid, TF, close)
ATR = request.security(syminfo.tickerid, TF, ta.atr(ATRlength))
RENKOUP = float(na)
RENKODN = float(na)
H = float(na)
COLOR = color(na)
BUY = int(na)
SELL = int(na)
UP = bool(na)
DN = bool(na)
CHANGE = bool(na)
RENKOUP := na(RENKOUP[1]) ? (HIGH + LOW) / 2 + ATR / 2 : RENKOUP[1]
RENKODN := na(RENKOUP[1]) ? (HIGH + LOW) / 2 - ATR / 2 : RENKODN[1]
H := na(RENKOUP[1]) or na(RENKODN[1]) ? RENKOUP - RENKODN : RENKOUP[1] - RENKODN[1]
COLOR := na(COLOR[1]) ? color.white : COLOR[1]
BUY := na(BUY[1]) ? 0 : BUY[1]
SELL := na(SELL[1]) ? 0 : SELL[1]
UP := false
DN := false
CHANGE := false
// calculating
if not CHANGE and close >= RENKOUP[1] + H * 2
CHANGE := true
UP := true
RENKOUP := RENKOUP[1] + ATR * 2
RENKODN := RENKOUP[1] + ATR
COLOR := color.rgb(0, 255, 170,60)
SELL := 0
BUY += 2
BUY
if not CHANGE and close >= RENKOUP[1] + H
CHANGE := true
UP := true
RENKOUP := RENKOUP[1] + ATR
RENKODN := RENKOUP[1]
COLOR := color.rgb(0, 230, 38,60)
SELL := 0
BUY += 1
BUY
if not CHANGE and close <= RENKODN[1] - H * 2
CHANGE := true
DN := true
RENKODN := RENKODN[1] - ATR * 2
RENKOUP := RENKODN[1] - ATR
COLOR := color.rgb(255, 92, 43,60)
BUY := 0
SELL += 2
SELL
if not CHANGE and close <= RENKODN[1] - H
CHANGE := true
DN := true
RENKODN := RENKODN[1] - ATR
RENKOUP := RENKODN[1]
COLOR := color.rgb(245, 69, 69,60)
BUY := 0
SELL += 1
SELL
//// STRATEGY
if(UP)
strategy.entry("Long",strategy.long)
if(DN)
strategy.entry("Short",strategy.short)
// ploting
bgcolor(COLOR)