Strategi mengikuti tren breakout tiga garis dikombinasikan dengan penyaringan dinamis EMA dan sistem manajemen risiko ATR

EMA ATR 3LS
Tanggal Pembuatan: 2025-02-18 15:30:08 Akhirnya memodifikasi: 2025-02-18 15:30:08
menyalin: 1 Jumlah klik: 353
1
fokus pada
1617
Pengikut

Strategi mengikuti tren breakout tiga garis dikombinasikan dengan penyaringan dinamis EMA dan sistem manajemen risiko ATR

Ringkasan

Strategi ini adalah sistem perdagangan untuk melacak tren dari bentuk tiga garis terobosan dalam analisis teknis grafik Jepang. Menggunakan manajemen risiko dinamis dengan menggabungkan indeks moving average (EMA) sebagai filter tren dan indikator amplitudo riil (ATR), meningkatkan keandalan model tiga garis terobosan tradisional. Strategi ini tidak hanya dapat menangkap titik-titik perubahan tren pasar, tetapi juga dapat mengontrol risiko secara efektif dan cocok untuk perdagangan tren jangka menengah dan panjang.

Prinsip Strategi

Logika inti dari strategi ini didasarkan pada beberapa elemen kunci berikut: Pertama, identifikasi tiga garis bentuk terobosan, yaitu setelah tiga baris berturut-turut dengan warna yang sama muncul sebuah reverse engulfing yang lebih besar. Kedua, menggunakan EMA sebagai filter tren, hanya mempertimbangkan untuk melakukan sinyal lebih ketika harga berada di atas EMA dan mempertimbangkan untuk melakukan sinyal kosong ketika berada di bawah EMA.

Keunggulan Strategis

  1. Kombinasi dengan identifikasi tren arah dan identifikasi reversal mode, meningkatkan keandalan sinyal perdagangan
  2. Pengaturan Stop Loss yang dinamis, dapat disesuaikan dengan volatilitas pasar
  3. Logika strategi yang jelas, parameter yang dapat disesuaikan, mudah dioptimalkan sesuai dengan karakteristik pasar yang berbeda
  4. Meningkatkan stabilitas strategi dengan mengurangi sinyal palsu secara signifikan melalui filter EMA
  5. Sistem manajemen risiko yang lengkap, termasuk manajemen dana dan mekanisme penghentian kerugian

Risiko Strategis

  1. Sering terjadi sinyal palsu di pasar yang bergejolak, yang menyebabkan stop loss berkelanjutan
  2. EMA sebagai indikator yang tertinggal mungkin tidak bereaksi dalam waktu yang tepat saat terjadi pergeseran tajam
  3. Pengaturan stop loss ATR dengan kelipatan tetap mungkin tidak cocok untuk semua kondisi pasar
  4. Strategi bergantung pada arah tren yang jelas dan mungkin tidak bekerja dengan baik selama tidak ada tren
  5. Akurasi waktu masuk lebih dipengaruhi oleh pemilihan siklus K-line

Arah optimasi strategi

  1. Pengenalan indikator lalu lintas sebagai tambahan konfirmasi, meningkatkan keandalan sinyal
  2. Adaptasi parameter EMA untuk dinamika siklus pasar yang berbeda
  3. Meningkatkan filter intensitas tren, seperti indikator ADX, mengurangi sinyal palsu di pasar yang bergoyang
  4. Optimalkan stop loss multiplier, pertimbangkan untuk menyesuaikan secara dinamis dengan fluktuasi
  5. Menambahkan mekanisme identifikasi lingkungan pasar, dengan pengaturan parameter yang berbeda dalam kondisi pasar yang berbeda

Meringkaskan

Ini adalah sistem strategi yang menggabungkan teori klasik analisis teknis dan konsep perdagangan kuantitatif modern. Dengan menggabungkan bentuk tiga garis tradisional dengan pelacakan tren dan manajemen risiko, sistem perdagangan yang lebih lengkap dibangun. Meskipun ada beberapa keterbatasan, stabilitas dan adaptasi strategi dapat ditingkatkan lebih lanjut dengan memberikan arah optimasi.

Kode Sumber Strategi
/*backtest
start: 2025-01-18 00:00:00
end: 2025-02-17 00:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// Copyright ...
// Based on the TMA Overlay by Arty, converted to a simple strategy example.
// Pine Script v5

//@version=5
strategy(title='3 Line Strike [TTF] - Strategy with ATR and EMA Filter',
     shorttitle='3LS Strategy [TTF]',
     overlay=true,
     initial_capital=100000,
     default_qty_type=strategy.percent_of_equity,
     default_qty_value=100,
     pyramiding=0)

// -----------------------------------------------------------------------------
//                               INPUTS
// -----------------------------------------------------------------------------

// ATR and EMA Inputs
atrLength = input.int(title='ATR Length', defval=14, group='ATR & EMA')
emaLength = input.int(title='EMA Length', defval=200, group='ATR & EMA')

// ### 3 Line Strike
showBear3LS = input.bool(title='Show Bearish 3 Line Strike', defval=true, group='3 Line Strike',
     tooltip="Bearish 3 Line Strike (3LS-Bear) = 3 zelené sviečky, potom veľká červená sviečka (engulfing).")
showBull3LS = input.bool(title='Show Bullish 3 Line Strike', defval=true, group='3 Line Strike',
     tooltip="Bullish 3 Line Strike (3LS-Bull) = 3 červené sviečky, potom veľká zelená sviečka (engulfing).")

// -----------------------------------------------------------------------------
//                          CALCULATIONS
// -----------------------------------------------------------------------------

// Calculate ATR
atr = ta.atr(atrLength)

// Calculate EMA
ema = ta.ema(close, emaLength)

// Helper Functions
getCandleColorIndex(barIndex) =>
    int ret = na
    if (close[barIndex] > open[barIndex])
        ret := 1
    else if (close[barIndex] < open[barIndex])
        ret := -1
    else
        ret := 0
    ret

isEngulfing(checkBearish) =>
    sizePrevCandle = close[1] - open[1]
    sizeCurrentCandle = close - open
    isCurrentLargerThanPrevious = math.abs(sizeCurrentCandle) > math.abs(sizePrevCandle)

    if checkBearish
        isGreenToRed = (getCandleColorIndex(0) < 0) and (getCandleColorIndex(1) > 0)
        isCurrentLargerThanPrevious and isGreenToRed
    else
        isRedToGreen = (getCandleColorIndex(0) > 0) and (getCandleColorIndex(1) < 0)
        isCurrentLargerThanPrevious and isRedToGreen

isBearishEngulfing() => isEngulfing(true)
isBullishEngulfing() => isEngulfing(false)

is3LSBear() =>
    is3LineSetup = (getCandleColorIndex(1) > 0) and (getCandleColorIndex(2) > 0) and (getCandleColorIndex(3) > 0)
    is3LineSetup and isBearishEngulfing()

is3LSBull() =>
    is3LineSetup = (getCandleColorIndex(1) < 0) and (getCandleColorIndex(2) < 0) and (getCandleColorIndex(3) < 0)
    is3LineSetup and isBullishEngulfing()

// Signals
is3LSBearSig = is3LSBear() and close < ema
is3LSBullSig = is3LSBull() and close > ema

// Take Profit and Stop Loss
longTP = close + 2 * atr
longSL = close - 1 * atr
shortTP = close - 2 * atr
shortSL = close + 1 * atr

// -----------------------------------------------------------------------------
//                          STRATEGY ENTRY PRÍKAZY
// -----------------------------------------------------------------------------
if (showBull3LS and is3LSBullSig)
    strategy.entry("3LS_Bull", strategy.long, comment="3LS Bullish")
    strategy.exit("Exit Bull", from_entry="3LS_Bull", limit=longTP, stop=longSL)

if (showBear3LS and is3LSBearSig)
    strategy.entry("3LS_Bear", strategy.short, comment="3LS Bearish")
    strategy.exit("Exit Bear", from_entry="3LS_Bear", limit=shortTP, stop=shortSL)