Bollinger Bands, RSI, MACD dan Strategi Dagangan Fusion Multi-indicator Stochastic

Penulis:ChaoZhang, Tarikh: 2023-09-28 12:06:39
Tag:

Ringkasan

Strategi ini mengintegrasikan Bollinger Bands, RSI, MACD dan Stochastic, empat penunjuk teknikal yang berbeza, untuk membuat keputusan panjang dan pendek. Pertama, ia menentukan sama ada harga berada di luar saluran Bollinger Bands dan mengambil kedudukan panjang atau pendek dengan sewajarnya. Kemudian ia memeriksa sama ada RSI berada di zon overbought atau oversold dan memasuki berdasarkan arah. Seterusnya ia mencari isyarat salib emas dan salib kematian MACD dan mengambil kedudukan dengan sewajarnya. Akhirnya ia mengenal pasti salib emas Stochastic dan salib kematian di zon overbought / oversold. Dengan isyarat dari keempat-empat penunjuk, strategi mengamalkan kedudukan piramid yang lebih agresif untuk memaksimumkan keuntungan.

Prinsip-prinsip

Strategi ini terutamanya menggunakan empat penunjuk - Bollinger Bands, RSI, MACD dan Stochastic.

Bollinger Bands dicatatkan pada tahap penyimpangan standard di atas dan di bawah purata bergerak mudah. Harga di luar band menunjukkan harga telah bergerak di luar pengagihan normal dan dengan itu peluang perdagangan.

RSI mengira momentum sebagai nisbah penutupan yang lebih tinggi kepada penutupan yang lebih rendah. Nilai di bawah 30 menunjukkan keadaan oversold manakala di atas 70 menunjukkan overbought. Ini berfungsi sebagai isyarat perdagangan.

MACD adalah perbezaan antara purata bergerak jangka pendek dan jangka panjang. Persalinan garis MACD dan garis isyarat menghasilkan isyarat perdagangan - salib emas untuk panjang dan salib kematian untuk pendek.

K di bawah 20 menunjukkan oversold manakala di atas 80 menunjukkan overbought. K melintasi di atas D memberikan isyarat bullish manakala melintasi di bawah memberikan isyarat bearish.

Menggabungkan isyarat dari empat penunjuk ini meningkatkan ketepatan entri perdagangan. Khususnya, pergi lama apabila harga melebihi band atas Bollinger Bands, RSI di bawah 30, salib emas MACD dan persilangan Stochastic K di atas D di bawah 20.

Kelebihan

Kelebihan utama strategi ini adalah menggabungkan beberapa penunjuk meningkatkan ketepatan dan kadar kemenangan.

Pertama, menggunakan penunjuk dalam jangka masa yang berbeza - Bollinger untuk jangka sederhana / panjang, dan MACD, RSI, Stochastic untuk jangka pendek, mengurangkan kesilapan.

Kedua, memerlukan semua penunjuk untuk menyelaraskan mengurangkan isyarat palsu. Memasuki hanya apabila Bollinger, RSI, MACD dan Stochastic semua memberi isyarat mengelakkan kegagalan penunjuk tunggal.

Juga, menggabungkan penunjuk pelengkap memanfaatkan kekuatan masing-masing. RSI mengenal pasti overbought / oversold, perubahan trend Bollinger, perubahan momentum MACD dll.

Akhirnya, kedudukan piramid dengan isyarat yang disahkan memaksimumkan keuntungan berbanding perdagangan kuantiti tetap.

Risiko

Beberapa risiko yang perlu dipertimbangkan:

Pertama, lebih banyak parameter dan penunjuk menjadikan pengoptimuman sukar. Ujian yang luas diperlukan untuk mencari kombinasi terbaik.

Kedua, isyarat penunjuk serentak jarang berlaku, yang membawa kepada kekerapan perdagangan yang rendah.

Ketiga, perdagangan piramid boleh memperkuat kerugian jika penunjuk memberi isyarat yang salah.

Akhirnya, isyarat penunjuk yang tidak konsisten memerlukan peraturan keputusan. Strategi harus mempunyai logika kuantitatif apabila penunjuk bertentangan.

Peningkatan

Beberapa cara untuk meningkatkan strategi:

  1. Mengoptimumkan parameter melalui algoritma genetik, carian grid dan lain-lain untuk mencari kombinasi terbaik.

  2. Tambah peraturan stop loss untuk mengawal kerugian apabila harga bergerak negatif di luar ambang.

  3. Meningkatkan logik kemasukan dengan sistem penilaian untuk isyarat penunjuk yang tidak konsisten dan parameter yang ditimbang.

  4. Mengoptimumkan keluar dengan data keuntungan/kerugian sepanjang tempoh penyimpanan untuk menjana peraturan keluar yang ideal.

  5. Mengoptimumkan produk dan jangka masa yang paling sesuai untuk strategi.

  6. Mengira kos dagangan seperti slippage dan komisen dalam pengoptimuman parameter.

  7. Menggunakan pembelajaran mesin untuk pengoptimuman adaptif.

Kesimpulan

Strategi ini menggabungkan pelbagai penunjuk dan mekanisme pengesahan untuk membuat keputusan. Dengan parameter dan kawalan risiko yang betul, ia dapat mencapai hasil yang baik. Tetapi kerumitan penyusunan dan risiko perlu ditangani melalui peningkatan berterusan untuk kestabilan. Mencari kombinasi penunjuk yang optimum, peraturan kemasukan / keluar saintifik dan kawalan risiko adalah kunci untuk keuntungan yang berterusan dalam keadaan pasaran.


/*backtest
start: 2022-09-21 00:00:00
end: 2023-09-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("MD strategy", overlay=true)
lengthrsi = input( 14 )
overSold = input( 30 )
overBought = input( 70 )
price = close
source = close
lengthbb = input(20, minval=1)
mult = input(2.0, minval=0.001, maxval=50)
direction = input(0, title = "Strategy Direction",  minval=-1, maxval=1)
fastLength = input(12)
slowlength = input(26)
MACDLength = input(9)
consecutiveBarsUp = input(3)
consecutiveBarsDown = input(3)
lengthch = input( minval=1, maxval=1000, defval=5)
upBound = highest(high, lengthch)
downBound = lowest(low, lengthch)
lengthst = input(14, minval=1)
OverBoughtst = input(80)
OverSoldst = input(20)
smoothK = 3
smoothD = 3

k = sma(stoch(close, high, low, lengthst), smoothK)
d = sma(k, smoothD)



ups = price > price[1] ? nz(ups[1]) + 1 : 0
dns = price < price[1] ? nz(dns[1]) + 1 : 0
MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD

strategy.risk.allow_entry_in(direction == 0 ? strategy.direction.all : (direction < 0 ? strategy.direction.short : strategy.direction.long))

basis = sma(source, lengthbb)
dev = mult * stdev(source, lengthbb)

upper = basis + dev
lower = basis - dev

vrsi = rsi(price, lengthrsi)

if (not na(vrsi))
    if (crossover(vrsi, overSold))
        strategy.entry("RsiLE", strategy.long, comment="RsiLE")
    if (crossunder(vrsi, overBought))
        strategy.entry("RsiSE", strategy.short, comment="RsiSE")

if (crossover(source, lower))
    strategy.entry("BBandLE", strategy.long, stop=lower, oca_name="BollingerBands",  comment="BBandLE")
else
    strategy.cancel(id="BBandLE")

if (crossunder(source, upper))
    strategy.entry("BBandSE", strategy.short, stop=upper, oca_name="BollingerBands",  comment="BBandSE")
else
    strategy.cancel(id="BBandSE")
    
    
if (not na(k) and not na(d))
    if (crossover(k,d) and k < OverSoldst)
        strategy.entry("StochLE", strategy.long, comment="StochLE")
    if (crossunder(k,d) and k > OverBoughtst)
        strategy.entry("StochSE", strategy.short, comment="StochSE")   
        
if (crossover(delta, 0))
    strategy.entry("MacdLE", strategy.long, comment="MacdLE")

if (crossunder(delta, 0))
    strategy.entry("MacdSE", strategy.short, comment="MacdSE")


Lebih lanjut