Strategi mengikut aliran keluar tiga baris digabungkan dengan penapisan dinamik EMA dan sistem pengurusan risiko ATR

EMA ATR 3LS
Tarikh penciptaan: 2025-02-18 15:30:08 Akhirnya diubah suai: 2025-02-18 15:30:08
Salin: 1 Bilangan klik: 353
1
fokus pada
1617
Pengikut

Strategi mengikut aliran keluar tiga baris digabungkan dengan penapisan dinamik EMA dan sistem pengurusan risiko ATR

Gambaran keseluruhan

Strategi ini adalah sistem perdagangan yang mengesan trend berdasarkan corak tiga garis yang pecah dalam analisis teknikal grafik Jepun. Pengurusan risiko dinamik dilakukan dengan menggabungkan purata bergerak indeks (EMA) sebagai penapis trend dan penunjuk gelombang sebenar (ATR), meningkatkan kebolehpercayaan model tiga garis yang pecah tradisional.

Prinsip Strategi

Logik teras strategi ini adalah berdasarkan beberapa elemen utama: pertama, mengenal pasti tiga bentuk terobosan garis, iaitu tiga garis berturut-turut dengan warna yang sama diikuti oleh satu corong yang lebih besar. Kedua, menggunakan EMA sebagai penapis trend, pertimbangkan untuk membuat lebih banyak isyarat hanya apabila harga berada di atas EMA, dan pertimbangkan untuk membuat isyarat kosong di bawah EMA.

Kelebihan Strategik

  1. Gabungan pengesahan trend arah dan pengenalan bentuk pembalikan meningkatkan kebolehpercayaan isyarat perdagangan
  2. Menggunakan tetapan stop-loss yang dinamik yang dapat menyesuaikan diri dengan turun naik pasaran
  3. Logik strategi yang jelas, parameter yang boleh disesuaikan, mudah untuk dioptimumkan mengikut ciri-ciri pasaran yang berbeza
  4. Penapis EMA mengurangkan isyarat palsu dan meningkatkan kestabilan strategi
  5. Sistem pengurusan risiko yang lengkap, termasuk pengurusan dana dan mekanisme hentikan kerugian

Risiko Strategik

  1. Isyarat palsu yang boleh berlaku dalam pasaran yang bergolak, menyebabkan hentian berterusan
  2. EMA sebagai penunjuk ketinggalan mungkin tidak bertindak balas dalam masa yang mencukupi apabila terdapat perubahan mendadak
  3. Tetapan stop loss ATR dengan pengganda tetap mungkin tidak sesuai untuk semua keadaan pasaran
  4. Strategi bergantung pada arah trend yang jelas dan mungkin tidak berfungsi dengan baik semasa tidak ada trend
  5. Akurasi masa masuk dipengaruhi oleh pemilihan kitaran K

Arah pengoptimuman strategi

  1. Pengenalan tanda lalu lintas sebagai pengesahan tambahan untuk meningkatkan kebolehpercayaan isyarat
  2. Menyesuaikan parameter EMA mengikut dinamika kitaran pasaran yang berbeza untuk meningkatkan kebolehsesuaian
  3. Meningkatkan penapis kekuatan trend, seperti penunjuk ADX, mengurangkan isyarat palsu dalam pasaran goyah
  4. Mengoptimumkan stop loss multiplier, boleh dipertimbangkan untuk menyesuaikan secara dinamik mengikut kadar turun naik
  5. Menambah mekanisme untuk mengenal pasti keadaan pasaran, menggunakan parameter yang berbeza dalam keadaan pasaran yang berbeza

ringkaskan

Ini adalah sistem strategi yang menggabungkan teori klasik analisis teknikal dan falsafah perdagangan kuantitatif moden. Dengan menggabungkan bentuk terobosan tiga baris tradisional dengan pengesanan trend dan pengurusan risiko, ia membina sistem perdagangan yang lebih lengkap. Walaupun terdapat beberapa batasan, strategi yang lebih stabil dan adaptif dapat ditingkatkan dengan memberikan arah pengoptimuman.

Kod 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)