Strategi ganda: Strategi kombinasi indikator RSI dan stokastik


Tanggal Pembuatan: 2023-10-07 16:19:30 Akhirnya memodifikasi: 2023-10-07 16:19:30
menyalin: 0 Jumlah klik: 571
1
fokus pada
1166
Pengikut

Ringkasan

Strategi ini menggunakan kombinasi indeks relatif kuat (RSI) dengan indikator acak untuk membentuk strategi ganda untuk lebih akurat menilai keadaan pasar yang terlalu banyak dibeli dan dijual, sehingga mendapatkan sinyal perdagangan yang lebih andal.

Prinsip Strategi

Dalam strategi ini, panjang RSI adalah 14 siklus, overbought adalah 70 dan oversold adalah 30. Nilai K dari indikator acak digunakan untuk menghitung rata-rata 3 siklus, dan nilai D adalah rata-rata 3 siklus dari nilai K. Ini dianggap sebagai sinyal overbought ketika garis K dari bawah ke atas menerobos garis D, sebaliknya sebagai sinyal oversold.

Strategi ini menggunakan kombinasi RSI dengan indikator acak untuk memberikan sinyal perdagangan:

  1. Ketika indikator acak muncul di atas (garis K melewati garis D dari bawah), sementara indikator RSI lebih tinggi dari 70, ditentukan sebagai sinyal overbought dan shorting.

  2. Ketika indikator acak muncul di bawah (garis K melewati garis D dari atas ke bawah), sementara indikator RSI di bawah 30, dinilai sebagai sinyal oversold, lakukan over.

Strategi kombinasi ganda ini memanfaatkan keuntungan dari indikator RSI untuk menilai overbought dan oversold, dan menggabungkan keunggulan indikator acak untuk memfilter sinyal palsu, sehingga menghasilkan sinyal perdagangan yang lebih andal.

Analisis Keunggulan

Keuntungan terbesar dari strategi ganda ini adalah bahwa sinyal palsu dapat dikurangi secara efektif dan meningkatkan keandalan sinyal.

Indikator RSI secara terpisah menghasilkan lebih banyak sinyal palsu. Ini karena indikator RSI sendiri hanya menilai kondisi harga yang terlalu terjual dan tidak mencerminkan arah tren. Oleh karena itu, sinyal RSI secara terpisah tidak dapat diandalkan.

Indikator acak dapat menentukan arah tren harga. K melewati garis D menunjukkan bahwa tren kenaikan harga mungkin berlanjut, di mana sinyal RSI overbought memiliki keandalan yang lebih tinggi, dan dinilai sebagai true overbought dan bukan false overbought.

Sebaliknya, K di bawah garis D menunjukkan bahwa tren harga mungkin akan berbalik, bahkan jika RSI menunjukkan sinyal oversold, mungkin juga palsu oversold, tidak ada perdagangan.

Oleh karena itu, kombinasi menggunakan RSI dan indikator acak, dapat lebih baik menangkap status overbought dan oversold harga dan arah tren, memfilter banyak sinyal yang tidak dapat diandalkan, sehingga mendapatkan waktu perdagangan yang lebih tepat.

Analisis risiko

Strategi ini juga memiliki beberapa risiko yang perlu diperhatikan:

  1. Kombinasi indikator ganda digunakan untuk memfilter sinyal palsu, tetapi juga dapat melewatkan sebagian dari sinyal nyata, sehingga kehilangan peluang perdagangan.

  2. Pengaturan parameter RSI dan indikator acak memerlukan hubungan yang baik, seperti siklus RSI yang terlalu pendek, indikator acak K, nilai D yang tidak tepat, dapat mempengaruhi akurasi sinyal.

  3. Ketika indikator mengirimkan sinyal, Anda juga perlu mengkonfirmasi dengan mengkombinasikan faktor-faktor seperti pergerakan harga, volume transaksi, dan lain-lain, untuk menghindari terjadinya false breakout.

  4. Perhatikan risiko sistemik dan hindari perdagangan buta saat pasar bergejolak.

Arah optimasi

Strategi ini juga dapat dioptimalkan dalam beberapa hal:

  1. Mengoptimalkan parameter RSI dan indikator acak, menemukan kombinasi parameter yang optimal. Parameter dapat disesuaikan dengan data pengukuran ulang, atau parameter dapat dioptimalkan secara dinamis dengan metode pembelajaran mesin.

  2. Meningkatkan indikator konfirmasi volume transaksi, seperti peningkatan volume transaksi untuk memvalidasi sinyal jual beli.

  3. Menggabungkan indikator pengesahan tren seperti Moving Average untuk menghindari terbawa oleh pasar yang bergoyang. Misalnya, pertimbangkan sinyal beli hanya ketika tren naik.

  4. Menggunakan metode pembelajaran mesin untuk mengidentifikasi aturan jual beli yang lebih kompleks, seperti kombinasi sinyal seperti pita Brin dan pola harga untuk meningkatkan stabilitas strategi.

  5. Menggunakan teknologi mutakhir seperti Deep Learning untuk mengembangkan sistem perdagangan diversifikasi yang lebih cerdas dan mengoptimalkan aturan strategi dalam ruang sampel yang lebih besar.

Meringkaskan

Strategi kombinasi ganda RSI dan indikator acak, dengan pemikiran integrasi indikator, memanfaatkan keuntungan masing-masing indikator secara rasional, membentuk efek komplementer. Indikator RSI yang lebih tunggal memiliki presisi pemfilteran sinyal yang lebih tinggi, sehingga mendapatkan sinyal perdagangan yang lebih akurat dan andal. Namun, masih perlu memperhatikan masalah seperti optimasi parameter, manajemen risiko.

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

//@version=2
//Based on Divergences and Hidden Divergences
//Locates bottom market and reversals

strategy("Vix FIX / StochRSI Strategy", pyramiding=9, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=3, overlay=false)

///////////// Stochastic Slow
Stochlength = input(14, minval=1, title="lookback length of Stochastic")
StochOverBought = input(80, title="Stochastic overbought condition")
StochOverSold = input(20, title="Stochastic oversold condition")
smoothK = input(3, title="smoothing of Stochastic %K ")
smoothD = input(3, title="moving average of Stochastic %K")
k = sma(stoch(close, high, low, Stochlength), smoothK)
d = sma(k, smoothD)

 
///////////// RSI 
RSIlength = input( 14, minval=1 , title="lookback length of RSI")
RSIOverBought = input( 70  , title="RSI overbought condition")
RSIOverSold = input( 30  , title="RSI oversold condition")
RSIprice = close
vrsi = rsi(RSIprice, RSIlength)

///////////// Double strategy: RSI strategy + Stochastic strategy

pd = input(22, title="LookBack Period Standard Deviation High")
bbl = input(20, title="Bolinger Band Length")
mult = input(2.0    , minval=1, maxval=5, title="Bollinger Band Standard Devaition Up")
lb = input(50  , title="Look Back Period Percentile High")
ph = input(.85, title="Highest Percentile - 0.90=90%, 0.95=95%, 0.99=99%")
new = input(false, title="-------Text Plots Below Use Original Criteria-------" )
sbc = input(false, title="Show Text Plot if WVF WAS True and IS Now False")
sbcc = input(false, title="Show Text Plot if WVF IS True")
new2 = input(false, title="-------Text Plots Below Use FILTERED Criteria-------" )
sbcFilt = input(true, title="Show Text Plot For Filtered Entry")
sbcAggr = input(true, title="Show Text Plot For AGGRESSIVE Filtered Entry")
ltLB = input(40, minval=25, maxval=99, title="Long-Term Look Back Current Bar Has To Close Below This Value OR Medium Term--Default=40")
mtLB = input(14, minval=10, maxval=20, title="Medium-Term Look Back Current Bar Has To Close Below This Value OR Long Term--Default=14")
str = input(3, minval=1, maxval=9, title="Entry Price Action Strength--Close > X Bars Back---Default=3")
//Alerts Instructions and Options Below...Inputs Tab
new4 = input(false, title="-------------------------Turn On/Off ALERTS Below---------------------" )
new5 = input(false, title="----To Activate Alerts You HAVE To Check The Boxes Below For Any Alert Criteria You Want----")
sa1 = input(false, title="Show Alert WVF = True?")
sa2 = input(false, title="Show Alert WVF Was True Now False?")
sa3 = input(false, title="Show Alert WVF Filtered?")
sa4 = input(false, title="Show Alert WVF AGGRESSIVE Filter?")

//Williams Vix Fix Formula
wvf = ((highest(close, pd)-low)/(highest(close, pd)))*100
sDev = mult * stdev(wvf, bbl)
midLine = sma(wvf, bbl)
lowerBand = midLine - sDev
upperBand = midLine + sDev
rangeHigh = (highest(wvf, lb)) * ph

//Filtered Bar Criteria
upRange = low > low[1] and close > high[1]
upRange_Aggr = close > close[1] and close > open[1]
//Filtered Criteria
filtered = ((wvf[1] >= upperBand[1] or wvf[1] >= rangeHigh[1]) and (wvf < upperBand and wvf < rangeHigh))
filtered_Aggr = (wvf[1] >= upperBand[1] or wvf[1] >= rangeHigh[1]) and not (wvf < upperBand and wvf < rangeHigh)

//Alerts Criteria
alert1 = wvf >= upperBand or wvf >= rangeHigh ? 1 : 0
alert2 = (wvf[1] >= upperBand[1] or wvf[1] >= rangeHigh[1]) and (wvf < upperBand and wvf < rangeHigh) ? 1 : 0
alert3 = upRange and close > close[str] and (close < close[ltLB] or close < close[mtLB]) and filtered ? 1 : 0
alert4 = upRange_Aggr and close > close[str] and (close < close[ltLB] or close < close[mtLB]) and filtered_Aggr ? 1 : 0

//Coloring Criteria of Williams Vix Fix
col = wvf >= upperBand or wvf >= rangeHigh ? lime : gray

isOverBought = (crossover(k,d) and k > StochOverBought) ? 1 : 0
isOverBoughtv2 = k > StochOverBought ? 1 : 0
filteredAlert = alert3 ? 1 : 0
aggressiveAlert = alert4 ? 1 : 0

plot(isOverBought, "Overbought / Crossover", style=line, color=red) 
plot(filteredAlert, "Filtered Alert", style=line, color=fuchsia) 
plot(aggressiveAlert, "Aggressive Alert", style=line, color=orange)

if (filteredAlert or aggressiveAlert)
    strategy.entry("Long", strategy.long)

if (isOverBought)
    strategy.close("Long")