Strategi ini menggunakan saluran ATR dan teori breakout untuk mengikuti tren dengan memasuki saat saluran rusak. Ini termasuk strategi trend-mengikuti. Strategi ini sederhana dan mudah dipahami, menggunakan saluran rata-rata bergerak dan indikator ATR untuk menentukan arah tren dan mengeluarkan sinyal perdagangan di titik-titik kunci.
Strategi ini membangun band atas dan bawah dengan harga tinggi, rendah, dekat dan indikator ATR untuk membentuk saluran ATR. Lebar saluran ditentukan oleh ukuran parameter ATR. Ketika harga menembus saluran, itu dinilai sebagai awal tren, di mana titik-titik posisi panjang atau pendek dimasukkan. Strategi ini memiliki dua tingkat sinyal perdagangan. Ketika harga menembus satu lebar ATR, itu dianggap sebagai tren muncul, memicu tingkat pertama titik beli / jual. Ketika harga menembus dua lebar ATR, itu dianggap sebagai tren percepatan, memicu tingkat kedua titik beli / jual.
Keuntungan utama dari strategi ini adalah:
Risiko utama dari strategi ini adalah:
Arah optimasi untuk strategi ini meliputi:
Kerangka kerja keseluruhan strategi ini jelas dan dapat digunakan sebagai bukti konsep. Tetapi ada kesenjangan dari perdagangan langsung yang memungkinkan optimasi yang substansial. Jika kontrol risiko dan frekuensi perdagangan dapat ditingkatkan lebih lanjut, prospek penerapan akan baik.
/*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)