ATR Channel Breakout Trend-mengikuti Strategi

Penulis:ChaoZhang, Tanggal: 2024-01-03 11:53:52
Tag:

img

Gambaran umum

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.

Prinsip

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.

Analisis Keuntungan

Keuntungan utama dari strategi ini adalah:

  1. Menggunakan indikator ATR untuk membangun saluran memperhitungkan volatilitas pasar lebih baik daripada rata-rata bergerak sederhana.
  2. Titik jual/beli dua tingkat memungkinkan masuk bertahap dengan risiko yang dapat dikontrol.
  3. Teori breakout dengan akurat menemukan titik tren utama.
  4. Kode yang ringkas mudah dimengerti dan diterapkan.

Analisis Risiko

Risiko utama dari strategi ini adalah:

  1. Bergantung pada satu indikator berarti kemungkinan kegagalan yang tinggi jika ATR gagal.
  2. Kurangnya stop loss dan manajemen posisi menyebabkan kontrol risiko yang tidak memadai.
  3. Utilitas perlu diverifikasi dan mungkin berkinerja buruk dalam kondisi perdagangan langsung.
  4. Parameter yang tidak tepat dapat menyebabkan whipsaws atau overtrading.

Arahan Optimasi

Arah optimasi untuk strategi ini meliputi:

  1. Menambahkan filter dengan beberapa indikator untuk mencegah penilaian yang salah.
  2. Menambahkan modul stop loss untuk meningkatkan kontrol risiko.
  3. Menambahkan kontrol posisi dan manajemen uang.
  4. Pengaturan parameter untuk produk yang berbeda.
  5. Mengurangi frekuensi perdagangan dan ukuran posisi untuk perdagangan langsung.

Ringkasan

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)


Lebih banyak