Strategi Perdagangan Cerdas G Trend EMA ATR

EMA ATR
Tanggal Pembuatan: 2024-06-14 15:35:15 Akhirnya memodifikasi: 2024-06-14 15:35:15
menyalin: 8 Jumlah klik: 713
1
fokus pada
1617
Pengikut

Strategi Perdagangan Cerdas G Trend EMA ATR

Ringkasan

Strategi ini menggunakan indikator G-channel untuk mengidentifikasi arah tren pasar, dan menggabungkan indikator EMA dan ATR untuk mengoptimalkan titik masuk dan keluar. Ide utama strategi ini adalah: ketika harga menembus G-channel di atas dan melakukan lebih banyak di bawah EMA, menembus G-channel di bawah dan melakukan lebih banyak di atas EMA.

Prinsip Strategi

  1. Hitung naik turun saluran G: Hitung naik turun saluran G dengan menggunakan harga penutupan saat ini dengan harga terendah sebelumnya.
  2. Menentukan arah tren: menilai tren bullish dengan mengamati hubungan antara harga dan naik turunnya saluran G.
  3. Menghitung EMA: Menghitung nilai EMA untuk periode yang ditentukan.
  4. Menghitung ATR: Menghitung nilai ATR untuk periode yang ditentukan.
  5. Tentukan kondisi jual beli: Trigger over jika harga menembus saluran G dan berada di bawah EMA, dan short jika harga menembus saluran G dan berada di atas EMA.
  6. Stop loss setting: Stop loss adalah harga mulai posisi - 2 kali ATR, stop loss adalah harga mulai posisi + 4 kali ATR ((multihead); stop loss adalah harga mulai posisi + 2 kali ATR, stop loss adalah harga mulai posisi - 4 kali ATR ((head kosong)
  7. Trigger strategi: melakukan operasi buka posisi yang sesuai saat memenuhi kondisi jual beli, dan mengatur stop loss yang sesuai.

Keunggulan Strategis

  1. Pelacakan tren: Strategi untuk memanfaatkan saluran G untuk menangkap tren pasar secara efektif, sesuai dengan situasi tren.
  2. Stop Loss Dinamis: Menggunakan ATR untuk secara dinamis menyesuaikan stop loss agar lebih sesuai dengan fluktuasi pasar.
  3. Pengendalian risiko: Stop loss diatur menjadi 2x ATR, dengan risiko yang dikontrol ketat untuk setiap transaksi.
  4. Sederhana dan mudah digunakan: Strategi logis yang jelas dan cocok untuk digunakan oleh sebagian besar investor.

Risiko Strategis

  1. Kondisi bergoyang: Di pasar yang bergoyang, sinyal perdagangan yang sering dapat menyebabkan peningkatan kerugian.
  2. Optimasi parameter: Varietas dan siklus yang berbeda mungkin memerlukan parameter yang berbeda, dan penggunaan secara membabi buta dapat membawa risiko.
  3. Black Swan: Dalam situasi ekstrem, harga berfluktuasi secara dramatis dan stop loss mungkin tidak dapat dilaksanakan secara efektif.

Arah optimasi strategi

  1. Filter tren: Meningkatkan kondisi filter tren, seperti MA crossover, DMI, dan lain-lain, untuk mengurangi perdagangan di pasar yang bergolak.
  2. Optimasi parameter: Optimasi parameter untuk varietas dan siklus yang berbeda untuk menemukan kombinasi parameter yang optimal.
  3. Manajemen posisi: Mengatur posisi sesuai dengan dinamika pasar yang berfluktuasi, meningkatkan tingkat pemanfaatan dana.
  4. Strategi kombinasi: Strategi ini dikombinasikan dengan strategi lain yang efektif untuk meningkatkan stabilitas.

Meringkaskan

Strategi ini membangun sistem perdagangan yang sederhana dan efektif untuk melacak tren melalui indikator seperti saluran G, EMA, dan ATR. Strategi ini dapat mencapai efek yang baik dalam situasi tren, tetapi umumnya berkinerja dalam situasi goncangan. Strategi ini dapat dioptimalkan dari penyaringan tren, optimasi parameter, manajemen posisi, dan strategi kombinasi, untuk meningkatkan stabilitas dan profitabilitas strategi.

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