Strategi Mengikuti Tren Super ATR


Tanggal Pembuatan: 2024-02-19 11:41:20 Akhirnya memodifikasi: 2024-02-19 11:41:20
menyalin: 0 Jumlah klik: 669
1
fokus pada
1617
Pengikut

Strategi Mengikuti Tren Super ATR

Ringkasan

Strategi pelacakan tren superATR adalah strategi pelacakan tren berdasarkan indikator ATR. Strategi ini menggunakan indikator ATR untuk mengukur volatilitas pasar dan melakukan pelacakan tren dengan beberapa kali lipat dari ATR sebagai garis stop loss.

Prinsip Strategi

Strategi ini pertama-tama menghitung indikator ATR, di mana indikator ATR adalah rata-rata bergerak dari volatilitas harga saham dalam N hari terakhir, untuk mewakili risiko dan volatilitas pasar. Strategi ini memungkinkan kita mengubah metode perhitungan ATR, dapat memilih ATR biasa atau SMA.

Lalu kalikan satu kali lipatnya dengan nilai ATR sebagai jalur naik turun, yaitu menghitung naik:close - Multiplier * ATRPenghitungan di bawah rel:close + Multiplier * ATRIni adalah saluran tren berdasarkan indikator ATR.

Kemudian kita menilai apakah harga saat ini menembus saluran naik atau turun. Jika harga menembus saluran naik, kita menilai sebagai masuk ke dalam tren turun; jika harga menembus saluran turun, kita menilai sebagai masuk ke dalam tren naik.

Selain itu, strategi juga mengatur jendela waktu perdagangan, hanya dalam jangka waktu tanggal yang ditentukan.

Keunggulan Strategis

Strategi pelacakan tren berbasis saluran indikator ini memiliki beberapa keuntungan:

  1. Menggunakan indikator ATR untuk menyesuaikan posisi stop loss secara otomatis, sehingga dapat mengontrol risiko secara efektif
  2. Indeks ATR memperhitungkan volatilitas harga saham, stop loss lebih masuk akal
  3. Pengukuran masuk dengan menggunakan penembusan saluran untuk meningkatkan akurasi masuk
  4. Memungkinkan penyesuaian cara menghitung ATR, meningkatkan fleksibilitas kebijakan
  5. Menetapkan jendela waktu perdagangan untuk menghindari kegagalan strategi peristiwa besar

Secara keseluruhan, ini adalah strategi pelacakan tren yang sederhana dan praktis yang dapat mengontrol risiko secara efektif dan mendapatkan keuntungan yang lebih baik.

Analisis risiko

Strategi ini juga memiliki beberapa risiko, terutama:

  1. Pada saat terjadi perubahan besar di pasar, indikator ATR mungkin tidak bereaksi terhadap perubahan pasar, yang menyebabkan stop loss terlalu longgar
  2. Harga dapat bergoyang di dalam saluran, meningkatkan risiko perdagangan, jika ada perbedaan pendapat
  3. Pengaturan perkalian tetap mungkin tidak cocok untuk semua varietas dan perlu disesuaikan untuk varietas yang berbeda
  4. setWindow membatasi peluang trading, jika tidak diatur dengan baik, Anda mungkin akan kehilangan peluang trading yang lebih baik

Untuk mengendalikan risiko ini, kita dapat mengambil langkah-langkah berikut:

  1. Menghindari ketergantungan pada indikator ATR saja, dengan mengkombinasikan indikator lain untuk menilai kondisi pasar
  2. Meningkatkan kondisi penyaringan untuk menghindari risiko penembusan yang tidak efektif
  3. Memilih jumlah ganda yang tepat berdasarkan karakteristik sejarah varietas yang berbeda
  4. Mengoptimalkan dan menguji parameter setWindow untuk memastikan pengaturan yang masuk akal

Arah optimasi

Strategi ini masih bisa dioptimalkan lebih jauh:

  1. Menggunakan algoritma pembelajaran mesin untuk mengoptimalkan dinamika perkalian
  2. Menggunakan indikator emosi dan lain-lain untuk menilai leverage, dan mengoptimalkan jangkauan saluran
  3. Meningkatkan volume transaksi atau konfirmasi volatilitas untuk menghindari kegagalan penembusan
  4. Backtest menggunakan kerangka kebijakan berbasis waktu tingkat lanjut

Dengan optimasi ini, stabilitas dan tingkat pengembalian strategi dapat ditingkatkan lebih lanjut.

Meringkaskan

Strategi ini overall adalah strategi pelacakan tren yang sangat praktis. Strategi ini menggunakan indikator ATR untuk membangun saluran adaptasi dan memutuskan kapan tepat untuk membeli atau menjual dengan menerobos saluran. Strategi ini sederhana dan praktis, dapat mengontrol risiko secara efektif, dan cocok untuk melacak tren garis panjang.

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

//@version=5
strategy('B厂长 @超级趋势精简优化版', overlay=true)
Periods = input(title='ATR周期', defval=10)
src = input(hl2, title='价格数据源')
Multiplier = input.float(title='ATR 乘数', step=0.1, defval=3.0)
changeATR = input(title='更改ATR计算方法', defval=true,tooltip = '默认为art否则sma(ta.tr,ATR周期)')
showsignals = input(title='显示买入/卖出信号', defval=false)
atr2 = ta.sma(ta.tr, Periods)
atr = changeATR ? ta.atr(Periods) : atr2
up = src - Multiplier * atr
up1 = nz(up[1], up)
up := close[1] > up1 ? math.max(up, up1) : up
dn = src + Multiplier * atr
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? math.min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
upPlot = plot(trend == 1 ? up : na, title='上涨趋势', style=plot.style_linebr, linewidth=2, color=color.new(color.green, 0))
buySignal = trend == 1 and trend[1] == -1
plotshape(buySignal and showsignals ? up : na, title='买点', text='买点', location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(color.green, 0), textcolor=color.new(color.white, 0))
dnPlot = plot(trend == 1 ? na : dn, title='下跌趋势', style=plot.style_linebr, linewidth=2, color=color.new(color.red, 0))
sellSignal = trend == -1 and trend[1] == 1
plotshape(sellSignal and showsignals ? dn : na, title='卖点', text='卖点', location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(color.red, 0), textcolor=color.new(color.white, 0))
FromMonth = input.int(defval=9, title='From Month', minval=1, maxval=12)
FromDay = input.int(defval=1, title='From Day', minval=1, maxval=31)
FromYear = input.int(defval=2018, title='From Year', minval=999)
ToMonth = input.int(defval=1, title='To Month', minval=1, maxval=12)
ToDay = input.int(defval=1, title='To Day', minval=1, maxval=31)
ToYear = input.int(defval=9999, title='To Year', minval=999)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00)
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59)
window() =>
    time >= start and time <= finish ? true : false
longCondition = buySignal
if longCondition and window()
    strategy.entry('BUY', strategy.long, comment = '做多')
shortCondition = sellSignal
if shortCondition and window()
    strategy.entry('SAL', strategy.short, comment = '做空')

buy1 = ta.barssince(buySignal)
sell1 = ta.barssince(sellSignal)
color1 = buy1[1] < sell1[1] ? color.green : buy1[1] > sell1[1] ? color.red : na