Estratégia de negociação multi-timeframe combinando padrões harmônicos e indicadores de Williams

WPR SL TP RR Pivot
Data de criação: 2025-01-17 16:19:15 última modificação: 2025-01-17 16:19:15
cópia: 0 Cliques: 463
1
focar em
1617
Seguidores

Estratégia de negociação multi-timeframe combinando padrões harmônicos e indicadores de Williams

Visão geral

A estratégia é um sistema de negociação avançado que combina o padrão harmônico e o Williams Percentage Point Rating (WPR). Ele funciona identificando padrões harmônicos no mercado (como os padrões Gartley, Morcego, Caranguejo e Borboleta) e combinando-os com os níveis de sobrecompra e sobrevenda do oscilador Williams para determinar entradas e saídas de negociações. A estratégia adota um mecanismo de confirmação múltipla para melhorar a precisão e a confiabilidade das transações por meio da sinergia de indicadores técnicos.

Princípio da estratégia

A lógica central da estratégia inclui as seguintes partes principais:

  1. Reconhecimento de padrões harmônicos: use pontos de inflexão de preços para identificar possíveis padrões harmônicos, que determinam a estrutura do mercado por meio da análise da relação entre máximas e mínimas.
  2. Cálculo do indicador de Williams: use ciclos personalizados para calcular o indicador de Williams e avalie o status do mercado analisando a relação entre o preço mais alto, o preço mais baixo e o preço de fechamento.
  3. Condições de entrada:
    • Entrada longa: quando um padrão harmônico de alta aparece e o oscilador Williams está na zona de sobrevenda
    • Entrada curta: Quando um padrão harmônico de baixa aparece e o oscilador Williams está na zona de sobrecompra
  4. Gerenciamento de risco: use stop-loss dinâmico com base em máximas/mínimas recentes e defina posições de take-profit com base na relação risco-recompensa.

Vantagens estratégicas

  1. Análise multidimensional: combina análise de padrões e indicadores de momentum para fornecer sinais de negociação mais confiáveis.
  2. Controle de risco perfeito: configurações dinâmicas de stop loss e take profit baseadas na relação risco-retorno são adotadas para controlar efetivamente o risco de cada transação.
  3. Forte adaptabilidade: pode se adaptar a diferentes ambientes de mercado e produtos de negociação por meio da otimização de parâmetros.
  4. Mecanismo de confirmação de sinal: A dupla confirmação de padrões harmônicos e indicadores de Williams reduz o impacto de sinais falsos.

Risco estratégico

  1. Risco de reconhecimento de padrões: o reconhecimento simplificado de padrões harmônicos pode levar à interpretação incorreta de certos padrões.
  2. Sensibilidade dos parâmetros: as configurações de vários parâmetros exigem otimização cuidadosa, e parâmetros inadequados podem afetar o desempenho da estratégia.
  3. Dependência do ambiente de mercado: pode ter desempenho ruim em mercados voláteis ou laterais.
  4. Atraso do sinal: Sinais baseados em indicadores técnicos podem ter um certo atraso.

Direção de otimização da estratégia

  1. Melhorias no reconhecimento de padrões:
    • Adicionada validação de proporção harmônica mais rigorosa
    • Introdução à análise da estrutura de preços para melhorar a precisão do reconhecimento de padrões
  2. Filtragem de sinal:
    • Adicionar filtro de tendência
    • Considere adicionar indicadores de volatilidade para se adaptar a diferentes ambientes de mercado
  3. Otimização da gestão de riscos:
    • Alcançar ajuste dinâmico da relação risco-retorno
    • Aumente a gestão de posições com base nas flutuações do mercado

Resumir

Esta estratégia cria um sistema de negociação relativamente completo combinando padrões harmônicos e indicadores de Williams. Suas vantagens estão em seus métodos de análise multidimensionais e mecanismos perfeitos de controle de risco, mas ainda precisa prestar atenção a questões como otimização de parâmetros e adaptabilidade ao ambiente de mercado. Por meio das direções de otimização sugeridas, espera-se que a estabilidade e a confiabilidade da estratégia sejam ainda mais aprimoradas.

Código-fonte da estratégia
/*backtest
start: 2025-01-09 00:00:00
end: 2025-01-16 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/

//@version=5
strategy("Harmonic Pattern with WPR Backtest", overlay=true)

// === Inputs ===
patternLength = input.int(5, title="Pattern Length")
wprLength = input.int(14, title="WPR Length")
wprOverbought = input.float(-20, title="WPR Overbought Level")
wprOversold = input.float(-80, title="WPR Oversold Level")
riskRewardMultiplier = input.float(0.618, title="Take-Profit Risk/Reward Multiplier")
stopLossBuffer = input.float(0.005, title="Stop-Loss Buffer (%)")

// === Manual Calculation of William Percent Range (WPR) ===
highestHigh = ta.highest(high, wprLength)
lowestLow = ta.lowest(low, wprLength)
wpr = ((highestHigh - close) / (highestHigh - lowestLow)) * -100

// === Harmonic Pattern Detection (Simplified Approximation) ===
// Calculate price pivots
pivotHigh = ta.pivothigh(high, patternLength, patternLength)
pivotLow = ta.pivotlow(low, patternLength, patternLength)

// Detect Bullish and Bearish Harmonic Patterns
bullishPattern = pivotLow and close > ta.lowest(close, patternLength)  // Simplified detection for bullish patterns
bearishPattern = pivotHigh and close < ta.highest(close, patternLength)  // Simplified detection for bearish patterns

// === Entry Conditions ===
longCondition = bullishPattern and wpr < wprOversold
shortCondition = bearishPattern and wpr > wprOverbought

// === Stop-Loss and Take-Profit Levels ===
longEntryPrice = close
longSL = ta.valuewhen(longCondition, low, 0) * (1 - stopLossBuffer)  // Stop-loss for long trades
longTP = longEntryPrice * (1 + riskRewardMultiplier)  // Take-profit for long trades

shortEntryPrice = close
shortSL = ta.valuewhen(shortCondition, high, 0) * (1 + stopLossBuffer)  // Stop-loss for short trades
shortTP = shortEntryPrice * (1 - riskRewardMultiplier)  // Take-profit for short trades

// === Backtesting Logic ===
// Long Trade
if longCondition
    strategy.entry("Long", strategy.long)
    strategy.exit("Long Exit", "Long", stop=longSL, limit=longTP)

// Short Trade
if shortCondition
    strategy.entry("Short", strategy.short)
    strategy.exit("Short Exit", "Short", stop=shortSL, limit=shortTP)

// === Visualization ===
bgcolor(longCondition ? color.new(color.green, 90) : na, title="Long Entry Signal")
bgcolor(shortCondition ? color.new(color.red, 90) : na, title="Short Entry Signal")