Strategi ini mengintegrasikan Bollinger Bands, Indeks Kekuatan Relatif (RSI) dan Purata Bergerak (MA) untuk mengenal pasti titik masuk dan keluar yang berpotensi di pasaran.
Strategi ini menggunakan dua Bollinger Band dengan parameter yang berbeza untuk membuat saluran harga. Parameter lalai adalah panjang 20 tempoh dan penyimpangan standard 2. Band atas dan bawah berfungsi sebagai tahap rintangan dan sokongan dinamik.
Indikator RSI mengukur kekuatan momentum harga. nilainya digunakan untuk menentukan sama ada keadaan overbought atau oversold wujud.
Purata bergerak 50 tempoh dimasukkan untuk mengenal pasti arah trend keseluruhan. Apabila harga di atas MA, ia mencadangkan trend menaik. Apabila harga di bawah MA, ia mencadangkan trend menurun.
Syarat kemasukan untuk perdagangan panjang adalah apabila RSI melebihi tahap overbought dan Bollinger Bands tidak menyusut. Untuk perdagangan pendek, adalah apabila RSI turun di bawah tahap oversold dan Bollinger Bands tidak menyusut.
Syarat keluar untuk perdagangan panjang adalah apabila RSI jatuh di bawah tahap overbought atau apabila harga ditutup di bawah 50-period MA. Untuk perdagangan pendek adalah apabila RSI meningkat di atas tahap oversold atau apabila harga ditutup di atas 50-period MA.
Menggabungkan Bollinger Bands, RSI dan MA mengelakkan penjanaan isyarat palsu dengan isyarat pengesahan silang.
Bollinger Bands mengenal pasti paras tertinggi/rendah tempatan dan mengesahkan penembusan. RSI menapis penembusan palsu. MA menentukan trend keseluruhan. Isyarat disahkan.
Parameter Bollinger Bands yang dioptimumkan menggunakan dua penyimpangan standard menggambarkan saluran harga dengan lebih tepat.
RSI juga neutral dan perdagangan harus dielakkan.
RSI dan MA boleh menghasilkan isyarat yang salah semasa pasaran julat.
Jurang harga tidak dapat ditangani dengan berkesan.
Mengoptimumkan parameter Bollinger Bands dan RSI untuk produk dan jangka masa yang berbeza.
Tambah perintah stop loss yang mencetuskan secara automatik apabila harga melanggar paras berhenti.
Tambah penapis trend seperti ADX untuk mengelakkan perdagangan yang tidak cekap semasa pasaran berkisar.
Mengintegrasikan dengan sistem perdagangan automatik untuk melaksanakan isyarat secara automatik tanpa campur tangan manual.
Strategi ini menggabungkan kekuatan Bollinger Bands, RSI dan MA dengan parameter yang dioptimumkan untuk meningkatkan ketepatan isyarat. Ia boleh secara automatik menjana amaran perdagangan untuk pelaksanaan. Risiko utama berasal dari isyarat palsu semasa pasaran berkisar. Menambah penapis trend dapat mengurangkan perdagangan yang tidak cekap. Secara keseluruhan, dengan menggunakan pengoptimuman parameter dan mengintegrasikan beberapa penunjuk, strategi ini meningkatkan kualiti isyarat dan bernilai disahkan dalam pasaran langsung untuk digunakan.
/*backtest start: 2023-01-26 00:00:00 end: 2024-02-01 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bollinger Bands, RSI, and MA Strategy", overlay=true) // Define input variables b_len = input(20, title="BB Length") bb_mult = input(2.0, title="BB Standard Deviation") bb_deviation1 = input(1.0, title="BB Deviation 1") rsi_len = input(14, title="RSI Length") overbought = input(70, title="Overbought RSI Level") oversold = input(30, title="Oversold RSI Level") ma_len = input(50, title="MA Length") stop_loss_percent = input(1.0, title="Stop Loss Percentage") source = input(close, title="Source") // Calculate Bollinger Bands bb_upper = ta.sma(source, b_len) + bb_mult * ta.stdev(source, b_len) bb_lower = ta.sma(source, b_len) - bb_mult * ta.stdev(source, b_len) bb_upper1 = ta.sma(source, b_len) + bb_deviation1 * ta.stdev(source, b_len) bb_lower1 = ta.sma(source, b_len) - bb_deviation1 * ta.stdev(source, b_len) // Calculate RSI rsi = ta.rsi(source, rsi_len) // Calculate Moving Average ma = ta.sma(source, ma_len) // Determine if Bollinger Bands are contracting bb_contracting = ta.stdev(source, b_len) < ta.stdev(source, b_len)[1] // Entry conditions enterLong = rsi > overbought and not bb_contracting enterShort = rsi < oversold and not bb_contracting // Exit conditions exitLong = close < ma exitShort = close > ma // Exit trades and generate alerts if strategy.position_size > 0 and exitLong strategy.close("Long") // Exit the long trade alert("Long Exit", alert.freq_once_per_bar_close) if strategy.position_size < 0 and exitShort strategy.close("Short") // Exit the short trade alert("Short Exit", alert.freq_once_per_bar_close) // Strategy orders if enterLong strategy.entry("Long", strategy.long) if enterShort strategy.entry("Short", strategy.short) if exitLong strategy.close("Long") if exitShort strategy.close("Short") // Plotting Bollinger Bands plot(bb_upper, color=color.blue, title="BB Upper 2") plot(bb_lower, color=color.blue, title="BB Lower 2") plot(bb_upper1, color=color.red, title="BB Upper 1") plot(bb_lower1, color=color.red, title="BB Lower 1") // Plotting RSI plot(rsi, color=color.orange, title="RSI") // Plotting Moving Average plot(ma, color=color.green, title="Moving Average")