Strategi mengikuti tren multi-indikator dikombinasikan dengan saluran dinamis dan sistem perdagangan rata-rata bergerak

EMA ATR
Tanggal Pembuatan: 2024-12-12 15:58:57 Akhirnya memodifikasi: 2024-12-12 15:58:57
menyalin: 0 Jumlah klik: 376
1
fokus pada
1617
Pengikut

Strategi mengikuti tren multi-indikator dikombinasikan dengan saluran dinamis dan sistem perdagangan rata-rata bergerak

Ringkasan

Strategi ini adalah sistem perdagangan multi-indikator yang menggabungkan G-Channel, EMA, dan amplitudo fluktuasi nyata ATR. Ini mengidentifikasi sinyal perdagangan melalui dukungan / resistensi dinamis dan konfirmasi tren, dan mengelola risiko dengan menggunakan stop loss dan stop loss berbasis ATR.

Prinsip Strategi

Logika inti dari strategi ini didasarkan pada beberapa komponen utama:

  1. G channel menghitung level dukungan dan resistensi dinamis, terus menyesuaikan naik dan turun melalui rumus matematika
  2. EMA digunakan untuk mengkonfirmasi arah tren secara keseluruhan, posisi harga terhadap EMA menentukan arah perdagangan
  3. Sinyal masuk berdasarkan terobosan saluran G dan konfirmasi posisi EMA
  4. Atur stop loss dan stop loss dengan ATR, stop loss 2x ATR, stop loss 4x ATR
  5. Menghindari sinyal berulang berturut-turut melalui pelacakan status

Keunggulan Strategis

  1. Mekanisme konfirmasi sinyal bertingkat meningkatkan keandalan transaksi
  2. Perbatasan saluran yang disesuaikan secara dinamis untuk menyesuaikan dengan kondisi pasar yang berbeda
  3. Manajemen risiko berbasis volatilitas lebih adaptif
  4. Mencegah sinyal berulang mengurangi risiko overtrading
  5. Tanda jual beli yang jelas dan visual untuk analisis dan pengamatan

Risiko Strategis

  1. Di pasar Forex, mungkin ada terlalu banyak sinyal palsu.
  2. EMA sebagai indikator keterlambatan dapat menyebabkan penundaan waktu masuk
  3. Stop loss ATR dengan kelipatan tetap mungkin tidak cukup fleksibel pada periode fluktuasi tinggi
  4. Data historis yang lebih panjang diperlukan untuk menghitung berbagai indikator
  5. Optimasi parameter dapat menyebabkan overfitting

Arah optimasi strategi

  1. Masukkan sinyal konfirmasi lalu lintas untuk meningkatkan keandalan penembusan
  2. Beradaptasi secara dinamis dengan ATR untuk beradaptasi dengan kondisi pasar yang berbeda
  3. Menambahkan filter lingkungan pasar untuk menghindari perdagangan di bawah kondisi yang tidak menguntungkan
  4. Optimalkan Logika Filter Sinyal untuk Mengurangi Sinyal Palsu
  5. Pertimbangkan untuk bergabung dengan sistem manajemen posisi yang dinamis

Meringkaskan

Strategi ini membangun sistem perdagangan yang lengkap dengan menggabungkan beberapa indikator teknis yang sudah mapan. Keunggulan sistem ini adalah mekanisme pengesahan sinyal bertingkat dan manajemen risiko berbasis volatilitas, tetapi masih perlu dioptimalkan sesuai dengan karakteristik pasar tertentu dalam aplikasi nyata.

Kode Sumber Strategi
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-10 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("G-Channel with EMA Strategy and ATR SL/TP", shorttitle="G-EMA-ATR", overlay=true)

// Input parameters
length = input.int(100, title="G-Channel Length")
src = input.source(close, title="Source")
ema_length = input.int(50, title="EMA Length")  // EMA length
atr_length = input.int(14, title="ATR Length")  // ATR length

// G-Channel calculation
var float a = na
var float b = na
a := math.max(src, nz(a[1])) - nz(a[1] - b[1]) / length
b := math.min(src, nz(b[1])) + nz(a[1] - b[1]) / length
avg = (a + b) / 2

// G-Channel cross conditions
crossup = b[1] < close[1] and b > close
crossdn = a[1] < close[1] and a > close
bullish = ta.barssince(crossdn) <= ta.barssince(crossup)
c = bullish ? color.lime : color.red

// EMA calculation
ema_value = ta.ema(src, ema_length)

// ATR calculation
atr_value = ta.atr(atr_length)

// Plot G-Channel average and Close price
p1 = plot(avg, "G-Channel Average", color=c, linewidth=1, transp=90)
p2 = plot(close, "Close Price", color=c, linewidth=1, transp=100)
fill(p1, p2, color=c, transp=90)

// Plot EMA
plot(ema_value, color=color.blue, linewidth=2, title="EMA")

// Buy and Sell conditions
buy_condition = bullish and close < ema_value
sell_condition = not bullish and close > ema_value

// Track the last signal state
var bool last_was_buy = false
var bool last_was_sell = false

// ATR-based SL and TP calculations
long_sl = close - 2 * atr_value  // 2 ATR below the entry for SL
long_tp = close + 4 * atr_value  // 4 ATR above the entry for TP
short_sl = close + 2 * atr_value // 2 ATR above the entry for SL (short)
short_tp = close - 4 * atr_value // 4 ATR below the entry for TP (short)

// Generate Buy signal only if the last signal was not Buy
if (buy_condition and not last_was_buy)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Exit Buy", from_entry="Buy", stop=long_sl, limit=long_tp)
    last_was_buy := true
    last_was_sell := false

// Generate Sell signal only if the last signal was not Sell
if (sell_condition and not last_was_sell)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Exit Sell", from_entry="Sell", stop=short_sl, limit=short_tp)
    last_was_sell := true
    last_was_buy := false

// Plot shapes for Buy and Sell signals
plotshape(series=buy_condition and not last_was_buy, location=location.belowbar, style=shape.labelup, color=color.lime, size=size.small, text="Buy", textcolor=color.white)
plotshape(series=sell_condition and not last_was_sell, location=location.abovebar, style=shape.labeldown, color=color.red, size=size.small, text="Sell", textcolor=color.white)