Strategi ini adalah sistem perdagangan pecah dinamik berdasarkan Bollinger Bands dan penunjuk RSI. Ia menggabungkan analisis turun naik Bollinger Bands
Prinsip teras strategi ini adalah untuk mengenal pasti peluang perdagangan breakout berkemungkinan tinggi melalui pengesahan isyarat berbilang. 1. Menggunakan Bollinger Bands sebagai penunjuk isyarat pecah utama, mencetuskan isyarat perdagangan apabila harga pecah di atas atau di bawah band 2. Menggabungkan RSI sebagai penunjuk pengesahan momentum, yang memerlukan nilai RSI untuk menyokong arah pecah (RSI> 50 untuk pecah ke atas, RSI < 50 untuk pecah ke bawah) 3. Kawalan arah perdagangan melalui parameter trade_direction, yang membolehkan pemilihan perdagangan unidirectional atau bidirectional berdasarkan trend pasaran 4. Mengambil stop-loss nisbah tetap (2%) dan nisbah risiko-balasan dinamik (default 2: 1) untuk menguruskan risiko dan ganjaran untuk setiap perdagangan 5. Menetapkan mekanisme pengurusan kedudukan yang lengkap, termasuk kawalan masuk yang tepat, hentian kerugian, dan mengambil keuntungan
Ini adalah strategi perdagangan pecah yang direka dengan baik dengan logik yang jelas. Melalui pengesahan isyarat berganda dan mekanisme pengurusan risiko yang komprehensif, strategi menunjukkan kepraktisan yang baik. Sementara itu, strategi ini memberikan potensi pengoptimuman yang kaya dan dapat ditingkatkan secara khusus berdasarkan instrumen perdagangan dan persekitaran pasaran. Adalah disyorkan untuk melakukan pengoptimuman parameter yang menyeluruh dan pengujian semula sebelum perdagangan langsung.
/*backtest start: 2023-12-05 00:00:00 end: 2024-12-04 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bollinger Breakout Strategy with Direction Control", overlay=true) // === Input Parameters === length = input(20, title="Bollinger Bands Length") src = close mult = input(2.0, title="Bollinger Bands Multiplier") rsi_length = input(14, title="RSI Length") rsi_midline = input(50, title="RSI Midline") risk_reward_ratio = input(2.0, title="Risk/Reward Ratio") // === Trade Direction Option === trade_direction = input.string("Both", title="Trade Direction", options=["Long", "Short", "Both"]) // === Bollinger Bands Calculation === basis = ta.sma(src, length) dev = mult * ta.stdev(src, length) upper_band = basis + dev lower_band = basis - dev // === RSI Calculation === rsi_val = ta.rsi(src, rsi_length) // === Breakout Conditions === // Long: Prijs sluit boven de bovenste Bollinger Band en RSI > RSI Midline long_condition = close > upper_band and rsi_val > rsi_midline and (trade_direction == "Long" or trade_direction == "Both") // Short: Prijs sluit onder de onderste Bollinger Band en RSI < RSI Midline short_condition = close < lower_band and rsi_val < rsi_midline and (trade_direction == "Short" or trade_direction == "Both") // === Entry Prices === var float entry_price_long = na var float entry_price_short = na if (long_condition) entry_price_long := close strategy.entry("Long", strategy.long, when=long_condition) if (short_condition) entry_price_short := close strategy.entry("Short", strategy.short, when=short_condition) // === Stop-Loss and Take-Profit === long_stop_loss = entry_price_long * 0.98 // 2% onder instapprijs long_take_profit = entry_price_long * (1 + (0.02 * risk_reward_ratio)) short_stop_loss = entry_price_short * 1.02 // 2% boven instapprijs short_take_profit = entry_price_short * (1 - (0.02 * risk_reward_ratio)) if (strategy.position_size > 0) // Long Positie strategy.exit("Exit Long", "Long", stop=long_stop_loss, limit=long_take_profit) if (strategy.position_size < 0) // Short Positie strategy.exit("Exit Short", "Short", stop=short_stop_loss, limit=short_take_profit) // === Plotting === plot(upper_band, color=color.green, title="Upper Band") plot(lower_band, color=color.red, title="Lower Band") plot(basis, color=color.blue, title="Basis")