Strategi penunjuk berganda perdagangan kuantitatif

Penulis:ChaoZhang, Tarikh: 2024-01-15 12:18:53
Tag:

img

Ringkasan

Strategi ini dinamakan Quantitative Trading Dual Indicator Strategy. Ia menggunakan kedua-dua Bollinger Bands dan Indeks Kekuatan Relatif (RSI) sebagai isyarat perdagangan untuk melaksanakan strategi perdagangan yang ditapis dengan dua penunjuk.

Logika Strategi

Logik teras strategi ini adalah untuk menggunakan kedua-dua Bollinger Bands dan RSI untuk menilai keadaan overbought dan oversold di pasaran untuk penapisan isyarat perdagangan.

Secara khusus, Bollinger Bands band atas dan bawah boleh menentukan sama ada harga berada di luar julat turun naik, dengan itu menilai sama ada pasaran terlalu banyak dibeli atau terlalu banyak dijual. Indeks Kekuatan Relatif (RSI) boleh menilai kekuatan pasukan pasaran. RSI di atas 55 adalah isyarat terlalu banyak dibeli, dan di bawah 45 isyarat terlalu banyak dijual.

Strategi ini ditetapkan supaya operasi beli atau jual hanya dijalankan apabila Bollinger Bands dan RSI kedua-duanya memaparkan isyarat overbought atau oversold pada masa yang sama.

Kelebihan Strategi

Kelebihan terbesar strategi ini adalah penggunaan penapis dua indikator, yang dapat mengurangkan perdagangan yang mengelirukan dan meningkatkan kebolehpercayaan isyarat.

Berbanding dengan satu penunjuk Bollinger Bands, strategi penunjuk berganda dapat mengurangkan kemungkinan isyarat palsu. Berbanding dengan satu penunjuk RSI, Bollinger Bands boleh digunakan untuk menentukan sama ada ia berada di luar julat osilasi untuk mengelakkan isyarat yang salah di pasaran yang berosilasi.

Secara keseluruhan, strategi penunjuk dua mengambil kira pelbagai situasi secara komprehensif dan mempunyai fleksibiliti dan kestabilan yang lebih baik.

Risiko Strategi dan Penyelesaian

Risiko utama strategi ini adalah bahawa tetapan parameter kedua-dua Bollinger Bands dan RSI mungkin tidak sesuai. Jika parameter Bollinger Bands ditetapkan terlalu sensitif, ia cenderung untuk menghasilkan isyarat berlebihan. Jika parameter RSI ditetapkan terlalu longgar, kesannya akan melemah.

Di samping itu, gabungan penunjuk dua itu sendiri bermaksud lebih sedikit isyarat. Jika pasaran hanya memenuhi isyarat satu penunjuk sementara yang lain belum mencapai tahap pencetus, strategi ini tidak akan menghasilkan isyarat. Oleh itu, berbanding dengan strategi penunjuk tunggal, kekerapan perdagangan strategi ini akan lebih rendah.

Penyelesaian terutamanya termasuk menetapkan parameter yang lebih sesuai, mengubah suai tahap pencetus RSI dan Bollinger Bands, dll. Jika kekerapan dagangan terlalu rendah, pertimbangkan untuk mengurangkan keperluan parameter untuk meningkatkan peluang kemasukan.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan dalam aspek berikut:

  1. Uji kombinasi Bollinger Bands dan parameter RSI yang berbeza untuk mencari kecocokan yang lebih baik.

  2. Tambah strategi stop loss dan mengambil keuntungan untuk meningkatkan keuntungan.

  3. Tambahkan mekanisme saiz kedudukan. Gunakan saiz kedudukan dinamik untuk meningkatkan kedudukan apabila trend berjalan dengan baik, dan mengurangkan kerugian apabila trend berjalan dengan buruk.

  4. Tambah parameter penyesuaian diri berdasarkan data sejarah.

Kesimpulan

Sebagai strategi penapisan penunjuk berganda, strategi ini mempunyai kestabilan keseluruhan yang baik dan daya adaptasi. Walaupun mengurangkan perkadaran isyarat palsu, ia juga mengurangkan kekerapan perdagangan. Dengan mengoptimumkan parameter penunjuk dan menambah fungsi tambahan, potensi keuntungan strategi dapat ditingkatkan lagi.


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

//@version=2
strategy("Bollinger Bands + RSI, Double Strategy (by SlumdogTrader)", shorttitle="BolBand_RSI_Strat", overlay=true)

// SlumdogTrader's Bollinger Bands + RSI Double Strategy - Profit Trailer
//
// Version 1.0
// Script by SlumdogTrader on July Fri 13(!), 2018.
//
// This strategy uses a normalise Bollinger Bands + RSI.
//
// Bollinger Band triggers
// SELL - when the price is above the upper band.
// BUY - when the price is below the lower band.
//
// RSI triggers
// SELL - when the price is above 55.
// BUY - when the price is below 45.
//
// This simple strategy only triggers when
// both the BB and the RSI
// indicators, at the same time, are in
// a overbought or oversold condition.
//
// Visit my TradingView work at:
// https://www.tradingview.com/u/SlumdogTrader/
//
// Visit my website at:
// https://www.slumdogtrader.com
//

///////////// Bollinger Bands Settings
BBlength = input(20, minval=1,title="Bollinger Bands SMA Period Length")
BBmult = input(2.0, minval=0.001, maxval=50,title="Bollinger Bands Standard Deviation")
price = input(close, title="Source")
BBbasis = sma(price, BBlength)
BBdev = BBmult * stdev(price, BBlength)
BBupper = BBbasis + BBdev
BBlower = BBbasis - BBdev
source = close
buyEntry = crossover(source, BBlower)
sellEntry = crossunder(source, BBupper)
plot(BBbasis, color=aqua,title="BBs SMA Basis Line")
p1 = plot(BBupper, color=silver,title="BBs Upper Line")
p2 = plot(BBlower, color=silver,title="BBs Lower Line")
fill(p1, p2)

///////////// RSI Settings
RSIlength = input( 16 ,title="RSI Period Length")
RSIvalue = input( 45 ,title="RSI Value Range")
RSIoverSold = 0 + RSIvalue
RSIoverBought = 100 - RSIvalue
vrsi = rsi(price, RSIlength)


///////////// Colour Settings
switch1=input(true, title="Enable Bar Color?")
switch2=input(true, title="Enable Background Color?")
TrendColor = RSIoverBought and (price[1] > BBupper and price < BBupper) ? red : RSIoverSold and (price[1] < BBlower and price > BBlower)  ? green : na
barcolor(switch1?TrendColor:na)
bgcolor(switch2?TrendColor:na,transp=50)


///////////// RSI + Bollinger Bands Strategy
if (not na(vrsi))

    if (crossover(vrsi, RSIoverSold) and crossover(source, BBlower))
        strategy.entry("RSI_BB_L", strategy.long, stop=BBlower,  comment="RSI_BB_L")
    else
        strategy.cancel(id="RSI_BB_L")

    if (crossunder(vrsi, RSIoverBought) and crossunder(source, BBupper))
        strategy.entry("RSI_BB_S", strategy.short, stop=BBupper,  comment="RSI_BB_S")
    else
        strategy.cancel(id="RSI_BB_S")

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)


Lebih lanjut