Strategi Dagangan Komposit Berbilang Penunjuk

Penulis:ChaoZhang, Tarikh: 2024-01-29 10:06:25
Tag:

img

Ringkasan

Strategi perdagangan komposit pelbagai penunjuk mengintegrasikan empat penunjuk utama: divergensi konvergensi purata bergerak (MACD), indeks kekuatan relatif (RSI), indeks saluran komoditi (CCI) dan indeks kekuatan relatif stokastik (StochRSI).

Logika Strategi

Strategi ini terutamanya membuat penilaian berdasarkan empat penunjuk:

  1. MACD: Mengira perbezaan antara purata bergerak pantas dan perlahan untuk menilai momentum harga dan trend. Isyarat beli dihasilkan apabila garis pantas melintasi di atas garis perlahan.

  2. RSI: Mengira besar perubahan harga dalam tempoh masa. RSI di atas 70 menunjukkan keadaan overbought dan di bawah 30 oversold. Strategi ini menggunakan 70 dan 30 sebagai ambang.

  3. CCI: Mengukur momentum harga dengan mengira peratusan penyimpangan harga dari purata bergerak.

  4. StochRSI: Menggabungkan Stochastics dan RSI. Salib emas antara garis StochRSI %K dan %D menandakan pembelian, sementara salib kematian menandakan penjualan.

Hanya apabila keempat-empat penunjuk memenuhi kriteria secara serentak, isyarat beli atau jual sebenar akan dihasilkan.

Kelebihan

Kelebihan utama strategi pelbagai penunjuk ini ialah:

  1. Menapis isyarat palsu dengan memerlukan persetujuan semua penunjuk, mengelakkan mengejar puncak atau panik menjual bahagian bawah.

  2. Mencatatkan trend utama di pelbagai dimensi dengan menggabungkan perspektif penunjuk yang berbeza.

  3. Ruang pengoptimuman parameter yang besar untuk menyesuaikan setiap penunjuk untuk prestasi optimum keseluruhan.

  4. Berat boleh diselaraskan berdasarkan pasaran lembu atau lembu untuk memberi tumpuan kepada trend atau strategi pembalikan purata.

Risiko

Risiko utama ialah:

  1. Penunjuk boleh menghasilkan isyarat palsu serentak, mencetuskan perdagangan yang salah.

  2. Harga boleh bergerak dengan cukup ganas untuk isyarat palsu serentak di seluruh penunjuk.

  3. Isyarat beli terlambat apabila penunjuk sejajar.

  4. Sukar untuk mengoptimumkan banyak parameter, mungkin overfit.

Pengurangan termasuk penyesuaian parameter, kehilangan berhenti, dan kawalan saiz kedudukan.

Peluang Peningkatan

Peluang peningkatan:

  1. Uji kombinasi dengan lebih banyak penunjuk seperti KD, Bollinger Bands untuk mencari portfolio yang optimum.

  2. Mengoptimumkan parameter untuk prestasi keseluruhan tertinggi, mungkin melalui pembelajaran mesin.

  3. Sesuaikan parameter untuk stok dan sektor yang berbeza.

  4. Tambahkan mekanisme stop loss dalam kod strategi, seperti menjual apabila harga melanggar sokongan.

  5. Pilih saham dengan prestasi yang kuat dalam sektor untuk meningkatkan pulangan portfolio.

Kesimpulan

Strategi ini mengintegrasikan isyarat merentasi empat penunjuk utama MACD, RSI, CCI, dan StochRSI. Dengan menetapkan kriteria kemasukan dan keluar yang ketat berdasarkan analisis jangka masa berbilang, ia dapat mengenal pasti titik perubahan pasaran dengan berkesan. Penyempurnaan seperti pengoptimuman parameter, mengemas kini alam semesta saham, dan menambah berhenti dapat meningkatkan prestasi. Secara keseluruhan strategi perdagangan kuantitatif yang berkesan.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("MACD RSI CCI StochRSI Strategy", shorttitle="MRCSS", overlay=true)

// MACD göstergesi
fastLength = input(12, title="Fast Length")
slowLength = input(26, title="Slow Length")
signalLength = input(9, title="Signal Length")
[macdLine, signalLine, _] = macd(close, fastLength, slowLength, signalLength)

// RSI göstergesi
rsiLength = input(14, title="RSI Length")
rsiLevel = input(70, title="RSI Overbought Level")
rsiValue = rsi(close, rsiLength)

// CCI göstergesi
cciLength = input(8, title="CCI Length")
cciLevel = input(100, title="CCI Overbought Level")
cciValue = cci(close, cciLength)

// Stochastic Oscillator göstergesi
stochLength = input(14, title="Stoch Length")
stochK = input(3, title="Stoch K")
stochD = input(3, title="Stoch D")
stochValue = stoch(close, high, low, stochLength)
stochDValue = sma(stochValue, stochD)

// Alış ve Satış Sinyalleri
buySignal = crossover(macdLine, signalLine) and rsiValue < rsiLevel and cciValue < cciLevel and stochValue > stochDValue
sellSignal = crossunder(macdLine, signalLine) and rsiValue > (100 - rsiLevel) and cciValue > (100 - cciLevel) and stochValue < stochDValue

// Ticaret stratejisi uygula
strategy.entry("Buy", strategy.long, when = buySignal)
strategy.close("Buy", when = sellSignal)
strategy.entry("Sell", strategy.short, when = sellSignal)
strategy.close("Sell", when = buySignal)

// Göstergeleri çiz
hline(rsiLevel, "RSI Overbought", color=color.red)
hline(100 - rsiLevel, "RSI Oversold", color=color.green)
hline(cciLevel, "CCI Overbought", color=color.red)
hline(100 - cciLevel, "CCI Oversold", color=color.green)

// Grafik üzerinde sinyal okları çiz
plotshape(series=buySignal, title="Buy Signal", color=color.green, style=shape.triangleup, location=location.belowbar, size=size.small)
plotshape(series=sellSignal, title="Sell Signal", color=color.red, style=shape.triangledown, location=location.abovebar, size=size.small)


Lebih lanjut