Strategi Pelacakan Garis


Tanggal Pembuatan: 2023-12-01 18:31:39 Akhirnya memodifikasi: 2023-12-01 18:31:39
menyalin: 1 Jumlah klik: 609
1
fokus pada
1621
Pengikut

Strategi Pelacakan Garis

Ringkasan

Strategi jalur pelacakan adalah strategi pelacakan tren yang didasarkan pada indikator Brin dan rentang rata-rata fluktuasi nyata (ATR). Strategi ini secara dinamis menyesuaikan garis penilaian tren, dengan penyesuaian ke atas saat menerobos jalur Brin, dan ke bawah saat menerobos jalur Brin, sehingga penilaian dan pelacakan tren dapat dilakukan.

Prinsip Strategi

Strategi ini pertama-tama menghitung tren naik dan turun di Bollinger Bands, dan rata-rata rentang fluktuasi yang sebenarnya. Kemudian menilai apakah harga akan menembus tren naik atau turun di Bollinger Bands.

Ketika harga menembus rel, jika ATR filter diaktifkan, garis penilaian tren akan disetel ke harga minimum dikurangi ATR; jika tidak ada ATR filter, langsung disetel ke harga minimum.

Ketika harga terjatuh, jika ATR filter diaktifkan, garis penilaian tren akan disetel ke harga tertinggi ditambah ATR; jika tidak diaktifkan ATR filter, langsung disetel ke harga tertinggi.

Dengan cara ini, garis penilaian tren dapat secara dinamis disesuaikan dengan harga yang menerobos Brin dan turun, sehingga penilaian tren dapat dilakukan.

Ketika garis penghakiman tren saat ini lebih tinggi dari garis penghakiman tren sebelumnya, berarti saat ini sedang dalam tren naik; Ketika garis penghakiman tren saat ini lebih rendah dari garis penghakiman tren sebelumnya, berarti saat ini sedang dalam tren turun.

Strategi ini dapat dilakukan dengan melakukan beberapa operasi shorting, tergantung pada tren.

Analisis Keunggulan

  • Pengertian Trend Line Adaptasi yang Fleksibel untuk Menangkap Tren Harga
  • Kombinasi indikator BRI dengan BRI, dapat mengindikasikan perubahan tren pada saat harga menembus
  • Pengenalan parameter ATR, yang dapat memfilter beberapa sinyal penembusan palsu

Analisis risiko

  • Pilihan yang salah dari parameter Brin-band dapat menyebabkan seringnya penembusan palsu
  • Terlalu banyak ATR dapat menyebabkan kehilangan peluang untuk membalikkan tren
  • Pertimbangan Stop Loss untuk Mencegah Kerugian dari Keadaan Ekstrim

Beberapa risiko dapat dihindari dengan penyesuaian parameter, penghentian, atau penyaringan dalam kombinasi dengan indikator lain untuk meningkatkan efektivitas penembusan.

Arah optimasi

  • Optimalkan parameter Brinbelt dan ATR untuk mencari konfigurasi optimal
  • Menambahkan penilaian indikator lainnya untuk memfilter terobosan palsu
  • Periode Brinks dan ATR dipilih untuk varietas tertentu

Meringkaskan

Strategi jalur pelacakan bertujuan untuk menangkap tren harga dalam situasi yang bergejolak. Ini adalah strategi pelacakan tren yang efektif. Dengan penyesuaian dan pengoptimalan parameter, keuntungan yang baik dapat diperoleh.

Kode Sumber Strategi
/*backtest
start: 2023-11-23 00:00:00
end: 2023-11-30 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// © Dreadblitz
//@version=4
//
// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ //

strategy(title = " Strategy Follow Line Indicator ",
         shorttitle = "S-FLI",
         overlay = true,
         precision = 8,
         calc_on_order_fills = true,
         calc_on_every_tick = true,
         backtest_fill_limits_assumption = 0,
         default_qty_type = strategy.fixed,
         default_qty_value = 2,
         initial_capital = 10000,
         pyramiding=1,
         currency = currency.USD,
         linktoseries = true)

//
// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ //

backTestSectionFrom = input(title = "═══════════════ From ═══════════════", defval = true, type = input.bool)

FromMonth         = input(defval = 1, title = "Month", minval = 1)
FromDay           = input(defval = 1, title = "Day", minval = 1)
FromYear          = input(defval = 2014, title = "Year", minval = 2000)

backTestSectionTo = input(title = "════════════════ To ════════════════", defval = true, type = input.bool)
ToMonth           = input(defval = 31, title = "Month", minval = 1)
ToDay             = input(defval = 12, title = "Day", minval = 1)
ToYear            = input(defval = 9999, title = "Year", minval = 2000)

Config            = input(title = "══════════════ Config ══════════════", defval = true, type = input.bool)
BBperiod          = input(defval = 21,     title = "BB Period",    type = input.integer, minval = 1)
BBdeviations      = input(defval = 1.00,     title = "BB Deviations",    type = input.float, minval = 0.1, step=0.05)
UseATRfilter      = input(defval = true, title = "ATR Filter",  type = input.bool)
ATRperiod         = input(defval = 5,     title = "ATR Period",    type = input.integer, minval = 1)
hl                = input(defval = false, title = "Hide Labels",  type = input.bool)


backTestPeriod() => true

//
//
// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ //

BBUpper=sma (close,BBperiod)+stdev(close, BBperiod)*BBdeviations
BBLower=sma (close,BBperiod)-stdev(close, BBperiod)*BBdeviations
//
TrendLine = 0.0
iTrend = 0.0
buy = 0.0
sell = 0.0
//
BBSignal = close>BBUpper? 1 : close<BBLower? -1 : 0
// 
if BBSignal == 1 and UseATRfilter == 1
    TrendLine:=low-atr(ATRperiod)
    if TrendLine<TrendLine[1] 
        TrendLine:=TrendLine[1]
if BBSignal == -1 and UseATRfilter == 1
    TrendLine:=high+atr(ATRperiod)
    if TrendLine>TrendLine[1]
        TrendLine:=TrendLine[1]
if BBSignal == 0 and UseATRfilter == 1
    TrendLine:=TrendLine[1]
//
if BBSignal == 1 and UseATRfilter == 0
    TrendLine:=low
    if TrendLine<TrendLine[1] 
        TrendLine:=TrendLine[1]
if BBSignal == -1 and UseATRfilter == 0
    TrendLine:=high
    if TrendLine>TrendLine[1]
        TrendLine:=TrendLine[1]
if BBSignal == 0 and UseATRfilter == 0
    TrendLine:=TrendLine[1]
//
iTrend:=iTrend[1]
if TrendLine>TrendLine[1] 
    iTrend:=1
if TrendLine<TrendLine[1] 
    iTrend:=-1
//
buy:=iTrend[1]==-1 and iTrend==1 ? 1 : na
sell:=iTrend[1]==1 and iTrend==-1? 1 : na
//
plot(TrendLine, color=iTrend > 0?color.blue:color.red ,style=plot.style_line,linewidth=2,transp=0,title="Trend Line") 
plotshape(buy == 1 and hl == false? TrendLine-atr(8) :na, text='💣', style= shape.labelup, location=location.absolute, color=color.blue, textcolor=color.white, offset=0, transp=0,size=size.auto)
plotshape(sell == 1 and hl == false ?TrendLine+atr(8):na, text='🔨', style=shape.labeldown, location=location.absolute, color=color.red, textcolor=color.white, offset=0, transp=0,size=size.auto)

// Strategy Entry
if (backTestPeriod())
    strategy.entry("long", true, 1, when = buy == 1)
    strategy.entry("short", false, 1, when = sell == 1)