Strategi henti kerugian mengekor ATR berganda


Tarikh penciptaan: 2024-01-31 17:10:32 Akhirnya diubah suai: 2024-01-31 17:10:32
Salin: 3 Bilangan klik: 921
1
fokus pada
1617
Pengikut

Strategi henti kerugian mengekor ATR berganda

Gambaran keseluruhan

Strategi penutupan ATR berturut-turut adalah strategi perdagangan garis pendek berdasarkan purata gelombang sebenar (ATR). Strategi ini menetapkan dua garis penutupan ATR cepat dan ATR perlahan pada masa yang sama, menilai masuk dan keluar berdasarkan persilangan kedua-dua garis penutupan. Strategi ini mudah difahami, bertindak balas dengan cepat, sesuai untuk pasaran yang bergelombang tinggi.

Prinsip Strategi

Strategi ini menggunakan indikator ATR untuk menetapkan dua garis hentikan. Satu adalah garis ATR cepat, ATR kitaran pendek, kali kecil, dan bertindak balas dengan cepat; yang lain adalah garis ATR perlahan, ATR kitaran panjang, kali besar, berfungsi sebagai penapis.

Logik operasi khusus adalah: mengira garis ATR cepat dan garis ATR perlahan; jika harga garis cepat lebih tinggi daripada garis perlahan, maka berhenti dengan garis cepat, jika tidak, berhenti dengan garis perlahan. Warna Kline menunjukkan garis berhenti yang sedang digunakan, hijau dan biru menunjukkan berhenti dengan garis cepat, merah dan kuning menunjukkan berhenti dengan garis perlahan.

Analisis kelebihan

Strategi penutupan kerugian susulan ATR berganda mempunyai kelebihan berikut:

  1. Logik operasi mudah dan jelas, mudah difahami dan dilaksanakan.
  2. Menjawab dengan cepat kepada perubahan pasaran, sesuai untuk pasaran yang tidak menentu.
  3. Dual ATR Hentikan Risiko Kawalan Kerosakan, Hentikan Kerosakan Berkesan.
  4. ATR parameter, boleh menyesuaikan stop loss.
  5. Warna Kline yang dipaparkan jelas menunjukkan kemusnahan.

Analisis risiko

Strategi ini mempunyai beberapa risiko:

  1. Ia juga boleh menyebabkan kemerosotan yang teruk dalam perbelanjaan.
  2. Indeks ATR kurang sesuai dengan keluk, kemungkinan kehilangan pembesaran.
  3. Tidak dapat menyaring secara berkesan antara dua peringkat pasaran.

Risiko ini dapat dikurangkan dengan mengoptimumkan kitaran ATR, menyesuaikan penggandaan ATR, dan memfilterkan indikator lain.

Arah pengoptimuman

Kaedah untuk mengoptimumkan lagi strategi penutupan kerugian ATR berganda termasuk:

  1. Mengoptimumkan parameter ATR, menyesuaikan stop loss.
  2. Menambah penapis untuk mengelakkan perdagangan tidak sah. Sebagai contoh, tambah penapis rata-rata untuk menilai trend.
  3. Tambah syarat untuk membuka kedudukan untuk mengelakkan perdagangan yang salah.
  4. Meningkatkan tempoh pegangan dan keluar untuk mengelakkan terlalu kerap berdagang.

ringkaskan

Strategi berhenti kerugian ATR kedua secara keseluruhan mudah difahami dan dilaksanakan, terutama sesuai untuk senario yang berfluktuasi tinggi, untuk mengawal risiko dengan berkesan. Ruang pengoptimuman juga lebih besar, dan dapat ditingkatkan melalui penyesuaian parameter, penambahan penapis dan lain-lain.

Kod sumber strategi
/*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")