Estratégia de negociação de velas baseada em modelos interativos

Autora:ChaoZhang, Data: 21-12-2023 10:55:06
Tags:

img

Resumo

Esta estratégia gera sinais de compra e venda com base em padrões de velas e modelos interativos.

Estratégia lógica

A estratégia identifica principalmente os seguintes padrões de candelabro:

  1. Marubozu de alta: fechar mais alto do que abrir com corpo real curto
  2. Martelo invertido: aberto perto de alto e fechado perto de baixo
  3. Doji Star: A vela anterior cruza a vela doji atual

Em conjunto com o reconhecimento de padrões, os níveis de suporte e resistência são definidos.

  1. Quando um Marubozu de alta aparece acima do nível de resistência, um sinal de compra é gerado
  2. Quando um martelo invertido aparece abaixo do nível de suporte, um sinal de venda é acionado

Esta filtragem de combinação ajuda a evitar sinais falsos e torna as decisões de negociação mais fiáveis.

Análise das vantagens

As vantagens desta estratégia são as seguintes:

  1. Combina padrões de gráficos e indicadores para sinais mais robustos
  2. Níveis de suporte/resistência evitando batidas desnecessárias
  3. Padrões de candelabro são simples de entender e implementar
  4. Parâmetros personalizáveis adequados a diferentes ambientes de mercado

Em geral, a estratégia é relativamente simples e prática para testar ideias e auxiliar a negociação manual.

Análise de riscos

Há também alguns riscos:

  1. Padrões de candelabro podem ser enganosos resultando em sinais ruins
  2. Níveis de suporte/resistência desfavoráveis afetam negativamente o desempenho
  3. Incapaz de lidar com eventos de cisne negro e enorme volatilidade
  4. Dados insuficientes de backtest que conduzem a resultados sobreestimados

As mitigações envolvem principalmente a verificação rigorosa de parâmetros, ajuste de suporte / resistência e incorporação de stop-loss para controlar o risco.

Oportunidades de melhoria

Algumas formas de melhorar a estratégia:

  1. Incorporar mais padrões de detecção de velas para mais sinais comerciais
  2. Otimizar os métodos de cálculo de suporte/resistência para melhor adaptar-se às tendências do mercado
  3. Adicionar indicadores secundários como a distância média móvel, alterações de volume para complementar as decisões
  4. Introduzir aprendizado de máquina para determinar de forma autônoma os recursos do padrão do gráfico

Essas melhorias podem ajudar a automatizar o ajuste da estratégia e tornar as decisões comerciais mais inteligentes para lidar com mercados cada vez mais complexos.

Conclusão

Em geral, esta é uma estratégia simples e prática adequada para traders individuais testarem ideias e ajudarem com decisões. Os sinais de negociação são gerados combinando padrões de velas e análise de suporte / resistência para filtrar efetivamente falsos sinais. Com alguns aprimoramentos, esta estratégia pode se tornar um sistema quantitativo relativamente confiável.


/*backtest
start: 2023-12-13 00:00:00
end: 2023-12-20 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Candlestick Pattern Strategy", overlay=true)

// Input for support and resistance levels
supportLevel = input(100, title="Support Level")
resistanceLevel = input(200, title="Resistance Level")

// Detecting Candlestick Patterns
isDoji = close == open
isPressure = close < open and open - close > close - open
isInvertedHammer = close > open and low == (close < open ? close : open) and close - open < 0.1 * (high - low)
isHammer = close > open and close - open > 0.6 * (high - low)

// Buy and Sell Conditions
buyCondition = isHammer and close > resistanceLevel
sellCondition = isInvertedHammer and close < supportLevel

// Strategy Logic
strategy.entry("Buy", strategy.long, when = buyCondition)
strategy.close("Buy", when = sellCondition)

// Plot Buy and Sell signals on the chart
plotshape(series=buyCondition, title="Buy Signal", color=color.green, style=shape.triangleup, location=location.belowbar)
plotshape(series=sellCondition, title="Sell Signal", color=color.red, style=shape.triangledown, location=location.abovebar)

// Plot Support and Resistance levels
plot(supportLevel, color=color.green, title="Support Level")
plot(resistanceLevel, color=color.red, title="Resistance Level")

Mais.