G Trend EMA ATR Strategi Perdagangan Pintar

EMA ATR
Tarikh penciptaan: 2024-06-14 15:35:15 Akhirnya diubah suai: 2024-06-14 15:35:15
Salin: 8 Bilangan klik: 713
1
fokus pada
1617
Pengikut

G Trend EMA ATR Strategi Perdagangan Pintar

Gambaran keseluruhan

Strategi ini menggunakan indikator G-channel untuk mengenal pasti arah trend pasaran, sambil menggabungkan indikator EMA dan ATR untuk mengoptimumkan titik masuk dan keluar. Gagasan utama strategi ini adalah: apabila harga menembusi saluran G dan melakukan lebih banyak di bawah EMA, menembusi saluran G dan kosong di atas EMA.

Prinsip Strategi

  1. Hitung saluran G atas dan bawah: Hitung saluran G atas dan bawah menggunakan harga penutupan semasa dan harga terendah sebelum harga tertinggi.
  2. Menghakimi arah trend: Menghakimi trend plurality dengan memerhatikan hubungan antara harga dan aliran naik dan turun saluran G.
  3. Hitung EMA: Hitung nilai EMA untuk tempoh yang ditetapkan.
  4. Hitung ATR: Hitung nilai ATR untuk tempoh yang ditetapkan.
  5. Untuk menilai keadaan jual beli: apabila harga menembusi saluran G dan berada di bawah EMA, ia akan mencetuskan kenaikan harga, dan apabila ia menembusi saluran G dan berada di atas EMA, ia akan mencetuskan penurunan harga.
  6. Tetapkan stop loss: stop loss adalah harga pembukaan kedudukan - 2 kali ATR, stop loss adalah harga pembukaan kedudukan + 4 kali ATR ((banyak kepala); stop loss adalah harga pembukaan kedudukan + 2 kali ATR, stop loss adalah harga pembukaan kedudukan - 4 kali ATR ((kepala kosong)
  7. Trigger strategi: melaksanakan operasi bukaan kedudukan yang sesuai apabila syarat membeli dan menjual dipenuhi, dan menetapkan Hentikan Kerugian yang sesuai.

Kelebihan Strategik

  1. Pengesanan Trend: Strategi menggunakan saluran G untuk menangkap trend pasaran dengan berkesan, sesuai dengan keadaan trend.
  2. Hentian Hentian Dinamis: Menggunakan ATR untuk menyesuaikan Hentian Hentian Dinamis, yang dapat menyesuaikan diri dengan lebih baik dengan turun naik pasaran.
  3. Kawalan risiko: Stop loss ditetapkan pada 2 kali ATR, mengawal risiko setiap dagangan.
  4. Sederhana dan mudah digunakan: Strategi logiknya jelas dan sesuai untuk digunakan oleh kebanyakan pelabur.

Risiko Strategik

  1. Keadaan yang bergolak: Dalam keadaan yang bergolak, isyarat dagangan yang kerap boleh menyebabkan kerugian meningkat.
  2. Pengoptimuman parameter: Perbezaan jenis dan kitaran mungkin memerlukan parameter yang berbeza, dan penggunaan secara buta boleh membawa risiko.
  3. Kes Swan Hitam: Dalam keadaan yang melampau, harga turun naik dengan ketara dan penutupan mungkin tidak dapat dilaksanakan dengan berkesan.

Arah pengoptimuman strategi

  1. Penapisan Trend: Tambah syarat penapisan trend seperti MA silang, DMI dan lain-lain, mengurangkan perdagangan dalam keadaan goyah.
  2. Optimasi parameter: Optimasi parameter untuk pelbagai jenis dan kitaran untuk mencari kombinasi parameter terbaik.
  3. Pengurusan kedudukan: menyesuaikan kedudukan mengikut pergerakan turun naik pasaran, meningkatkan penggunaan dana.
  4. Strategi gabungan: menggabungkan strategi ini dengan strategi lain yang berkesan untuk meningkatkan kestabilan.

ringkaskan

Strategi ini membina sistem perdagangan yang mudah dan berkesan untuk menjejaki trend melalui G channel, EMA, ATR dan lain-lain. Ia boleh mencapai kesan yang baik dalam keadaan trend, tetapi biasanya berfungsi dalam keadaan goyah. Kemudian, strategi ini dapat dioptimumkan dari segi penapisan trend, pengoptimuman parameter, pengurusan kedudukan, strategi gabungan, dan sebagainya untuk meningkatkan kehandalan dan keuntungan strategi.

Kod sumber strategi
/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// Full credit to AlexGrover: https://www.tradingview.com/script/fIvlS64B-G-Channels-Efficient-Calculation-Of-Upper-Lower-Extremities/
strategy ("G-Channel Trend Detection with EMA Strategy and ATR", shorttitle="G-Trend EMA ATR Strategy", overlay=true)

// Inputs for G-Channel
length = input(100, title="G-Channel Length")
src = input(close, title="Source")

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

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

// Plot G-Channel Average
p1 = plot(avg, "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)

// Show Buy/Sell Labels
showcross = input(true, title="Show Buy/Sell Labels")
plotshape(showcross and not bullish and bullish[1] ? avg : na, location=location.absolute, style=shape.labeldown, color=color.red, size=size.tiny, text="Sell", textcolor=color.white, transp=0, offset=-1)
plotshape(showcross and bullish and not bullish[1] ? avg : na, location=location.absolute, style=shape.labelup, color=color.lime, size=size.tiny, text="Buy", textcolor=color.white, transp=0, offset=-1)

// Inputs for EMA
emaLength = input(50, title="EMA Length")
emaValue = ema(close, emaLength)

// Plot EMA
plot(emaValue, title="EMA", color=color.blue, linewidth=1)

// ATR Calculation
atrLength = input(14, title="ATR Length")
atrValue = atr(atrLength)

// Strategy Conditions
buyCondition = bullish and close < emaValue
sellCondition = not bullish and close > emaValue

// Stop Loss and Take Profit Levels
longStopLoss = close - 2 * atrValue
longTakeProfit = close + 4 * atrValue
shortStopLoss = close + 2 * atrValue
shortTakeProfit = close - 4 * atrValue

// Execute Strategy with ATR-based stop loss and take profit
if (buyCondition)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Sell", "Buy", stop=longStopLoss, limit=longTakeProfit)

if (sellCondition)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Cover", "Sell", stop=shortStopLoss, limit=shortTakeProfit)

// Plot Buy/Sell Signals on the chart
plotshape(series=buyCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", offset=-1)
plotshape(series=sellCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", offset=-1)