
A estratégia é um sistema de negociação quantitativa que combina o conceito de fundos inteligentes (SMC) e breakouts de Bollinger Bands, aumentando a confiabilidade dos sinais de negociação por meio de mecanismos de confirmação dinâmica. O núcleo da estratégia é a identificação de situações em que o preço quebra o Bollinger Bands e desvia-se, ao mesmo tempo em que exige a transformação da estrutura do mercado (MSS) sinais e, seletivamente, a confirmação de tendências de alto ciclo de tempo. Além disso, com a introdução de filtros de quantidade de impulso, que exigem que os sinais de entrada tenham uma dinâmica de preço suficientemente forte, aumenta significativamente a taxa de ganho e risco-retorno da estratégia.
A estratégia funciona com base na sinergia de três componentes tecnológicos centrais:
Índice de Cinturão de BrinO padrão de diferença é usado para calcular a amplitude de oscilação dos preços, formando um trajeto superior, um trajeto inferior e um trajeto intermediário. Quando o preço se aproxima do trajeto superior, um sinal de cotação é gerado, e quando ele se aproxima do trajeto inferior, um sinal de cotação é gerado.
O conceito de dinheiro inteligente (SMC):
Mecanismo de confirmação de potência: o requisito de que a parte de ativos de entrada da barra de entrada represente a proporção da altura total atingindo um determinado valor de queda (default de 70%), garantindo que a ruptura de preço tenha energia suficiente. Veja a barra de movimentos de queda em verde e a barra de movimentos de queda em vermelho.
Condições de entrada:
Condições de partida:
Em termos de gestão de fundos, a estratégia utiliza um método de controlo de risco baseado no valor líquido da conta, limitando cada transação a 5% do valor líquido da conta, para controlar o limite máximo de risco de uma única transação.
Mecanismo de confirmação múltiplaA combinação de rupturas nas faixas de Brin, transformação da estrutura do mercado e confirmação de dinâmica, formando um mecanismo de filtragem de sinal de negociação em vários níveis, reduz significativamente os sinais falsos.
Combinação de tendência e dinâmicaA estratégia não se concentra apenas na mudança de tendência (via Brinks e MSS), mas também na dinâmica dos preços (via Dynamic Stack), que permite a combinação perfeita de acompanhamento de tendências e captura de dinâmica.
Sinergia de ciclo de tempoA função de confirmação de tendências de alto período de tempo opcional (o nível de linha solar é o padrão) evita efetivamente a negociação de contrapartida e aumenta a taxa de sucesso da negociação de contrapartida.
Intuição visualA estratégia fornece uma ajuda visual clara, incluindo a faixa de Brin, a linha de bloco de pedidos, a linha de ponto alto e baixo de oscilação e a marcação colorida do ângulo de força, permitindo que os comerciantes entendam intuitivamente o estado do mercado.
Flexível e ajustávelOs parâmetros da estratégia são altamente personalizáveis, incluindo o comprimento da faixa de Brin, o número de diferenciais padrão, o comprimento de retrocesso do bloco de pedidos, o comprimento de retrocesso de oscilação e o valor de diminuição do volume, para adaptar-se a diferentes ambientes de mercado.
Gerenciamento inteligente de fundosA aplicação de métodos de controlo de posições baseados na proporção do valor líquido da conta, a gestão eficaz do risco e a prevenção de perdas excessivas por transação única.
Risco de otimização excessivaA estratégia inclui vários parâmetros ajustáveis, como o comprimento da faixa de Bryn ((55), o número de divisões de diferença padrão ((2.0)), o comprimento de regressão, etc., o que pode levar a otimização excessiva dos parâmetros, gerando problemas de ajuste de curva. A solução é testada para robustez em diferentes períodos de tempo e ambientes de mercado.
Problemas de atrasoA solução é combinar a análise do comportamento dos preços com outros indicadores de liderança para auxiliar o julgamento.
Risco de reversão de tendênciaA solução é adicionar um mecanismo de detecção de reversão de tendência ou suspender a negociação em condições de mercado extremas.
Desafios de gestão de fundosA distribuição de capital de 5% fixo pode ser um risco excessivo em mercados com maior volatilidade. A solução é ajustar dinamicamente a proporção de distribuição de capital, ajustando-se de acordo com a volatilidade do mercado.
Risco de liquidezEm mercados com pouca liquidez, os blocos de ordens e as áreas de liquidez podem não ser suficientemente precisos. A solução é adicionar um mecanismo de confirmação de volume de transação ou aplicar a estratégia apenas em mercados com muita liquidez.
Ajuste de parâmetros dinâmicosPode-se introduzir um mecanismo de adaptação que ajuste automaticamente o parâmetro de diferença padrão e o parâmetro de comprimento da faixa de brinquedos de acordo com a volatilidade do mercado, para que a estratégia se adapte melhor a diferentes circunstâncias de mercado. Isso pode resolver o problema de que os parâmetros estáticos se comportam de forma diferente em diferentes condições de mercado.
Identificação de tendênciasPode-se introduzir indicadores de tendência adicionais, como o DMI ou o ADX, para confirmar ainda mais a força da tendência e evitar o excesso de negociação em mercados de tendência fraca.
Melhorias no mecanismo de partidaOs mecanismos de saída atuais são relativamente simples, e é possível considerar a introdução de saídas mais flexíveis, tais como trailing stop loss, crossover de média móvel ou stop loss de múltiplos ATR, para melhor proteger os lucros.
Análise de tráfego integradaIncorporar um mecanismo de confirmação de volume de transação na estratégia, exigindo que a ruptura de preço acompanhe o aumento significativo do volume de transação, melhorando ainda mais a qualidade do sinal. O volume de transação é um importante indicador de participação no mercado, que pode efetivamente verificar a veracidade da dinâmica de preços.
Introdução do filtro de tempo: Os mercados apresentam características diferentes em diferentes períodos de negociação, pode ser adicionado um filtro de tempo, para evitar a geração de sinais em determinados períodos de negociação ineficaz (como o período de liquidação asiática).
Optimizar a gestão de fundosPode ser introduzido um método de cálculo de posições baseado no ATR, ajustando a abertura de risco de acordo com a dinâmica de volatilidade do mercado, reduzindo a exposição em mercados de alta volatilidade e aumentando adequadamente as posições em mercados de baixa volatilidade.
A estratégia de integração do conceito de capital inteligente com a ruptura do cinturão de Brin é uma estratégia de negociação integrada que combina análise técnica e teoria da estrutura de mercado. A estratégia capta a dinâmica de preços através do rompimento do cinturão de Brin, usa a teoria do SMC para identificar mudanças nos níveis de preços e na estrutura de mercado e aumenta a confiabilidade do sinal através de filtros de filtragem de volume. O mecanismo de confirmação de sinal em vários níveis reduz significativamente os falsos sinais, enquanto a confirmação de tendências de alto ciclo de tempo opcional ajuda a evitar a negociação contracorrente.
Apesar da clara lógica e dos múltiplos benefícios da estratégia, os comerciantes precisam estar cientes dos seus riscos potenciais, incluindo o risco de otimização de parâmetros, problemas de atraso e risco de reversão de tendência. A robustez e adaptabilidade da estratégia podem ser ainda melhoradas com a introdução de medidas de otimização, como o ajuste de parâmetros dinâmicos, o aumento da identificação de tendências, a melhoria dos mecanismos de saída e a integração da análise de volume de negócios.
Finalmente, os comerciantes devem lembrar que não há estratégia de negociação perfeita, a chave é entender a lógica central da estratégia, gerenciar o risco racionalmente e ajustar-se de forma flexível a diferentes condições de mercado. Antes da aplicação real, é recomendável realizar um bom teste de retrospectiva e prospectiva para verificar o desempenho da estratégia em diferentes condições de mercado.
/*backtest
start: 2025-01-01 00:00:00
end: 2025-04-09 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=6
strategy('02 SMC + BB Breakout v4 + Momentum Color', overlay=true, initial_capital=100000)
// Inputs
length = input.int(55, title='Bollinger Bands Length')
mult = input.float(2.0, title='Standard Deviation Multiplier')
higher_tf = input.timeframe('1D', title='Higher Timeframe Confirmation')
confirm_trend = input.bool(true, title='Use Higher Timeframe Trend')
show_smc = input.bool(true, title='Show SMC Elements')
ob_length = input.int(20, title="Order Block Lookback", minval=5)
swing_length = input.int(12, title="Swing Lookback", minval=5)
momentum_filter = input.bool(true, title="Require Momentum Candle for Entry")
momentum_body_percent = input.float(70, title="Momentum Candle Body %", minval=1, maxval=100) / 100.0 // Percentage of the candle's range that must be the body
// Bollinger Bands Calculation
basis = ta.sma(close, length)
upper_band = basis + mult * ta.stdev(close, length)
lower_band = basis - mult * ta.stdev(close, length)
// Higher Timeframe Confirmation
higher_tf_close = request.security(syminfo.tickerid, higher_tf, close)
higher_tf_sma = ta.sma(higher_tf_close, length)
higher_tf_trend = higher_tf_close > higher_tf_sma
// Smart Money Concepts (SMC)
// Order Blocks (Simplified as recent price clusters)
order_block_high = ta.highest(high, ob_length)
order_block_low = ta.lowest(low, ob_length)
// Liquidity Zones
recent_swing_high = ta.highest(high, swing_length)
recent_swing_low = ta.lowest(low, swing_length)
// Market Structure Shift (MSS)
previous_high = ta.valuewhen(high > ta.highest(high[1], swing_length), high[1], 0)
previous_low = ta.valuewhen(low < ta.lowest(low[1], swing_length), low[1], 0)
shift_to_bullish = close > previous_high
shift_to_bearish = close < previous_low
// Momentum Candle Check (Strong Body)
candle_range = high - low
candle_body = math.abs(close - open)
body_percentage = candle_range > 0 ? candle_body / candle_range : 0 // Avoid division by zero if range is 0
long_momentum = body_percentage >= momentum_body_percent and close > open
short_momentum = body_percentage >= momentum_body_percent and close < open
// --- START: Momentum Candle Coloring ---
// Use color.lime for a neon green effect and color.red for neon red.
bullish_momentum_color = long_momentum ? color.lime : na
bearish_momentum_color = short_momentum ? color.red : na
barcolor(bullish_momentum_color, title="Bullish Momentum Candle")
barcolor(bearish_momentum_color, title="Bearish Momentum Candle")
// --- END: Momentum Candle Coloring ---
// Entry Conditions
long_condition = ta.crossover(close, upper_band) and (not confirm_trend or higher_tf_trend) and shift_to_bullish and (not momentum_filter or long_momentum)
short_condition = ta.crossunder(close, lower_band) and (not confirm_trend or not higher_tf_trend) and shift_to_bearish and (not momentum_filter or short_momentum)
// Exit Conditions (TWEAKED)
exit_long = ta.crossunder(close, basis) or close < (order_block_low * 0.99)
exit_short = ta.crossover(close, basis) or close > (order_block_high * 1.01)
// Calculate 5% of equity for position size
risk_percent = 5.0 // Use float for percentage calculation
capital_per_trade = (strategy.equity * risk_percent) / 100
trade_qty = capital_per_trade / close
trade_qty := trade_qty < 0.000001 ? 0.000001 : trade_qty // Ensure minimum trade quantity if calculated qty is too small
// Strategy Execution
if long_condition
strategy.entry('Long', strategy.long, qty=trade_qty)
if short_condition
strategy.entry('Short', strategy.short, qty=trade_qty)
if exit_long
strategy.close('Long', comment="Exit Long")
if exit_short
strategy.close('Short', comment="Exit Short")
// Plotting Bollinger Bands (Improved)
p1 = plot(upper_band, color=color.rgb(76, 175, 80), title='Upper BB', linewidth=2)
p2 = plot(lower_band, color=color.rgb(244, 67, 54), title='Lower BB', linewidth=2)
plot(basis, color=color.rgb(33, 150, 243), title='Basis BB', linewidth=2)
//plot entry and exit shapes
plotshape(long_condition, title="Long Entry", location=location.belowbar, color=color.new(color.green, 0), style=shape.triangleup, size=size.small)
plotshape(short_condition, title="Short Entry", location=location.abovebar, color=color.new(color.red, 0), style=shape.triangledown, size=size.small)