Strategi perdagangan gabungan berbilang penunjuk


Tarikh penciptaan: 2023-09-13 12:18:05 Akhirnya diubah suai: 2023-09-13 12:18:05
Salin: 0 Bilangan klik: 685
1
fokus pada
1617
Pengikut

Strategi ini membentuk isyarat perdagangan dengan menggunakan gabungan pelbagai petunjuk teknikal seperti sistem garis rata, petunjuk RSI dan petunjuk Stoch untuk menilai trend harga dan keadaan overbought dan oversold. Strategi ini menyatukan kelebihan beberapa petunjuk untuk membuat keputusan perdagangan yang lebih stabil dan boleh dipercayai.

Prinsip-prinsip strategi:

  1. Hitung EMA rata-rata pelbagai kumpulan untuk menentukan arah trend garis panjang harga.

  2. Hitung RSI dan Stoch untuk menentukan sama ada anda berada dalam keadaan overbought atau oversold.

  3. Apabila sistem garis purata mengeluarkan isyarat melakukan lebih banyak, RSI tidak melebihi dan Stoch tidak melebihi, lakukan lebih banyak operasi.

  4. Apabila sistem garis purata mengeluarkan isyarat untuk melakukan shorting, RSI tidak oversold, atau Stoch tidak oversold, lakukan operasi shorting.

  5. Apabila mana-mana penunjuk memberi isyarat berbalik, lakukan operasi kedudukan rata.

Kelebihan strategi ini:

  1. Percubaan gabungan pelbagai indikator dapat mengurangkan kemungkinan perdagangan yang salah.

  2. Indeks boleh saling melengkapi dan meningkatkan penilaian pasaran.

  3. Peraturan perdagangan yang jelas, mudah untuk diukur dan diperiksa.

Risiko strategi ini:

  1. Kaedah yang digunakan adalah untuk mengevaluasi pengulangan dan mengelakkan keterlaluan.

  2. Parameter pengoptimuman gabungan pelbagai indikator lebih rumit.

  3. Menambah indeks tidak semestinya meningkatkan keberkesanan strategi.

Kesimpulannya, strategi gabungan pelbagai indikator dapat meningkatkan keberkesanan keputusan, tetapi perlu berhati-hati dengan kesukaran pengoptimuman dan masalah pengulangan indikator, dan mengekalkan strategi yang mudah dan boleh dipercayai.

Kod 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")