Breakout de canal baseado em vector Candle e estratégia de ChoCH personalizada

Autora:ChaoZhang, Data: 2024-03-29 14:45:57
Tags:

img

Resumo

Esta estratégia combina o conceito de Vector Candles com o reconhecimento de padrões tradicional de Channel Breakout e Chocolate Sauce (ChoCH) para capturar os movimentos de ruptura no mercado.

Princípio da estratégia

  1. Calcule o volume médio de um certo número de velas passadas e defina quatro vectores de cores diferentes (vermelho, verde, azul, roxo) com base no múltiplo de amplificação de volume.
  2. Quando o preço de fechamento for inferior ao mínimo da vela anterior e for uma vela vetorial vermelha, identifique-o como um sinal ChoCH vermelho; quando o preço de fechamento for superior ao máximo da vela anterior e for uma vela vetorial verde, identifique-o como um sinal BOS verde.
  3. No âmbito de um determinado número de velas de confirmação, se o número de ocorrências de vectores vermelhos atingir o limiar fixado, confirmar o sinal ChoCH vermelho; se o número de ocorrências de vectores verdes atingir o limiar fixado, confirmar o sinal BOS verde.
  4. Abrir uma posição longa quando for confirmado um sinal ChoCH vermelho e fechar a posição quando for confirmado um sinal BOS verde.

Vantagens da estratégia

  1. Combina vectores com padrões tradicionais de canal e ChoCH, melhorando a confiabilidade do sinal.
  2. Introduz um mecanismo de velas de confirmação para filtrar eficazmente o ruído e os falsos sinais.
  3. Distingue os sinais pelas cores da Vector Candle, tornando-os mais intuitivos e fáceis de identificar.
  4. Os parâmetros ajustáveis proporcionam flexibilidade e podem ser otimizados com base em diferentes condições de mercado e estilos de negociação.

Riscos estratégicos

  1. Em um mercado instável, frequentes fugas e retrações podem levar a numerosos sinais falsos e a operações perdedoras.
  2. A fixação inadequada do número de velas de confirmação pode resultar num atraso do sinal ou numa entrada prematura.
  3. O recurso exclusivamente a indicadores técnicos, ignorando fatores fundamentais, pode expor a estratégia a riscos inesperados.
  4. A estratégia não inclui um mecanismo de stop-loss, podendo incorrer em perdas significativas durante fortes inversões de mercado.

Orientações para a otimização da estratégia

  1. Introduzir indicadores de confirmação da tendência, tais como médias móveis, para confirmar a direção da tendência após o aparecimento de um sinal de ruptura, melhorando a qualidade do sinal.
  2. Para mercados agitados, considere incorporar estratégias de negociação de intervalo, como definir condições de disparo longas e curtas dentro do canal.
  3. Otimizar o número de velas de confirmação para encontrar um equilíbrio adequado entre a filtragem eficaz do ruído e a prevenção de atrasos excessivos.
  4. Estabelecer regras razoáveis de stop-loss e take-profit para controlar o risco comercial individual e o aproveitamento global.
  5. Combinar com outros indicadores técnicos ou indicadores de sentimento do mercado para fornecer mais base para decisões de negociação.

Conclusão

Esta estratégia combina de forma inovadora Vector Candles com padrões clássicos de Channel Breakout e ChoCH, melhorando a confiabilidade e reconhecibilidade do sinal através da diferenciação de cores e um mecanismo de vela de confirmação. As vantagens da estratégia estão em suas regras claras, sinais intuitivos e certo grau de flexibilidade e potencial de otimização. No entanto, a estratégia também tem algumas limitações e riscos, como desempenho abaixo do normal em mercados agitados, compreensão insuficiente das tendências do mercado e falta de gerenciamento de stop-loss e take-profit. No futuro, a estratégia pode ser refinada em termos de confirmação de tendência, faixa de negociação, otimização de parâmetros, controle de risco e outros aspectos para alcançar um desempenho comercial mais robusto.


/*backtest
start: 2024-02-01 00:00:00
end: 2024-02-29 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Custom ChoCH and BOS Strategy with Vector Candles", overlay=true)

// Input Parameters
length = input(10, title="Lookback Length for Volume")
volMultiplier = input(2.0, title="Volume Multiplier for Vector Candles")
confirmationCandles = input(3, title="Confirmation Candles")

// Calculate the average volume of the last 'length' candles
avgVol = sma(volume, length)

// Vector Candle Definitions
vectorCandleRed = (close < open) and (volume > avgVol * volMultiplier) ? 1.0 : 0.0
vectorCandleGreen = (close > open) and (volume > avgVol * volMultiplier) ? 1.0 : 0.0
vectorCandleBlue = (close < open) and (volume > avgVol * 1.5) ? 1.0 : 0.0 // 150% volume for blue
vectorCandlePurple = (close > open) and (volume > avgVol * 1.5) ? 1.0 : 0.0 // 150% volume for purple

// Detecting BOS and ChoCH
isRedChoCH = vectorCandleRed > 0 and (close < low[1]) // Red ChoCH
isGreenBOS = vectorCandleGreen > 0 and (close > high[1]) // Green BOS

// Confirmation Logic
redChoCHConfirmed = (sum(vectorCandleRed, confirmationCandles) >= 2) ? 1.0 : 0.0
greenBOSConfirmed = (sum(vectorCandleGreen, confirmationCandles) >= 2) ? 1.0 : 0.0

// Entry Conditions
buyCondition = redChoCHConfirmed > 0
sellCondition = greenBOSConfirmed > 0

// Strategy Execution
if (buyCondition)
    strategy.entry("Buy", strategy.long)
if (sellCondition)
    strategy.close("Buy")

// Plotting Vector Candles and Signals
plotshape(series=isRedChoCH, title="Red ChoCH Signal", location=location.belowbar, color=color.red, style=shape.circle, text="Red ChoCH")
plotshape(series=isGreenBOS, title="Green BOS Signal", location=location.abovebar, color=color.green, style=shape.circle, text="Green BOS")

// Plotting Vector Candles for Visualization
plotchar(vectorCandleRed > 0, title="Vector Candle Red", location=location.belowbar, color=color.red, char='R', text="Red")
plotchar(vectorCandleGreen > 0, title="Vector Candle Green", location=location.abovebar, color=color.green, char='G', text="Green")
plotchar(vectorCandleBlue > 0, title="Vector Candle Blue", location=location.belowbar, color=color.blue, char='B', text="Blue")
plotchar(vectorCandlePurple > 0, title="Vector Candle Purple", location=location.abovebar, color=color.purple, char='P', text="Purple")


Mais.