Strategi ini menggabungkan penggunaan purata bergerak dan Indeks Kekuatan Relatif Stochastic (Stochastic RSI) untuk mencari peluang perdagangan. Khususnya, ia melihat purata bergerak jangka menengah dalam trend menaik dan penunjuk Stochastic RSI yang terlalu banyak dibeli / terlalu banyak dijual untuk membuat keputusan perdagangan apabila kedua-dua isyarat muncul. Penggunaan gabungan ini dapat menapis beberapa isyarat palsu dan meningkatkan kestabilan strategi.
Komponen utama strategi ini ialah:
Mengira dua purata bergerak, MA1 dan MA2, dengan tempoh yang berbeza.
Mengira Indeks Kekuatan Relatif Stochastic (Stochastic RSI). Penunjuk ini menggabungkan RSI dan prinsip-prinsip stochastic untuk menunjukkan sama ada RSI terlalu banyak dibeli atau terlalu banyak dijual.
Isyarat beli dihasilkan apabila RSI stokastik melintasi sempadan oversold, manakala isyarat jual dihasilkan apabila melintasi sempadan overbought.
Masuk panjang apabila isyarat RSI stokastis sejajar dengan purata bergerak yang lebih cepat di atas yang lebih perlahan.
Mengira jumlah risiko dan saiz kedudukan.
Tetapkan harga stop loss dan ambil keuntungan.
Strategi menggabungkan purata bergerak dan RSI stokastik mempunyai kelebihan berikut:
Ia boleh menghasilkan pulangan yang baik di pasaran yang sedang berkembang. Gabungan purata bergerak jangka menengah dan panjang boleh menentukan arah trend pasaran secara keseluruhan.
Stochastic RSI berguna dalam mengenal pasti situasi overbought dan oversold untuk menangkap peluang pembalikan.
Penggunaan gabungan menapis isyarat palsu dan meningkatkan kestabilan.
Kaedah peratusan risiko tetap menguruskan risiko dengan membatasi kerugian tunggal di bawah tahap toleransi.
Hentikan kerugian dan ambil keuntungan kunci dalam keuntungan dan hadkan risiko penurunan.
Terdapat juga beberapa risiko untuk strategi ini:
Dalam pasaran berkisar, purata bergerak gabungan boleh memberikan isyarat palsu. Stop loss harus digunakan untuk mengawal risiko.
Stochastic RSI sensitif terhadap pergerakan harga yang tidak menentu dan juga boleh memberikan isyarat palsu kadang-kadang.
Peruntukan risiko tetap tidak dapat mengelakkan sepenuhnya kerugian besar.
Dalam senario turun naik yang melampau, harga stop loss / keuntungan yang munasabah tidak tersedia. campur tangan manual diperlukan.
Strategi ini boleh dioptimumkan lagi dalam aspek berikut:
Uji lebih banyak kombinasi parameter untuk mencari tempoh optimum.
Cuba menggabungkan purata bergerak dengan penunjuk lain seperti KDJ, MACD dan lain-lain.
Uji dan optimum di pelbagai instrumen perdagangan.
Menggunakan model pembelajaran mesin untuk mengoptimumkan parameter secara dinamik dari masa ke masa terhadap pasaran yang berubah.
Strategi gabungan purata bergerak dan RSI stokastik mengenal pasti trend dengan purata bergerak dan tahap pembalikan dengan RSI stokastik untuk membentuk isyarat perdagangan, bersama dengan stop loss / keuntungan dan kawalan risiko untuk membentuk logika strategi yang kukuh. Rangka kerja gabungan yang mudah dan praktikal ini boleh diuji dan dioptimumkan lebih lanjut di lebih banyak instrumen dan set parameter.
/*backtest start: 2023-01-09 00:00:00 end: 2024-01-15 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Moving Average and Stochastic RSI Strategy", shorttitle="MA+Stoch RSI", overlay=true) // Input variables ma1_length = input.int(20, title="MA1 Length") ma2_length = input.int(50, title="MA2 Length") stoch_length = input.int(14, title="Stochastic RSI Length") overbought = input.int(80, title="Overbought Level") oversold = input.int(20, title="Oversold Level") risk_percentage = input.float(2.0, title="Risk Percentage") // Calculate moving averages ma1 = ta.sma(close, ma1_length) ma2 = ta.sma(close, ma2_length) // Calculate Stochastic RSI rsi1 = ta.rsi(close, stoch_length) rsiH = ta.highest(rsi1, stoch_length) rsiL = ta.lowest(rsi1, stoch_length) stoch = (rsi1 - rsiL) / (rsiH - rsiL) * 100 // Determine buy and sell signals based on Stochastic RSI buySignal = ta.crossover(stoch, oversold) sellSignal = ta.crossunder(stoch, overbought) // Plot signals on the chart plotshape(buySignal, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small) plotshape(sellSignal, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small) // Calculate position size based on equity and risk percentage equity = strategy.equity riskAmount = equity * risk_percentage / 100 positionSize = riskAmount / ta.atr(14) // Entry and exit conditions var float stopLoss = na var float takeProfit = na if buySignal stopLoss := low takeProfit := high strategy.entry("Buy", strategy.long) else if sellSignal strategy.exit("Sell", from_entry="Buy", stop=stopLoss, limit=takeProfit)