ATR Trend Mengikuti Strategi


Tarikh penciptaan: 2023-09-21 15:13:47 Akhirnya diubah suai: 2023-09-21 15:13:47
Salin: 0 Bilangan klik: 770
1
fokus pada
1617
Pengikut

Gambaran keseluruhan

Strategi ini menggunakan purata gelombang sebenar (ATR) untuk menangkap trend harga, dan menggunakan ATR untuk menetapkan stop loss, untuk mengikuti trend.

Prinsip Strategi

  1. Hitung nilai ATR.

  2. Stop loss ditentukan berdasarkan nilai ATR.

  3. Apabila harga melepasi garis stop loss, buat lebih banyak longkang.

  4. Mengunci keuntungan dengan menyesuaikan Stop Loss secara dinamik.

Kelebihan Strategik

  • Menggunakan ATR untuk menyesuaikan kemusnahan secara automatik, tanpa campur tangan manusia
  • Strategi yang mudah, intuitif dan mudah dilaksanakan
  • Mencegah dan Menghentikan Kerosakan
  • Menggunakan trend untuk menjalankan keuntungan
  • Frekuensi urus niaga boleh dikawal dengan menyesuaikan parameter ATR

Risiko Strategik

  • ATR parameter yang ditetapkan tidak betul boleh menyebabkan terlalu longgar atau ketat
  • Tidak dapat mengenal pasti akhir trend
  • Terdapat ketinggalan masa
  • Mungkin sebahagian daripada keuntungan akibat pembalikan kerugian

Arah pengoptimuman

  • Optimumkan parameter kitaran ATR
  • Uji perkalian ATR yang berbeza sebagai jarak henti
  • Kaedah ini juga boleh digunakan untuk menjana pendapatan.
  • Cuba mengoptimumkan parameter pembelajaran mesin
  • Pertimbangkan strategi penangguhan tambahan

ringkaskan

Strategi ini menggunakan ATR untuk menangkap trend dengan berkesan dan menyesuaikan stop loss secara dinamik untuk mencapai penguncian keuntungan. Tetapan parameter pengoptimuman dapat meningkatkan prestasi strategi. Tetapi masalah ATR yang ketinggalan tidak dapat dielakkan sepenuhnya. Secara keseluruhan, strategi ini adalah penyelesaian trend yang mudah dan praktikal.

Kod sumber strategi
/*backtest
start: 2022-09-14 00:00:00
end: 2023-09-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

strategy(title="ATR Strategy", overlay = true,  commission_type=strategy.commission.percent,commission_value=0.075)
//credits to HPotter for the orginal code
nATRPeriod = input(5)
nATRMultip = input(3.5)
xATR = ta.atr(nATRPeriod)
nLoss = nATRMultip * xATR
xATRTrailingStop = iff(close > nz(xATRTrailingStop[1], 0) and close[1] > nz(xATRTrailingStop[1], 0), math.max(nz(xATRTrailingStop[1]), close - nLoss),
                    iff(close < nz(xATRTrailingStop[1], 0) and close[1] < nz(xATRTrailingStop[1], 0), math.min(nz(xATRTrailingStop[1]), close + nLoss), 
                        iff(close > nz(xATRTrailingStop[1], 0), close - nLoss, close + nLoss)))
pos =	iff(close[1] < nz(xATRTrailingStop[1], 0) and close > nz(xATRTrailingStop[1], 0), 1,
	    iff(close[1] > nz(xATRTrailingStop[1], 0) and close < nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0))) 
color = pos == -1 ? color.red: pos == 1 ? color.green : color.blue 
plot(xATRTrailingStop, color=color, title="ATR Trailing Stop")

barbuy = close > xATRTrailingStop 
barsell = close < xATRTrailingStop 

strategy.entry("Long", strategy.long, when = barbuy) 
strategy.entry("Short", strategy.short, when = barsell) 

barcolor(barbuy? color.green:color.red)