Perdagangan Emas dengan Strategi Simons

Penulis:ChaoZhang, Tanggal: 2024-03-01 12:28:38
Tag:

img

Gambaran umum

Strategi ini menggabungkan indikator rata-rata bergerak, indeks kekuatan relatif (RSI) dan pola engulfing untuk melakukan perdagangan panjang dan pendek pada emas.

Logika Strategi

Strategi membuat keputusan perdagangan berdasarkan aspek berikut:

  1. Rata-rata bergerak crossover

    Crossover antara MA 21 hari dan MA 200 hari digunakan sebagai indikator utama untuk menentukan pembalikan tren.

  2. Indikator RSI

    RSI harus berada di bawah tingkat overbought untuk sinyal panjang, dan di atas tingkat oversold untuk sinyal pendek, untuk menghindari puncak pembelian dan lembah penjualan.

  3. Konfirmasi Pola Menelan

    Pola bullish engulfing diperlukan untuk sinyal panjang ketika golden cross terjadi. pola bearish engulfing diperlukan untuk sinyal pendek ketika death cross terjadi. ini lebih lanjut mengkonfirmasi pembalikan tren.

Sinyal perdagangan dihasilkan ketika ketiga kondisi di atas terpenuhi. Ini membentuk seperangkat filter ketat untuk strategi.

Keuntungan

Keuntungan terbesarnya terletak pada penggunaan komprehensif dari beberapa parameter dan indikator untuk pengambilan keputusan, yang menyaring sinyal yang salah dengan baik dan mengurangi stop loss yang tidak perlu.

  1. Strategi rata-rata bergerak itu sendiri memiliki stabilitas yang relatif baik.

  2. Pengaturan RSI mencegah puncak pembelian dan penjualan lembah.

  3. Konfirmasi pola engulfing meningkatkan keandalan dalam penilaian pembalikan tren.

  4. Stop loss yang lebih kecil secara efektif mengendalikan risiko.

Risiko

Meskipun strategi ini unggul dalam penyaringan sinyal dan pengendalian risiko, strategi ini masih mengandung beberapa kelemahan dan risiko:

  1. Penyesuaian parameter yang kompleks membutuhkan upaya yang signifikan untuk menemukan kombinasi yang optimal.

  2. Sinyal masuk yang ketat mungkin kehilangan beberapa kesempatan bagus.

  3. Akan ada keterlambatan tertentu dalam kondisi pasar yang sangat volatile.

  4. Stabilitas jangka panjang dan validitas perlu diverifikasi lebih lanjut.

Untuk mengatasi risiko di atas, kita dapat memperbaiki parameter, mengoptimalkan aliran logika, menggabungkan indikator lain dll untuk meningkatkan strategi.

Peluang Optimalisasi

Meskipun berhasil dalam menggabungkan beberapa indikator, strategi ini masih memiliki ruang untuk optimasi:

  1. Selanjutnya, carilah set parameter yang optimal melalui backtesting lebih lanjut.

  2. Menggabungkan indikator lain seperti MACD, KD dll untuk membantu menilai waktu pembalikan tren.

  3. Meningkatkan dan menyempurnakan mekanisme stop loss.

  4. Uji set data historis yang lebih lama untuk memverifikasi validitas jangka panjang strategi.

Kesimpulan

Pada akhirnya, strategi ini memanfaatkan toolkit instrumen analisis teknis seperti moving average, RSI dan pola engulfing untuk melakukan perdagangan emas panjang pendek. Melalui konfigurasi parameter dan penyaringan sinyal, ia membangun sistem yang relatif ketat untuk mengendalikan risiko sampai batas tertentu. Namun, tidak ada strategi yang dapat benar-benar sempurna. Strategi ini masih memiliki banyak ruang untuk optimasi dan perbaikan arah. Secara umum, ia memberikan referensi yang bermakna untuk perdagangan kuantifikasi, tetapi masih harus digunakan secara diskrit dengan penyesuaian pragmatis ketika diterapkan dalam praktek.


/*backtest
start: 2024-02-01 00:00:00
end: 2024-02-29 23:59:59
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Gold Trading with Simons Strategy", overlay=true)

// Parameters
length21 = input(21, minval=1, title="Length for 21 MA")
length50 = input(50, minval=1, title="Length for 50 MA")
length200 = input(200, minval=1, title="Length for 200 MA")
rsiLength = input(14, minval=1, title="RSI Length")
rsiOverbought = input(70, title="RSI Overbought Level")
rsiOversold = input(30, title="RSI Oversold Level")
takeProfitPercent = input(4, title="Take Profit %")
stopLossPercent = input(1, title="Stop Loss %")

// Moving Averages
ma21 = sma(close, length21)
ma50 = sma(close, length50)
ma200 = sma(close, length200)

// RSI
rsi = rsi(close, rsiLength)

// Engulfing Pattern
isBullishCandle(c) => close[c] > open[c]
isBearishCandle(c) => close[c] < open[c]

bearishEngulfing = isBullishCandle(1) and isBearishCandle(0) and close < open[1] and open > close[1]
bullishEngulfing = isBearishCandle(1) and isBullishCandle(0) and close > open[1] and open < close[1]

// Calculate Take Profit and Stop Loss Levels
takeProfitLevel(entryPrice) => entryPrice * (1 + takeProfitPercent / 100)
stopLossLevel(entryPrice) => entryPrice * (1 - stopLossPercent / 100)

// Entry Conditions
longCondition = crossover(ma21, ma200) and close > ma21 and close > ma50 and rsi < rsiOverbought and bullishEngulfing
shortCondition = crossunder(ma21, ma200) and close < ma21 and close < ma50 and rsi > rsiOversold and bearishEngulfing

// Entry
if (longCondition)
    entryPrice = close
    strategy.entry("Long", strategy.long)
    strategy.exit("Take Profit", "Long", limit=takeProfitLevel(entryPrice))
    strategy.exit("Stop Loss", "Long", stop=stopLossLevel(entryPrice))
if (shortCondition)
    entryPrice = close
    strategy.entry("Short", strategy.short)
    strategy.exit("Take Profit", "Short", limit=takeProfitLevel(entryPrice))
    strategy.exit("Stop Loss", "Short", stop=stopLossLevel(entryPrice))

// Plotting
plot(ma21, color=color.blue, title="21 MA")
plot(ma50, color=color.orange, title="50 MA")
plot(ma200, color=color.red, title="200 MA")
hline(rsiOverbought, "RSI Overbought", color=color.green)
hline(rsiOversold, "RSI Oversold", color=color.red)
plot(rsi, "RSI", color=color.purple)

Lebih banyak