Parabolic SAR dan CCI Strategy dengan EMA Exit untuk Perdagangan Emas

Penulis:ChaoZhang, Tanggal: 2023-12-07 17:04:54
Tag:

img

Gambaran umum

Ini adalah strategi perdagangan emas pada kerangka waktu M5 berdasarkan kombinasi indikator teknis Parabolic SAR, CCI dan EMA. Ini menggunakan tiga indikator yang berbeda untuk mengidentifikasi arah tren dan situasi overbought / oversold emas untuk menangkap peluang perdagangan selama penarikan pasar.

Logika Strategi

  1. Parabolic SAR digunakan untuk menentukan arah tren dan titik pembalikan potensial emas. Ketika titik SAR mulai menurun di bawah harga, itu menunjukkan tren naik; ketika titik SAR mulai naik di atas harga, itu menunjukkan tren menurun.

  2. CCI menunjukkan kondisi pasar yang terlalu banyak dibeli/terlalu banyak dijual. CCI di atas 100 menunjukkan tren kenaikan yang menguat sementara CCI di bawah -100 menunjukkan tren penurunan yang menguat.

  3. EMA crossover sinyal titik balik jangka pendek dari harga. Uptrend disarankan ketika garis cepat naik dan downtrend disarankan ketika turun.

  4. Aturan masuk: Pergi panjang ketika SAR melintasi EMA 5 menit di arah naik dan CCI lebih besar dari 100; Pergi pendek ketika SAR melintasi EMA 5 menit di arah menurun dan CCI kurang dari -100.

  5. Aturan keluar: Ambil keuntungan pada harga masuk + 7 tik, Stop loss ditetapkan pada garis EMA 1 menit.

Keuntungan

  1. Menggunakan 3 indikator untuk mengidentifikasi tren dan tingkat pendukung/resistensi utama, meningkatkan profitabilitas.

  2. CCI menyaring penyusutan palsu secara efisien. pembalikan SAR dikombinasikan dengan arah tren menghindari entri yang tidak perlu selama konsolidasi.

  3. Crossover EMA dengan SAR menawarkan entri berisiko rendah selama penarikan sementara.

  4. Parameter dioptimalkan cocok untuk komoditas volatile seperti emas dan akun kecil.

Risiko

  1. Terutama bergantung pada indikator teknis yang mungkin gagal selama peristiwa angsa hitam.

  2. Komoditas volatil, EMA stop loss rentan terkena lonjakan yang mengakibatkan kerugian besar.

  3. Potensi sinyal palsu dari CCI dan SAR yang menyebabkan kerugian yang tidak perlu.

  4. Kegagalan sistem selama pergerakan volatile dapat mencegah eksekusi stop loss yang efektif.

Peluang Peningkatan

  1. Uji kombinasi parameter yang berbeda untuk mengoptimalkan CCI untuk karakteristik emas.

  2. Masukkan lebih banyak indikator seperti pola candlestick, Bollinger Bands untuk meningkatkan ketahanan.

  3. Menggunakan pembelajaran mesin untuk optimasi dinamis parameter SAR yang beradaptasi dengan perubahan pasar.

  4. Uji mekanisme stop loss yang berbeda misalnya stop trailing untuk mengurangi kemungkinan terkena.

  5. Mengoptimalkan model ukuran posisi, misalnya ukuran posisi pecahan tetap dan dinamis untuk mengontrol jumlah kerugian perdagangan tunggal.

Kesimpulan

Secara keseluruhan strategi perdagangan emas yang stabil menggabungkan beberapa indikator untuk mengidentifikasi tren, tingkat dukungan / resistensi utama dan zona overbought / oversold untuk entri berisiko rendah selama retracements. Parameter yang dioptimalkan memungkinkan perdagangan akun kecil memanfaatkan volatilitas emas yang tinggi. Memiliki risiko yang dapat ditangani melalui manajemen risiko yang tepat. Potensi yang signifikan untuk meningkatkan stabilitas dan profitabilitas melalui peningkatan.


/*backtest
start: 2022-11-30 00:00:00
end: 2023-12-06 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Parabolic SAR and CCI Strategy with EMA Exit", overlay=true)

// Parameters
length = input(50, title="EMA Length")
length_21 = input(21, title="EMA Length 21")
acc = input(0.02, title="Acceleration Factor")
max_acc = input(0.2, title="Max Acceleration Factor")
takeProfitPoints = input(7, title="Take Profit Points")

// Variables
var float ep = 0.0
var float sar = 0.0
var float af = acc

// Calculating 5-minute EMA based on 1-minute data
var float sum_close = na
var float ema_5min = na
if (bar_index % 5 == 0)
    sum_close := 0.0
    for i = 0 to 4
        sum_close := sum_close + close[i]
    ema_5min := ema(sum_close / 5, length_21)

// Calculating 1-minute EMA
ema1 = ema(close, length)
cci = cci(close, 45)

// Custom Parabolic SAR Calculation
trendUp = close > ema1
trendDown = close < ema1

var float prev_sar = na
prev_sar := na(sar[1]) ? low[1] : sar[1]

if trendUp
    ep := high > ep ? high : ep
    af := min(af + acc, max_acc)
    sar := min(prev_sar, prev_sar + af * (ep - prev_sar))

if trendDown
    ep := low < ep ? low : ep
    af := min(af + acc, max_acc)
    sar := max(prev_sar, prev_sar + af * (ep - prev_sar))

// Entry Conditions
longCondition = sar > ema1 and ema1 > ema_5min and cci > 100
shortCondition = sar < ema1 and ema1 < ema_5min and cci < -100

// Exit Conditions
longTakeProfit = strategy.position_avg_price + takeProfitPoints * syminfo.mintick
longStopLoss = ema1
shortTakeProfit = strategy.position_avg_price - takeProfitPoints * syminfo.mintick
shortStopLoss = ema1

// Plotting Entry Points
plotshape(longCondition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(shortCondition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)

// Strategy Execution
if longCondition
    strategy.entry("Long", strategy.long)

if shortCondition
    strategy.entry("Short", strategy.short)

if strategy.position_size > 0
    strategy.exit("Take Profit/Stop Loss", "Long", limit=longTakeProfit, stop=longStopLoss)

if strategy.position_size < 0
    strategy.exit("Take Profit/Stop Loss", "Short", limit=shortTakeProfit, stop=shortStopLoss)


Lebih banyak