Strategi Breakout Range Rata-rata dengan Rasio Emas

Penulis:ChaoZhang, Tanggal: 2024-02-26 15:02:26
Tag:

img

Gambaran umum

Ini adalah strategi breakout yang memanfaatkan indikator ATR untuk menghasilkan sinyal perdagangan. Strategi ini menggunakan sistem rata-rata bergerak untuk menghasilkan sinyal masuk dan saluran ATR yang diperkuat berdasarkan rasio emas untuk membangun posisi panjang dan pendek.

Prinsip-prinsip

Kode ini menghitung ATR selama periode harga penutupan, memperkuatnya dengan 1.618 sebagai band atas dan 2.618 sebagai band bawah. Dikombinasikan dengan EMA, ini membentuk sistem breakout saluran Bollinger.

Keuntungan

  1. Indikator ATR secara efektif menangkap volatilitas pasar dan membangun band perdagangan adaptif, menghindari overfit yang disebabkan oleh parameter statis.
  2. Band ATR yang diperkuat oleh rasio emas memperluas potensi keuntungan tanpa meningkatkan frekuensi perdagangan.
  3. Sistem rata-rata bergerak menyaring kebisingan jangka pendek dan bekerja sama dengan saluran ATR untuk mengidentifikasi tren jangka menengah hingga panjang.

Risiko

  1. Indikator ATR dapat mengalami keterlambatan selama kondisi pasar yang ekstrem.
  2. Kali ganda pembesaran yang tidak tepat akan menyebabkan frekuensi perdagangan yang terlalu tinggi.
  3. Sinyal beralih dari rata-rata bergerak jangka panjang memiliki lag.

Optimalisasi

  1. ATR dapat menggabungkan VIX atau menyesuaikan pembesaran.
  2. Menggunakan beberapa EMA jangka waktu untuk membangun sistem adaptif.
  3. Atur stop loss untuk membatasi kerugian maksimum per perdagangan.

Ringkasan

Strategi ini mengintegrasikan penyaringan rata-rata bergerak, pelacakan saluran ATR dan metodologi rasio emas, yang dapat secara efektif mengikuti tren jangka menengah hingga panjang dengan stabilitas yang baik.


/*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=4
strategy("ATR Long Only Strategy lower band buy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

len = input(52, type=input.integer, minval=1, title="Length")
mul = input(1.618, type=input.float, minval=0, title="Length")
mullow = input(2.618, type=input.float, minval=0, title="Length")

price = sma(close, 1)
average = ema(close, len)
diff = atr(len) * mul
difflow = atr(len) * mullow

bull_level = average + diff
bear_level = average - difflow
bull_cross = crossunder(price, bear_level)
bear_cross = crossunder(bull_level, price)

FromMonth = input(defval = 8, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 18, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2008, title = "From Year", minval = 2008)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 2020, title = "To Year", minval = 2019)

start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)       
startTimeOk()  => true

if (startTimeOk())
    strategy.entry("KOP", strategy.long, when=bull_cross)
    strategy.close("KOP", when=bear_cross)  //strategy.entry("Sell", strategy.short, when=bear_cross)

plot(price, title="price", color=color.black, transp=50, linewidth=2)
a0 = plot(average, title="average", color=color.red, transp=50, linewidth=1)
a1 = plot(bull_level, title="bull", color=color.green, transp=50, linewidth=1)
a2 = plot(bear_level, title="bear", color=color.red, transp=50, linewidth=1)
fill(a0, a1, color=color.green, transp=97)
fill(a0, a2, color=color.red, transp=97)

Lebih banyak