Sumber dimuat naik... memuat...

Trend Multi-Indikator Mengikuti Strategi dengan Saluran Dinamik dan Sistem Dagangan Purata Bergerak

Penulis:ChaoZhang, Tarikh: 2024-12-12 15:58:57
Tag:EMAATR

 Multi-Indicator Trend Following Strategy with Dynamic Channel and Moving Average Trading System

Ringkasan

Strategi ini adalah sistem perdagangan multi-penunjuk yang menggabungkan G-Channel, Exponential Moving Average (EMA), dan Average True Range (ATR). Ia mengenal pasti isyarat perdagangan melalui tahap sokongan / rintangan dinamik dan pengesahan trend, sambil menguruskan risiko menggunakan tahap stop-loss dan mengambil keuntungan berasaskan ATR. Sistem ini menekankan kebolehpercayaan dan kawalan risiko, sesuai untuk peniaga yang mencari pendekatan perdagangan yang kukuh.

Prinsip Strategi

Logik teras strategi ini berdasarkan komponen utama berikut: 1. G-Channel mengira tahap sokongan dan rintangan dinamik, terus menyesuaikan jalur atas dan bawah 2. EMA mengesahkan arah trend keseluruhan, dengan arah perdagangan ditentukan oleh kedudukan harga berbanding EMA 3. Isyarat kemasukan adalah berdasarkan G-Channel breakouts dan pengesahan kedudukan EMA 4. paras stop-loss dan mengambil keuntungan ditetapkan menggunakan kelipatan ATR, dengan 2x ATR untuk stop-loss dan 4x ATR untuk mengambil keuntungan 5. Pengesanan keadaan menghalang isyarat berulang berturut-turut

Kelebihan Strategi

  1. Mekanisme pengesahan isyarat pelbagai peringkat meningkatkan kebolehpercayaan perdagangan
  2. Perbatasan saluran yang disesuaikan secara dinamik menyesuaikan diri dengan keadaan pasaran yang berbeza
  3. Pengurusan risiko berasaskan turun naik memberikan fleksibiliti yang lebih baik
  4. Mengelakkan isyarat berganda mengurangkan risiko overtrading
  5. Tanda beli/jual visual yang jelas memudahkan analisis dan pengujian belakang

Risiko Strategi

  1. Boleh menghasilkan isyarat pecah palsu yang berlebihan di pasaran yang berbeza
  2. EMA sebagai penunjuk yang ketinggalan boleh membawa kepada penangguhan masa kemasukan
  3. Pengganda ATR tetap untuk hentian mungkin kurang fleksibel semasa tempoh turun naik yang tinggi
  4. Memerlukan data sejarah yang lebih lama untuk pengiraan penunjuk
  5. Pengoptimuman parameter boleh membawa kepada overfit

Arahan Pengoptimuman Strategi

  1. Masukkan pengesahan jumlah untuk meningkatkan kebolehpercayaan pecah
  2. Melaksanakan pengganda ATR dinamik untuk menyesuaikan diri dengan keadaan turun naik pasaran yang berbeza
  3. Tambah penapis persekitaran pasaran untuk mengelakkan perdagangan semasa keadaan yang tidak baik
  4. Mengoptimumkan logik penapisan isyarat untuk mengurangkan isyarat palsu
  5. Pertimbangkan untuk menambah sistem saiz kedudukan dinamik

Ringkasan

Strategi ini membina sistem dagangan yang lengkap dengan menggabungkan beberapa penunjuk teknikal yang matang. Kekuatannya terletak pada mekanisme pengesahan isyarat pelbagai peringkat dan pengurusan risiko berasaskan turun naik, walaupun ia masih memerlukan pengoptimuman berdasarkan ciri pasaran tertentu dalam aplikasi praktikal. Melalui arah pengoptimuman yang dicadangkan, kestabilan dan daya adaptasi strategi dapat ditingkatkan lagi.


/*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)


Berkaitan

Lebih lanjut