A Estratégia Dinâmica de Breakout do Canal de Suporte e Resistência é uma estratégia poderosa para identificar os principais níveis de suporte e resistência e sinais de breakout.
A estratégia calcula dinamicamente os níveis de suporte e resistência com base nas barras esquerda e direita definidas pelo usuário. Isso fornece flexibilidade para se adaptar às condições de mercado em mudança. Gerar sinais de compra e venda quando o preço de fechamento cruza esses níveis de suporte e resistência, juntamente com confirmação de volume. Além disso, a estratégia integra a execução automatizada de posições LONG / SHORT com base nas condições definidas de suporte e resistência, simplificando o processo geral de negociação.
Especificamente, a estratégia calcula os níveis dinâmicos de suporte e resistência usando as funções ta.pivotlow e ta.pivothigh. Estas linhas de suporte e resistência são traçadas em cores vermelhas e azuis no gráfico. Quando o preço de fechamento atravessa esses níveis, marcas de forma
A estratégia apresenta as seguintes vantagens:
Em geral, a estratégia identifica, visualiza e capitaliza de forma abrangente os principais pontos de ruptura de suporte e resistência, facilitando muito os traders na seleção do momento de negociação ideal e melhorando significativamente as chances de sucesso da negociação.
Os riscos potenciais da estratégia incluem principalmente:
Risco de ruptura inválido. Os pontos de ruptura podem formar falsas rupturas, levando a perdas desnecessárias. Isto pode ser mitigado estabelecendo requisitos de confirmação de volume e flutuação de preços mais rigorosos.
Risco de otimização de parâmetros. Níveis de suporte e resistência imprecisos podem ser calculados se as barras esquerda/direita etc. forem definidas de forma inadequada. As barras esquerda/direita adequadas devem ser selecionadas de acordo com as características de negociação de diferentes produtos.
Risco de otimização excessiva. A otimização excessiva de parâmetros pode levar a sobreajuste. Deve ser realizado um backtesting e validação adequados para evitar a otimização excessiva em dados limitados.
Risco de custos de transacção. O comércio frequente pode conduzir a comissões mais elevadas.
A estratégia pode ser reforçada nos seguintes aspectos:
Adicionar condições de stop loss para controlar perdas individuais.
Otimizar os fatores de lucro para determinar os pontos de lucro ideais.
Teste diferentes combinações de parâmetros para determinar os parâmetros ideais.
Ajustar as configurações da barra esquerda/direita com base em diferentes produtos.
Adicionar outros filtros, por exemplo, a volatilidade dos preços para melhor avaliar a probabilidade de ruptura.
Tente diferentes indicadores de confirmação de volume, por exemplo, breakouts de alto volume.
Incorporar outras estratégias ou indicadores para uma melhor integração.
A estratégia de ruptura do canal de suporte e resistência dinâmica aproveita os conceitos de suporte e resistência da análise de gráficos técnicos, juntamente com a análise de volume para confirmar a importância das rupturas, para descobrir efetivamente pontos críticos no mercado. Seu design de interface simples, mas elegante, traçamento de indicadores e sinais solicitam barreiras técnicas muito mais baixas. Enquanto isso, as configurações de parâmetros personalizáveis e integráveis facilitam a incorporação com as próprias estratégias dos traders. Em resumo, esta é uma estratégia quantitativa de negociação abrangente e altamente prática.
/*backtest start: 2024-01-10 00:00:00 end: 2024-01-17 00:00:00 period: 30m basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Support and Resistance channel with Breaks p5", shorttitle="Support and Resistance channel with Breaks [cryptoonchain]", overlay=true, max_bars_back=1000) // Input variables toggleBreaks = input(true, title="Show Breaks") leftBars = input(15, title="Left Bars") rightBars = input(15, title="Right Bars") volumeThresh = input(20, title="Volume Threshold") // Calculate pivot levels highUsePivot = fixnan(ta.pivothigh(leftBars, rightBars)[1]) lowUsePivot = fixnan(ta.pivotlow(leftBars, rightBars)[1]) // Plot resistance and support lines r1 = plot(highUsePivot, color=color.new(na(highUsePivot) ? na : #FF0000, 0), linewidth=3, offset=-(rightBars + 1), title="Resistance") s1 = plot(lowUsePivot, color=color.new(na(lowUsePivot) ? na : #233dee, 0), linewidth=3, offset=-(rightBars + 1), title="Support") // Volume % short = ta.ema(volume, 5) long = ta.ema(volume, 10) osc = 100 * (short - long) / long // Plot shapes for breaks with volume plotshape(toggleBreaks and ta.crossunder(close, lowUsePivot) and not (open - close < high - open) and osc > volumeThresh, title="Break", text='B', style=shape.labeldown, location=location.abovebar, color=color.red, textcolor=color.white, transp=0, size=size.tiny) plotshape(toggleBreaks and ta.crossover(close, highUsePivot) and not (open - low > close - open) and osc > volumeThresh, title="Break", text='B', style=shape.labelup, location=location.belowbar, color=color.green, textcolor=color.white, transp=0, size=size.tiny) // Alert conditions alertcondition(ta.crossunder(close, lowUsePivot) and osc > volumeThresh, title="Support Broken", message="Support Broken") alertcondition(ta.crossover(close, highUsePivot) and osc > volumeThresh, title="Resistance Broken", message="Resistance Broken") // Strategy conditions with filter longCondition = low > highUsePivot and osc > volumeThresh shortCondition = high < lowUsePivot and osc > volumeThresh // Strategy entries strategy.entry("My Long Entry Id", strategy.long, when=longCondition) strategy.entry("My Short Entry Id", strategy.short, when=shortCondition)