Эта стратегия представляет собой динамическую систему трейдинга, основанную на индикаторах Bollinger Bands и RSI. Она сочетает в себе анализ волатильности Bollinger Bands с подтверждением импульса RSI для создания комплексной структуры для принятия решений о торговле. Стратегия поддерживает многонаправленный контроль торговли и может гибко выбирать длинную, короткую или двунаправленную торговлю на основе рыночных условий. Система использует соотношение риск-вознаграждение для точного контроля целей стоп-лосса и прибыли для каждой торговли, достигая систематического управления торговлей.
Основной принцип стратегии заключается в выявлении высоковероятных возможностей для торговли через множество подтверждений сигналов.
Это хорошо разработанная стратегия торговли с прозрачной логикой. Благодаря многочисленным подтверждениям сигналов и комплексным механизмам управления рисками стратегия демонстрирует хорошую практичность. Между тем, стратегия обеспечивает богатый потенциал оптимизации и может быть специально улучшена на основе торговых инструментов и рыночной среды. Рекомендуется проводить тщательную оптимизацию параметров и бэкстестинг перед живой торговлей.
/*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")