Strategi perdagangan kombinasi multi-indikator


Tanggal Pembuatan: 2023-09-13 12:18:05 Akhirnya memodifikasi: 2023-09-13 12:18:05
menyalin: 0 Jumlah klik: 685
1
fokus pada
1617
Pengikut

Strategi ini menggunakan kombinasi dari berbagai indikator teknis seperti sistem garis rata, indikator RSI dan indikator Stoch untuk menilai tren harga dan kondisi overbought dan oversold untuk membentuk sinyal perdagangan. Strategi ini menyatukan keunggulan dari beberapa indikator untuk membuat keputusan perdagangan yang lebih stabil dan dapat diandalkan.

Prinsip-prinsip Strategi:

  1. Perhitungan EMA rata-rata dari beberapa kelompok untuk menentukan arah tren garis tengah panjang.

  2. Perhitungan RSI dan Stoch untuk menentukan apakah Anda berada dalam kondisi overbought atau oversold.

  3. Bila sistem garis rata-rata mengeluarkan sinyal melakukan lebih banyak, RSI tidak oversold, Stoch tidak oversold, melakukan lebih banyak operasi.

  4. Operasi shorting dilakukan ketika sistem garis rata memberikan sinyal shorting, RSI tidak oversold, dan Stoch tidak oversold.

  5. Bila salah satu indikator memberi sinyal mundur, lakukan operasi posisi kosong.

Keuntungan dari strategi ini:

  1. Validasi kombinasi multi-indikator mengurangi kemungkinan transaksi yang salah.

  2. Indikator dapat saling melengkapi dan meningkatkan penilaian terhadap pasar.

  3. Peraturan transaksi yang jelas, mudah untuk diukur dan diperhitungkan.

Bahaya dari strategi ini:

  1. Evaluasi indikator harus dilakukan dengan hati-hati untuk menghindari keterlaluan.

  2. Parameter pengoptimalan kombinasi multi-indikator lebih rumit.

  3. Menambahkan indikator tidak selalu meningkatkan efektivitas strategi.

Kesimpulannya, strategi kombinasi multi-indikator dapat meningkatkan efektivitas keputusan, tetapi perlu memperhatikan kesulitan optimasi dan masalah keterulangan indikator, menjaga strategi tetap sederhana dan dapat diandalkan.

Kode Sumber Strategi
/*backtest
start: 2022-09-06 00:00:00
end: 2023-09-12 00:00:00
period: 3d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// strategy(title='Combined Strategy', default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=.0020, pyramiding=0, slippage=3, overlay=true)

//----------//
// MOMENTUM //
//----------//
ema8 = ta.ema(close, 5)
ema13 = ta.ema(close, 9)
ema21 = ta.ema(close, 13)
ema34 = ta.ema(close, 21)
ema55 = ta.ema(close, 34)

plot(ema8, color=color.new(color.red, 0), style=plot.style_line, title='5', linewidth=1)
plot(ema13, color=color.new(color.orange, 0), style=plot.style_line, title='9', linewidth=1)
plot(ema21, color=color.new(color.yellow, 0), style=plot.style_line, title='13', linewidth=1)
plot(ema34, color=color.new(color.aqua, 0), style=plot.style_line, title='21', linewidth=1)
plot(ema55, color=color.new(color.lime, 0), style=plot.style_line, title='34', linewidth=1)

longEmaCondition = ema8 > ema13 and ema13 > ema21 and ema21 > ema34 and ema34 > ema55
exitLongEmaCondition = ema13 < ema55

shortEmaCondition = ema8 < ema13 and ema13 < ema21 and ema21 < ema34 and ema34 < ema55
exitShortEmaCondition = ema13 > ema55

// ----------  //
// OSCILLATORS //
// ----------- //
rsi = ta.rsi(close, 14)
longRsiCondition = rsi < 70 and rsi > 40
exitLongRsiCondition = rsi > 70

shortRsiCondition = rsi > 30 and rsi < 60
exitShortRsiCondition = rsi < 30

Stochastic
length = 14, smoothK = 3, smoothD = 3
kFast = ta.stoch(close, high, low, 14)
dSlow = ta.sma(kFast, smoothD)

longStochasticCondition = kFast < 80
exitLongStochasticCondition = kFast > 95

shortStochasticCondition = kFast > 20
exitShortStochasticCondition = kFast < 5

//----------//
// STRATEGY //
//----------//

longCondition = longEmaCondition and longRsiCondition and longStochasticCondition and strategy.position_size == 0
exitLongCondition = (exitLongEmaCondition or exitLongRsiCondition or exitLongStochasticCondition) and strategy.position_size > 0

if (longCondition)
  strategy.entry("LONG", strategy.long)
if (exitLongCondition)
  strategy.close("LONG")

shortCondition = shortEmaCondition and shortRsiCondition and shortStochasticCondition and strategy.position_size == 0
exitShortCondition = (exitShortEmaCondition or exitShortRsiCondition or exitShortStochasticCondition) and strategy.position_size < 0

if (shortCondition)
  strategy.entry("SHORT", strategy.short)
if (exitShortCondition)
  strategy.close("SHORT")