Strategi ini menjana isyarat perdagangan berdasarkan penunjuk Bollinger Bands %B. Ia menjadi panjang apabila nilai %B jatuh di bawah ambang yang telah ditetapkan dan menggunakan pendekatan purata kedudukan dinamik untuk mengikuti trend sehingga mengambil keuntungan atau menghentikan kerugian. Strategi ini sesuai untuk mengenal pasti peluang menarik balik selepas sokongan Bollinger Band yang lebih rendah dipecahkan.
Kelebihan strategi ini ialah:
Terdapat juga beberapa risiko yang berkaitan dengan strategi ini:
Penyelesaian:
Strategi ini boleh dioptimumkan lagi dalam bidang berikut:
Secara keseluruhan, ini adalah strategi perdagangan jangka panjang yang agak kukuh. Terdapat ruang untuk penambahbaikan dalam ketepatan isyarat dan penyesuaian parameter. Apabila digabungkan dengan penapisan isyarat tambahan dan ukuran kedudukan yang berhati-hati, strategi ini dapat mencapai hasil yang baik di pasaran trend.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bollinger Bands %B Long Strategy", shorttitle="BB %B Long Strategy", overlay=true) // Girdiler length = input.int(20, title="BB Length") src = input(close, title="Source") dev = input.float(2.0, title="Deviation") kar_hedefi = input(5, title="Take Profit") zarar_durumu = input(100, title="Stop Loss") start_date = input(timestamp("01 Jan 2023 00:00 +0000"), "Start Date") end_date = input(timestamp("01 Jan 2024 00:00 +0000"), "End Date") altinda_kalirsa_long = input.float(0, title="hangi degerin altinda long alsin") // Bollinger Bantları %B göstergesi basis = ta.sma(src, length) stdDev = ta.stdev(src, length) upperBand = basis + dev * stdDev lowerBand = basis - dev * stdDev percentB = (src - lowerBand) / (upperBand - lowerBand) // Alım-Satım Sinyalleri longCondition = percentB < altinda_kalirsa_long // Kar/Zarar Hesaplama takeProfit = strategy.position_avg_price * (1 + kar_hedefi / 100) stopLoss = strategy.position_avg_price * (1 - zarar_durumu / 100) // Long (Alım) İşlemi if (longCondition ) strategy.entry("Long", strategy.long) strategy.exit("Take Profit/Stop Loss", "Long", limit=takeProfit, stop=stopLoss) // Take Profit Seviyesi Çizgisi plot(takeProfit, title="Take Profit", color=color.green, linewidth=1, style=plot.style_linebr)