Desvio do canal de suporte e resistência dinâmicos

Autora:ChaoZhang, Data: 2024-01-18 12:30:04
Tags:

img

Resumo

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.

Estratégia lógica

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 B são desenhadas nos locais de ruptura. Enquanto isso, a estratégia incorpora um oscilador de volume usando volumes médios de 5 dias e 10 dias para medir aumentos de volume. Os sinais e alertas de ruptura só são acionados quando o volume é suficientemente grande. Finalmente, a estratégia integra estratégias de entrada e saída LONG / SHORT com base nessas condições de suporte, resistência e volume.

Vantagens

A estratégia apresenta as seguintes vantagens:

  1. Níveis dinâmicos de suporte e resistência adaptam-se às alterações do mercado
  2. A confirmação do volume assegura a significância das rupturas
  3. Indicações gráficas destacam pontos críticos
  4. A estratégia comercial integrada simplifica o fluxo de trabalho
  5. Parâmetros personalizáveis aumentam a adaptabilidade

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.

Riscos

Os riscos potenciais da estratégia incluem principalmente:

  1. 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.

  2. 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.

  3. 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.

  4. Risco de custos de transacção. O comércio frequente pode conduzir a comissões mais elevadas.

Orientações para a melhoria

A estratégia pode ser reforçada nos seguintes aspectos:

  1. Adicionar condições de stop loss para controlar perdas individuais.

  2. Otimizar os fatores de lucro para determinar os pontos de lucro ideais.

  3. Teste diferentes combinações de parâmetros para determinar os parâmetros ideais.

  4. Ajustar as configurações da barra esquerda/direita com base em diferentes produtos.

  5. Adicionar outros filtros, por exemplo, a volatilidade dos preços para melhor avaliar a probabilidade de ruptura.

  6. Tente diferentes indicadores de confirmação de volume, por exemplo, breakouts de alto volume.

  7. Incorporar outras estratégias ou indicadores para uma melhor integração.

Conclusã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)


Mais.