Strategi Supertrend berdasarkan Average True Range


Tanggal Pembuatan: 2024-01-18 12:26:33 Akhirnya memodifikasi: 2024-01-18 12:26:33
menyalin: 1 Jumlah klik: 623
1
fokus pada
1617
Pengikut

Strategi Supertrend berdasarkan Average True Range

Ringkasan

Strategi ini didasarkan pada indikator Average True Range (ATR) untuk membangun saluran supertrend (SuperTrend) dan menghasilkan sinyal beli dan jual berdasarkan harga yang menerobos saluran supertrend. Strategi ini menggabungkan keuntungan dari pelacakan tren dan manajemen stop loss untuk secara efektif melacak arah tren.

Prinsip Strategi

Jalur tren super dihitung dengan rumus berikut:

Uptrend = (harga tertinggi + harga terendah) / 2 + ATR (n) * faktor Jalur bawah = (harga tertinggi + harga terendah) / 2 - ATR (n) * faktor

Di antaranya, ATR ((n) adalah rata-rata amplitudo riil selama n hari, dengan faktor sebagai parameter yang dapat disesuaikan, dengan default 3.

Ketika harga closeout lebih tinggi dari uptrend adalah sinyal bullish, dan ketika harga closeout lebih rendah dari downtrend adalah sinyal bearish. Strategi menentukan masuk dan keluar berdasarkan sinyal bullish dan bearish.

Analisis Keunggulan

  • Indikator ATR digunakan untuk menentukan kisaran saluran berdasarkan gelombang pasar, sehingga dapat secara efektif melacak tren
  • Mencoba untuk mengevaluasi pasar dan menghindari penembusan palsu
  • Rentang saluran dapat disesuaikan sesuai dengan parameter faktor untuk menyesuaikan dengan pasar fluktuasi yang berbeda
  • Keuntungan dari integrasi pelacakan tren dan manajemen stop loss

Analisis risiko

  • Setting parameter faktor yang tidak tepat dapat menyebabkan keuntungan yang kurang atau stop loss yang terlalu padat
  • Pada saat pasar bergejolak, sinyal perdagangan yang dikeluarkan oleh saluran supertrend sering terjadi dan dapat menyebabkan overtrading.
  • Perlu mengoptimalkan pencocokan parameter siklus ATR dengan parameter faktor

Solusi untuk Mengatasi Risiko:

  • Adaptasi faktor parameter untuk pasar yang berbeda untuk mengurangi risiko stop loss yang terlalu padat
  • Menambahkan filter kondisional untuk menghindari seringnya transaksi di pasar yang bergoyang
  • Faktor-faktor seperti volatilitas pasar, waktu memegang posisi dan lain-lain secara menyeluruh untuk mencocokkan siklus ATR

Arah optimasi

  • Gabungan dengan indikator lain untuk memfilter sinyal, untuk mengoptimalkan waktu masuk
  • Menambahkan pelacakan stop loss seluler untuk mengunci lebih banyak keuntungan
  • Optimalisasi varietas dan parameter siklus
  • Optimalkan pencocokan siklus ATR dengan parameter faktor

Meringkaskan

Strategi ini menggunakan saluran hypertrend untuk melakukan pelacakan tren dan manajemen stop loss. Pertandingan siklus ATR dan parameter faktor sangat penting untuk efektivitas strategi. Langkah selanjutnya adalah untuk mengoptimalkan strategi lebih lanjut dari segi optimasi parameter, pemfilteran sinyal, dan lain-lain, sehingga dapat beradaptasi dengan lingkungan pasar yang lebih kompleks.

Kode Sumber Strategi
/*backtest
start: 2023-01-11 00:00:00
end: 2024-01-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Supertrend Backtest", shorttitle="STBT", overlay=true)

// Input for ATR Length
atrLength = input.int(10, title="ATR Length", minval=1)
atrFactor = input.float(3.0, title="Factor", minval=0.01, step=0.01)

// Calculate SuperTrend
[supertrend, direction] = ta.supertrend(atrFactor, atrLength)
supertrend := barstate.isfirst ? na : supertrend

// Define entry and exit conditions
longCondition = ta.crossover(close, supertrend)
shortCondition = ta.crossunder(close, supertrend)

// Plot the SuperTrend
plot(supertrend, color=color.new(color.blue, 0), title="SuperTrend")

// Plot Buy and Sell signals
plotshape(series=longCondition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal")
plotshape(series=shortCondition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal")

// Strategy Entry and Exit
strategy.entry("Long", strategy.long, when=longCondition)
strategy.entry("Short", strategy.short, when=shortCondition)