Ini adalah strategi perdagangan pembalikan purata berdasarkan Bollinger Bands. Ia menggabungkan perdagangan pembalikan purata dan mekanisme pengurusan risiko untuk menangkap peluang pembalikan jangka pendek di pasaran trend.
Strategi ini menggunakan 20 hari Bollinger Bands untuk mengenal pasti kawasan harga yang terlalu meluas. Ia pergi pendek apabila harga mendekati band atas dan pergi panjang apabila harga mendekati band bawah, mendapat keuntungan daripada pembalikan akhirnya.
Ia juga menetapkan stop loss dan mengambil keuntungan berdasarkan ATR. Stop loss ditetapkan pada harga memecahkan purata bergerak tolak 2 kali ATR. Ambil keuntungan ditetapkan pada harga ditambah 3 kali ATR. Ini berkesan mengawal risiko setiap perdagangan.
Secara khusus, strategi ini merangkumi:
Kelebihan utama ialah:
Risiko berpotensi termasuk:
Penyelesaian:
Strategi ini boleh dioptimumkan lagi dengan:
Ini akan meningkatkan lagi profil kestabilan dan pulangan.
Ringkasnya, strategi pembalikan rata-rata Bollinger Band dengan penapis trend dan pengurusan risiko telah menunjukkan hasil yang positif. Dengan pengoptimuman dan penambahbaikan yang berterusan, ia berpotensi untuk pulangan yang berlebihan yang stabil dan berkualiti tinggi.
/*backtest start: 2022-12-20 00:00:00 end: 2023-08-10 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Mean Reversion with Risk Management", overlay=true) // Inputs for Bollinger Bands and Risk Management length = input(20, minval=1, title="Bollinger Bands Length") mult = input(2.0, title="Bollinger Bands Multiplier") stopLossATRMult = input(2.0, title="Stop Loss ATR Multiplier") takeProfitATRMult = input(3.0, title="Take Profit ATR Multiplier") // Bollinger Bands Calculation src = close basis = sma(src, length) dev = mult * stdev(src, length) upper = basis + dev lower = basis - dev plot(upper, "Upper Band", color=color.red) plot(lower, "Lower Band", color=color.green) // ATR for Stop Loss and Take Profit atr = atr(14) // Trading Conditions longCondition = crossover(src, lower) shortCondition = crossunder(src, upper) // Order Execution with Stop Loss and Take Profit if (longCondition) sl = src - stopLossATRMult * atr tp = src + takeProfitATRMult * atr strategy.entry("Long", strategy.long, stop=sl, limit=tp) if (shortCondition) sl = src + stopLossATRMult * atr tp = src - takeProfitATRMult * atr strategy.entry("Short", strategy.short, stop=sl, limit=tp)