Strategi ini adalah sistem perdagangan pembalikan purata berdasarkan Bollinger Bands, dioptimumkan dengan penapis trend dan mekanisme stop-loss dinamik. Ia menggunakan prinsip statistik untuk memperdagangkan penyimpangan harga daripada purata sambil menggunakan penunjuk teknikal untuk meningkatkan kadar kemenangan dan menguruskan risiko.
Strategi ini dibina di atas beberapa komponen utama:
Strategi ini menggabungkan analisis teknikal klasik dengan kaedah kuantitatif moden. Melalui pengesahan pelbagai penunjuk dan kawalan risiko yang ketat, strategi menunjukkan kepraktisan yang baik. Ujian balik dan perdagangan demo yang menyeluruh disyorkan sebelum pelaksanaan langsung.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-17 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Optimized Bollinger Mean Reversion", overlay=true) // Bollinger Band Settings length = input.int(20, title="BB Length") src = input(close, title="Source") mult = input.float(2.0, title="BB Multiplier") // Bollinger Bands Calculation basis = ta.sma(src, length) dev = mult * ta.stdev(src, length) upper = basis + dev lower = basis - dev // Plot the Bollinger Bands plot(basis, color=color.blue) p1 = plot(upper, color=color.red) p2 = plot(lower, color=color.red) fill(p1, p2, color=color.rgb(41, 98, 255, 90)) // Trend Filter - 50 EMA ema_filter = ta.ema(close, 50) // ATR for Dynamic Stop Loss/Take Profit atr_value = ta.atr(14) // Buy condition - price touches lower band and above 50 EMA buy_condition = ta.crossover(close, lower) and close > ema_filter // Sell condition - price touches upper band and below 50 EMA sell_condition = ta.crossunder(close, upper) and close < ema_filter // Strategy Execution if (buy_condition) strategy.entry("Buy", strategy.long) if (sell_condition) strategy.entry("Sell", strategy.short) // Exit with dynamic ATR-based stop loss and take profit strategy.exit("Take Profit/Stop Loss", from_entry="Buy", limit=2*atr_value, stop=1*atr_value) strategy.exit("Take Profit/Stop Loss", from_entry="Sell", limit=2*atr_value, stop=1*atr_value)