Esta estratégia é um sistema de negociação de breakout dinâmico baseado em Bollinger Bands e indicadores RSI. Combina a análise de volatilidade Bollinger Bands com a confirmação do impulso RSI para construir uma estrutura de decisão de negociação abrangente. A estratégia suporta controle de negociação multidirecional e pode escolher flexivelmente negociação longa, curta ou bidirecional com base nas condições do mercado. O sistema usa uma relação risco-recompensa para controlar com precisão as metas de stop-loss e lucro para cada negociação, alcançando uma gestão sistemática da negociação.
O princípio central da estratégia é identificar oportunidades de negociação de ruptura de alta probabilidade através de múltiplas confirmações de sinal.
Esta é uma estratégia de negociação de breakout bem projetada com lógica clara. Através de múltiplas confirmações de sinal e mecanismos abrangentes de gerenciamento de risco, a estratégia mostra boa praticidade. Enquanto isso, a estratégia oferece um rico potencial de otimização e pode ser especificamente melhorada com base em instrumentos de negociação e ambientes de mercado. Recomenda-se realizar otimização completa de parâmetros e backtesting antes da negociação ao vivo.
/*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")