Strategi berikut trend berbilang penunjuk digabungkan dengan saluran dinamik dan sistem perdagangan purata bergerak

EMA ATR
Tarikh penciptaan: 2024-12-12 15:58:57 Akhirnya diubah suai: 2024-12-12 15:58:57
Salin: 0 Bilangan klik: 376
1
fokus pada
1617
Pengikut

Strategi berikut trend berbilang penunjuk digabungkan dengan saluran dinamik dan sistem perdagangan purata bergerak

Gambaran keseluruhan

Strategi ini adalah sistem perdagangan multi-indikator yang menggabungkan saluran G, purata bergerak indeks, EMA, dan amplitudo turun naik sebenar, ATR. Ia mengenal pasti isyarat perdagangan melalui sokongan / rintangan dinamik dan pengesahan trend, dan menguruskan risiko menggunakan berhenti dan berhenti berasaskan ATR.

Prinsip Strategi

Logik utama strategi ini adalah berdasarkan beberapa komponen utama:

  1. G saluran mengira tahap sokongan dan rintangan dinamik, terus menyesuaikan naik dan turun melalui formula matematik
  2. EMA digunakan untuk mengenal pasti arah trend keseluruhan, harga dan kedudukan relatif EMA menentukan arah perdagangan
  3. Isyarat masuk berdasarkan penembusan saluran G dan pengesahan kedudukan EMA
  4. Tetapkan stop loss dan stop loss dengan ATR ganda, stop loss 2 kali ATR, dan stop loss 4 kali ATR
  5. Mengelakkan pengulangan berturut-turut melalui pengesanan status

Kelebihan Strategik

  1. Mekanisme pengesahan isyarat bertingkat meningkatkan kebolehpercayaan transaksi
  2. Had laluan yang disesuaikan secara dinamik untuk menyesuaikan diri dengan keadaan pasaran yang berbeza
  3. Pengurusan risiko berdasarkan kadar turun naik adalah lebih fleksibel
  4. Mengelakkan isyarat berulang mengurangkan risiko perdagangan berlebihan
  5. Tanda jual beli yang jelas untuk analisis dan pengesanan

Risiko Strategik

  1. Mungkin terlalu banyak isyarat palsu di pasaran Forex
  2. EMA sebagai penunjuk ketinggalan yang boleh menyebabkan kelewatan masa masuk
  3. Penutupan ATR dengan kelipatan tetap mungkin tidak fleksibel dalam tempoh turun naik yang tinggi
  4. Memperolehi data sejarah yang lebih panjang untuk mengira pelbagai petunjuk
  5. Pengoptimuman parameter boleh menyebabkan pemasangan berlebihan

Arah pengoptimuman strategi

  1. Memperkenalkan isyarat pengesahan lalu lintas untuk meningkatkan kebolehpercayaan penembusan
  2. Mengubah ATR secara dinamik untuk menyesuaikan diri dengan keadaan pasaran yang berbeza
  3. Menambah penapis persekitaran pasaran untuk mengelakkan dagangan di bawah keadaan yang tidak baik
  4. Logik penapisan isyarat yang dioptimumkan untuk mengurangkan isyarat palsu
  5. Pertimbangkan untuk menyertai sistem pengurusan kedudukan yang dinamik

ringkaskan

Strategi ini membina sistem perdagangan yang lengkap dengan menggabungkan beberapa petunjuk teknikal yang matang. Kelebihan sistem adalah mekanisme pengesahan isyarat bertingkat dan pengurusan risiko berdasarkan kadar turun naik, tetapi masih perlu dioptimumkan mengikut ciri-ciri pasaran tertentu dalam aplikasi sebenar.

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