Strategi ini adalah sistem perdagangan kuantitatif berdasarkan teori pembalikan purata, menggabungkan Bollinger Band, penunjuk RSI, dan mekanisme stop-loss dinamik berasaskan ATR. Strategi ini berdagang dengan mengenal pasti penyimpangan harga yang melampau dari purata, pergi lama apabila harga menyentuh Bollinger Band yang lebih rendah dan RSI berada di wilayah oversold, dan pergi pendek apabila harga menyentuh Bollinger Band atas dan RSI berada di wilayah overbought, sambil menggunakan ATR untuk menetapkan tahap stop-loss dan mengambil keuntungan secara dinamik untuk pengurusan ganjaran risiko yang berkesan.
Strategi ini menggunakan Bollinger Bands 20 tempoh sebagai penunjuk trend utama, dengan pengganda penyimpangan standard 2.0 untuk menentukan sempadan pergerakan harga. RSI 14 tempoh dimasukkan sebagai penunjuk tambahan, dengan bacaan di bawah 30 dianggap terlalu banyak dijual dan di atas 70 dianggap terlalu banyak dibeli. Posisi panjang dimulakan apabila harga pecah di bawah band bawah dan RSI di bawah 30, menunjukkan keadaan oversold yang berpotensi, sementara kedudukan pendek diambil apabila harga pecah di atas band atas dan RSI di atas 70, menunjukkan keadaan overbought yang berpotensi. Band tengah berfungsi sebagai tahap mengambil keuntungan, digabungkan dengan isyarat pembalikan RSI untuk pengurusan kedudukan.
Strategi ini membina sistem perdagangan pembalikan purata yang komprehensif melalui aplikasi gabungan Bollinger Bands dan RSI. Pengenalan hentian dinamik berasaskan ATR berkesan mengawal risiko, memberikan ciri-ciri risiko-balasan yang menguntungkan. Walaupun terdapat ruang untuk pengoptimuman, konsep reka bentuk keseluruhan jelas dan praktikal. Pedagang dinasihatkan untuk menyesuaikan parameter mengikut ciri pasaran tertentu dan terus memantau prestasi strategi semasa melaksanakan dalam perdagangan langsung.
/*backtest start: 2024-11-19 00:00:00 end: 2024-11-26 00:00:00 period: 15m basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("SOL/USDT Mean Reversion Strategy", overlay=true) // Input parameters length = input(20, "Bollinger Band Length") std_dev = input(2.0, "Standard Deviation") rsi_length = input(14, "RSI Length") rsi_oversold = input(30, "RSI Oversold") rsi_overbought = input(70, "RSI Overbought") // Calculate indicators [middle, upper, lower] = ta.bb(close, length, std_dev) rsi = ta.rsi(close, rsi_length) // Entry conditions long_entry = close < lower and rsi < rsi_oversold short_entry = close > upper and rsi > rsi_overbought // Exit conditions long_exit = close > middle or rsi > rsi_overbought short_exit = close < middle or rsi < rsi_oversold // Strategy execution if (long_entry) strategy.entry("Long", strategy.long) if (short_entry) strategy.entry("Short", strategy.short) if (long_exit) strategy.close("Long") if (short_exit) strategy.close("Short") // Stop loss and take profit atr = ta.atr(14) strategy.exit("Long SL/TP", "Long", stop=strategy.position_avg_price - 2*atr, limit=strategy.position_avg_price + 3*atr) strategy.exit("Short SL/TP", "Short", stop=strategy.position_avg_price + 2*atr, limit=strategy.position_avg_price - 3*atr) // Plot indicators plot(middle, color=color.yellow, title="BB Middle") plot(upper, color=color.red, title="BB Upper") plot(lower, color=color.green, title="BB Lower") // Plot entry and exit points plotshape(long_entry, title="Long Entry", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small) plotshape(short_entry, title="Short Entry", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small) plotshape(long_exit, title="Long Exit", location=location.abovebar, color=color.orange, style=shape.circle, size=size.small) plotshape(short_exit, title="Short Exit", location=location.belowbar, color=color.orange, style=shape.circle, size=size.small)