ATR Trend Mengikuti Strategi


Tarikh penciptaan: 2023-09-28 11:32:09 Akhirnya diubah suai: 2023-09-28 11:32:09
Salin: 0 Bilangan klik: 795
1
fokus pada
1617
Pengikut

Gambaran keseluruhan

Strategi ini berdasarkan purata sebenar gelombang indikator ATR untuk menilai arah trend, melakukan lebih banyak apabila trend meningkat, mengambil posisi kosong apabila trend menurun, adalah jenis strategi trend mengikuti.

Prinsip Strategi

Strategi ini pertama-tama mengira harga purata bergerak sederhana sma dan purata bergerak indeks ema. Kemudian, ia mengira indikator ATR, iaitu julat pergerakan purata untuk N hari yang lalu.

Strategi untuk menilai arah trend melalui rata-rata ema, atas ((ema + ATR * faktor) dan bawah ((ema - ATR * faktor)). Apabila harga naik ke atas, lakukan lebih banyak; apabila harga turun ke bawah, lakukan kosong.

Logik kod utama:

  1. Pengiraan purata harga sma dan ema
  2. Mengira Julat Fluktuasi Purata ATR
  3. Pengiraan laluan atas dan bawah
  4. Harga naik ke paras yang lebih rendah
  5. Sinyal pengurangan harga: Harga turun ke bawah
  6. Tetapkan kedudukan sejajar terhenti: harga di bawah melintasi garis rata lebih banyak; harga di atas melintasi garis rata kosong

Dengan menggunakan ATR untuk mengubah kedudukan secara dinamik, Directions dapat mengesan trend secara berkesan.

Kelebihan Strategik

  1. Menggunakan ATR untuk menentukan arah trend, dapat menangkap trend harga dengan berkesan
  2. Stop loss berdasarkan purata yang dapat mengawal risiko dengan bijak
  3. Strategi logik mudah difahami dan mudah dilaksanakan
  4. Fleksibiliti parameter yang boleh dikonfigurasi untuk persekitaran pasaran yang berbeza

Risiko Strategik

  1. Indeks ATR tidak akan berfungsi jika pasaran bergolak
  2. Tetapan parameter yang tidak betul boleh menyebabkan terlalu kerap membuka kedudukan
  3. Hentikan Kerosakan Mungkin Tidak Berkesan Jika Kejadian Tiba-tiba Berpengaruh
  4. Pasaran dengan kos dagangan yang tinggi, Setting perlu disesuaikan

Penyelesaian:

  1. Dalam keadaan pasaran yang bergolak, ia adalah lebih baik untuk menangguhkan strategi atau menggunakan indikator lain.
  2. Optimumkan parameter untuk mengurangkan frekuensi pembukaan.
  3. Peningkatan Kadar Hentian Kerosakan untuk Kejadian Data Utama
  4. Mengubah nilai ATR mengikut jenis

Arah pengoptimuman strategi

  1. Menggabungkan parameter pengoptimuman penunjuk trend, seperti penambahan MACD untuk menentukan trend
  2. Penambahan penapis, seperti Brin Belt yang menentukan kemasukan
  3. Mengoptimumkan cara menghentikan kerugian, seperti pergerakan berhenti atau penunjuk keluar
  4. Julat nilai ATR yang dioptimumkan untuk jenis tertentu
  5. Meningkatkan strategi pengurusan wang, seperti pegangan tetap
  6. Parameter pengoptimuman dinamik yang digabungkan dengan kaedah pembelajaran mesin

ringkaskan

Strategi pengesanan trend ATR mempunyai pemikiran keseluruhan yang jelas, menilai arah trend melalui indikator ATR, dan merupakan strategi pengesanan trend yang tipikal. Kelebihan strategi ini adalah mudah digunakan dan dapat mengesan trend dengan berkesan; tetapi ada juga risiko tertentu, yang memerlukan penyesuaian optimum untuk keadaan pasaran yang berbeza untuk mencapai keberkesanan strategi. Secara keseluruhan, strategi ini mempunyai ruang pengembangan dan nilai penggunaan yang besar sebagai alat perdagangan kuantitatif.

Kod sumber strategi
/*backtest
start: 2023-08-28 00:00:00
end: 2023-09-27 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Investoz

//@version=4
strategy("ATR Strategy FOREX", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

len = input(26, type=input.integer, minval=1, title="Length")
mul = input(2.618, type=input.float, minval=0, title="Length")
mullow = input(2.386, 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()) and ema(close,1) > ema(close,528)
    strategy.entry("KOP", strategy.long, when=bull_cross) 
    strategy.close("KOP", when=bear_cross)  
if (startTimeOk()) and ema(close,1) < ema(close,528)
   strategy.entry("SALJ", strategy.short, when=bear_cross) 
   strategy.close("SALJ", when=bull_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)