Dual ATR Trailing Stop Strategy

Penulis:ChaoZhang, Tanggal: 2024-01-31 17:10:32
Tag:

img

Gambaran umum

Strategi Trailing Stop Dual ATR adalah strategi perdagangan jangka pendek yang didasarkan pada indikator Average True Range (ATR). Strategi ini menetapkan dua garis stop loss, garis ATR cepat dan garis ATR lambat, pada saat yang sama, dan menentukan entri dan keluar berdasarkan persilangan kedua garis. Strategi ini sederhana, responsif, dan cocok untuk pasar volatilitas tinggi.

Prinsip Strategi

Inti dari strategi ini adalah menggunakan dua garis stop loss ATR. Yang satu adalah garis ATR cepat dengan periode pendek dan pengganda kecil untuk reaksi cepat. Yang lain adalah garis ATR lambat dengan periode yang lebih lama dan pengganda yang lebih besar untuk penyaringan. Ketika garis ATR cepat melintasi di atas garis ATR lambat, itu menghasilkan sinyal beli. Ketika garis ATR cepat melintasi di bawah garis ATR lambat, itu menghasilkan sinyal jual. Jadi strategi menggunakan persilangan dua garis ATR untuk menentukan masuk dan keluar, yang dapat secara efektif mengendalikan stop loss.

Logika spesifiknya adalah: hitung garis ATR cepat dan garis ATR lambat. Ketika harga di atas garis lambat, gunakan garis cepat untuk melacak stop loss. Jika tidak, gunakan garis lambat untuk melacak stop loss. Warna Kline mewakili garis stop loss saat ini. Hijau dan biru berarti menggunakan garis cepat. Merah dan kuning berarti menggunakan garis lambat. Keluar ketika harga pasar menyentuh garis stop loss.

Analisis Keuntungan

Keuntungan dari strategi ini adalah:

  1. Logika yang sederhana dan jelas, mudah dipahami dan diterapkan.
  2. Tanggapan cepat terhadap perubahan pasar, cocok untuk pasar volatilitas tinggi.
  3. Kontrol stop loss ATR ganda berisiko efektif.
  4. Indikator ATR adalah parameter untuk menyesuaikan rentang stop loss.
  5. Warna visual Kline menunjukkan situasi stop loss dengan jelas.

Analisis Risiko

Ada juga beberapa risiko:

  1. Cenderung untuk over-dagang.
  2. ATR memiliki kelengkapan kurva yang buruk, dapat memperkuat kerugian.
  3. Tidak dapat secara efektif menyaring sisi dan tren pasar.

Kita dapat mengurangi risiko dengan mengoptimalkan periode ATR, menyesuaikan pengganda ATR, menggabungkan indikator lain untuk penyaringan dll.

Arah Optimalisasi

Arah optimasi adalah:

  1. Optimalkan parameter ATR untuk jangkauan stop loss yang lebih baik.
  2. Tambahkan indikator filter untuk menghindari perdagangan yang tidak valid, seperti MA.
  3. Tambahkan kondisi terbuka untuk menghindari kesalahan, misalnya, tambahkan indikator volume.
  4. Tambahkan exit untuk periode holding untuk menghindari over-trading.

Kesimpulan

Strategi Dual ATR Trailing Stop mudah dipahami dan diimplementasikan, terutama cocok untuk skenario volatilitas tinggi, dan dapat secara efektif mengendalikan risiko.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
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/
// © ceyhun

//@version=4
strategy("ATR Trailing Stop Strategy by ceyhun", overlay=true)

/////////notes////////////////////////////////////////
// This is based on the ATR trailing stop indicator //
// width addition of two levels of stops and        //
// different interpretation.                        //
// This is a fast-reacting system and is better     //
// suited for higher volatility markets             //
//////////////////////////////////////////////////////

SC = input(close, "Source", input.source)

// Fast Trail //
AP1 = input(5, "Fast ATR period", input.integer)  // ATR Period
AF1 = input(0.5, "Fast ATR multiplier", input.float)  // ATR Factor
SL1 = AF1 * atr(AP1)  // Stop Loss
Trail1 = 0.0
Trail1 := iff(SC > nz(Trail1[1], 0) and SC[1] > nz(Trail1[1], 0), max(nz(Trail1[1], 0), SC - SL1), iff(SC < nz(Trail1[1], 0) and SC[1] < nz(Trail1[1], 0), min(nz(Trail1[1], 0), SC + SL1), iff(SC > nz(Trail1[1], 0), SC - SL1, SC + SL1)))

// Slow Trail //
AP2 = input(10, "Slow ATR perod", input.integer)  // ATR Period
AF2 = input(2, "Slow ATR multiplier", input.float)  // ATR Factor
SL2 = AF2 * atr(AP2)  // Stop Loss
Trail2 = 0.0
Trail2 := iff(SC > nz(Trail2[1], 0) and SC[1] > nz(Trail2[1], 0), max(nz(Trail2[1], 0), SC - SL2), iff(SC < nz(Trail2[1], 0) and SC[1] < nz(Trail2[1], 0), min(nz(Trail2[1], 0), SC + SL2), iff(SC > nz(Trail2[1], 0), SC - SL2, SC + SL2)))

// Bar color for trade signal //
Green = Trail1 > Trail2 and close > Trail2 and low > Trail2
Blue = Trail1 > Trail2 and close > Trail2 and low < Trail2
Red = Trail2 > Trail1 and close < Trail2 and high < Trail2
Yellow = Trail2 > Trail1 and close < Trail2 and high > Trail2

// Signals //
Bull = barssince(Green) < barssince(Red)
Bear = barssince(Red) < barssince(Green)

Buy = crossover(Trail1, Trail2)
Sell = crossunder(Trail1, Trail2)

TS1 = plot(Trail1, "Fast Trail", style=plot.style_line,color=Trail1 > Trail2 ? color.blue : color.yellow, linewidth=2)
TS2 = plot(Trail2, "Slow Trail", style=plot.style_line,color=Trail1 > Trail2 ? color.green : color.red, linewidth=2)
fill(TS1, TS2, Bull ? color.green : color.red, transp=90)

plotcolor = input(true, "Paint color on chart", input.bool)

bcl = iff(plotcolor == 1, Blue ? color.blue : Green ? color.lime : Yellow ? color.yellow : Red ? color.red : color.white, na)
barcolor(bcl)

if Buy
    strategy.entry("Buy", strategy.long, comment="Buy")
    
if Sell
    strategy.entry("Sell", strategy.short, comment="Sell")



Lebih banyak