Média Móvel Avançada Combinada com Estratégia Quantitativa de Padrão Engolfante

SMA MA 结构突破 吞没形态 技术分析 趋势跟踪 量化交易
Data de criação: 2025-07-28 13:20:35 última modificação: 2025-07-28 13:20:35
cópia: 0 Cliques: 230
2
focar em
319
Seguidores

Média Móvel Avançada Combinada com Estratégia Quantitativa de Padrão Engolfante Média Móvel Avançada Combinada com Estratégia Quantitativa de Padrão Engolfante

Visão geral

A estratégia de quantificação de tendências de absorção combinada com uma média superior é um sistema de negociação que combina vários indicadores técnicos para determinar sinais de negociação, principalmente com base em médias móveis, padrões de gráficos de absorção e rupturas na estrutura de preços. A estratégia aumenta a confiabilidade da negociação ao encontrar pontos de convergência de múltiplos fatores, usando um pensamento de acompanhamento de tendências para encontrar oportunidades de entrada em direções de mercado já confirmadas.

Princípio da estratégia

O núcleo da estratégia é baseado na identificação de múltiplos indicadores tecnológicos em sinergia, incluindo os seguintes componentes-chave:

  1. Sistema de dupla mobilidade uniformeA estratégia usa uma média móvel simples (SMA) de 66 e 85 ciclos para determinar a direção da tendência geral do mercado. Quando o preço está acima das duas médias, é considerado uma tendência de baixa; Quando o preço está abaixo das duas médias, é considerado uma tendência de baixa.

  2. Engolindo identificação de formas

    • Observe a forma de absorção de uma moeda: o preço de fechamento atual é maior que o preço de fechamento de uma moeda anterior, e o preço de fechamento atual é maior que o preço de fechamento da moeda anterior, enquanto o preço de fechamento atual é menor ou igual ao preço de fechamento da moeda anterior.
    • A forma de absorção de queda: o preço de fechamento atual é menor que o preço de fechamento de uma curva anterior, e o preço de fechamento atual é menor que o preço de fechamento de uma curva anterior, enquanto o preço de fechamento atual é maior ou igual ao preço de fechamento de uma curva anterior.
  3. Identificação da estrutura de preços

    • Utilize os alturas e baixas de duas colunas para identificar os alturas e baixas de oscilação
    • Confirmação da estrutura de venda quando o preço ultrapassa os picos de flutuação anteriores
    • Confirmação de uma estrutura de baixa quando o preço se move abaixo de uma baixa anterior
  4. Mecanismo de confirmação múltiplaA estratégia requer que pelo menos 2 das 4 condições sejam preenchidas para que um sinal de negociação seja gerado:

    • Submersão confirmada
    • Confirmação da ruptura da estrutura de preços
    • Posição do preço em relação à média móvel
    • Fibonacci retrô reservado ((em código é um símbolo de posicionamento)
  5. Período de arrefecimentoA estratégia implementa um mecanismo de resfriamento direcional que não produz repetidamente o mesmo sinal de negociação no número de linhas K especificado após o disparo do sinal de negociação, para evitar a sobre-negociação.

Vantagens estratégicas

  1. Mecanismo de confirmação múltiplaRequer que pelo menos dois indicadores técnicos sejam atendidos simultaneamente para gerar um sinal de negociação, reduzindo significativamente a possibilidade de um falso sinal e aumentando a confiabilidade do sinal.

  2. Combinação de tendência e reversãoA combinação orgânica de tendências e estratégias de reversão é alcançada através da captura de tendências de médio e longo prazo por meio de uma linha média móvel, ao mesmo tempo em que se aproveita a forma de absorção para capturar oportunidades de reversão de curto prazo.

  3. Análise da estrutura de preçosA análise da estrutura do mercado é incorporada para confirmar a continuidade da tendência através da identificação de pontos altos e baixos, um método de análise técnica mais avançado.

  4. Mecanismo de refrigeraçãoA função de período de arrefecimento foi projetada para evitar problemas de excesso de negociação causados por sinais contínuos e ajudar a controlar a frequência de negociação.

  5. Ajustabilidade dos parâmetrosOs parâmetros-chave da estratégia (como o ciclo de linha média, a duração do período de resfriamento) podem ser ajustados de acordo com diferentes mercados e prazos, com boa adaptabilidade.

  6. Risco-retorno-proporção-optimizaçãoDe acordo com os testes de estratégia, apesar de ter uma taxa de vitória de cerca de 30%, as negociações com lucro têm uma vantagem significativa sobre as perdas, seguindo o princípio de negociação “deixe os lucros correr, controle os perdas”.

Risco estratégico

  1. Risco de Falso BreakoutA solução é aumentar os mecanismos de confirmação, por exemplo, exigindo a continuidade após a ruptura, ou incorporar a análise de volume de transação.

  2. Retardo médioA MAV é, por natureza, um indicador de atraso, que pode não refletir as mudanças de preço em tempo hábil em um mercado em rápida mudança, resultando em um atraso no sinal de entrada. Pode-se considerar o uso de indicadores mais sensíveis, como a EMA ou o ajuste do ciclo da MAV, para mitigar este problema.

  3. Risco de excesso de negociaçãoApesar de haver um mecanismo de resfriamento, os autores da estratégia mencionam que a estratégia ainda produz mais sinais, o que pode levar a transações muito frequentes. Recomenda-se a adição de condições de filtragem mais rigorosas ou o prolongamento do período de resfriamento.

  4. Dependência do ambiente de mercadoA estratégia funciona melhor em mercados de tendência clara, mas pode gerar mais sinais de erro em mercados de correção horizontal ou de alta volatilidade. Pode ser adicionado um mecanismo de identificação de ambiente de mercado, para ajustar os parâmetros da estratégia em diferentes estados de mercado ou para suspender a negociação.

  5. Falta de mecanismos de contençãoNão há uma estratégia de stop loss definida no código, o que pode levar a perdas individuais excessivas. Recomenda-se a implementação de mecanismos de stop loss rígidos, como stop loss baseados no ATR ou stop loss de porcentagem fixa.

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

  1. Reforço da zona de retorno de Fibonacci: A verificação de retorno de Fibonacci no código atual é um posicionador que retorna true para sempre, permitindo a identificação de uma verdadeira região de retorno de Fibonacci, fornecendo um suporte de nível de preço mais preciso para o ponto de entrada.

  2. Aumentar a confirmação do volumeIncorporar a análise de volume de transação na estratégia pode ajudar a confirmar a eficácia de uma quebra de preço e reduzir o risco de uma falsa quebra. A combinação de emissão pode aumentar a confiabilidade da quebra, especialmente em caso de uma quebra estrutural.

  3. Parâmetros de ajuste dinâmico: Adaptação dinâmica do ciclo médio e da duração do período de arrefecimento com base na volatilidade do mercado (como o indicador ATR), permitindo que a estratégia se adapte melhor a diferentes circunstâncias do mercado.

  4. Adição de um mecanismo de suspensãoImplementar estratégias de stop loss baseadas em gerenciamento de risco, como stop loss dinâmico baseado em ATR, ou usar o ponto de resistência de suporte anterior como ponto de stop loss.

  5. Filtragem do cenário de mercado: Adição de módulos de identificação do ambiente de mercado, como o uso de indicadores ADX para determinar se o mercado está em tendência, suspender a negociação em mercados não tendenciais ou ajustar os parâmetros de estratégia.

  6. Filtro de tempoAumentar a filtragem do tempo de negociação, evitando períodos de alta volatilidade ou baixa liquidez, como a publicação de dados econômicos importantes ou o fechamento do mercado.

  7. Classificação de intensidade do sinal: Classificação de sinais com base na quantidade e intensidade das condições, ajustando o tamanho do posicionamento para um gerenciamento de posicionamento mais preciso.

Resumir

A estratégia de quantificação de formas de absorção de linhas médias superiores é um sistema de negociação integrado que combina vários métodos de análise técnica para identificar potenciais oportunidades de negociação por meio da sinergia de linhas médias móveis, formas de absorção e rupturas na estrutura de preços. A principal vantagem da estratégia reside em seu mecanismo de confirmação múltipla, que reduz efetivamente os falsos sinais e melhora a qualidade das negociações.

No entanto, a estratégia também apresenta alguns riscos, tais como falsas rupturas, atraso na linha média e dependência do ambiente de mercado. O desempenho da estratégia é esperado para ser aumentado ainda mais através de melhores medidas de otimização, tais como a identificação da região de retorno de Fibonacci, o aumento da confirmação de volume de negócios, os parâmetros de ajuste dinâmico e a adição de um mecanismo de gestão de risco mais perfeito.

Em geral, a estratégia tem uma boa base teórica e potencial prático, especialmente para os comerciantes que tendem a usar múltiplos indicadores técnicos para tomar decisões de negociação. No entanto, é importante notar que qualquer estratégia de negociação precisa ser bem testada e validada antes de ser aplicada na prática e ser adequadamente ajustada de acordo com a tolerância ao risco pessoal e o ambiente de mercado.

Código-fonte da estratégia
/*backtest
start: 2024-07-28 00:00:00
end: 2025-07-26 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

// This Pine Script® code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © IamKRfx

//@version=6
//@version=6
strategy("Refined MA + Engulfing (M5 + Confirmed Structure Break)", overlay=true, default_qty_type=strategy.fixed, default_qty_value=5)

// === INPUTS ===
ma1Len = input.int(66, title="MA1 Length")
ma2Len = input.int(85, title="MA2 Length")
cooldownBars = input.int(5, title="Directional Cooldown (bars)")

// === MOVING AVERAGES ===
ma1 = ta.sma(close, ma1Len)
ma2 = ta.sma(close, ma2Len)
plot(ma1, color=color.orange, title="MA 66")
plot(ma2, color=color.blue, title="MA 85")

aboveMAs = close > ma1 and close > ma2
belowMAs = close < ma1 and close < ma2

// === ENGULFING LOGIC ===
bullEngulf = close > open and close > close[1] and open <= close[1]
bearEngulf = close < open and close < close[1] and open >= close[1]

// === SWING HIGH/LOW DETECTION ===
pivotHigh = ta.pivothigh(high, 2, 2)
pivotLow  = ta.pivotlow(low, 2, 2)

var float lastSwingHigh = na
var float lastSwingLow = na
var string marketStructure = "none"  // can be "bullish", "bearish", or "none"
var bool structureConfirmed = false

// Track last swing points
if not na(pivotHigh)
    lastSwingHigh := pivotHigh
if not na(pivotLow)
    lastSwingLow := pivotLow

// Confirm structure breaks
bullBreakConfirmed = not na(lastSwingHigh) and close > lastSwingHigh
bearBreakConfirmed = not na(lastSwingLow) and close < lastSwingLow

if bullBreakConfirmed
    marketStructure := "bullish"
    structureConfirmed := true
if bearBreakConfirmed
    marketStructure := "bearish"
    structureConfirmed := true

bullishStructure = marketStructure == "bullish" and structureConfirmed
bearishStructure = marketStructure == "bearish" and structureConfirmed

// === PLACEHOLDER FOR FIB CONFLUENCE ===
inFibLong = true
inFibShort = true

// === CONFLUENCE CHECK (2 of 4) ===
longConfluence = 0
longConfluence += bullEngulf ? 1 : 0
longConfluence += bullishStructure ? 1 : 0
longConfluence += aboveMAs ? 1 : 0
longConfluence += inFibLong ? 1 : 0

shortConfluence = 0
shortConfluence += bearEngulf ? 1 : 0
shortConfluence += bearishStructure ? 1 : 0
shortConfluence += belowMAs ? 1 : 0
shortConfluence += inFibShort ? 1 : 0

longReady = longConfluence >= 2
shortReady = shortConfluence >= 2

// === COOLDOWN TRACKING ===
var int lastLongBar = na
var int lastShortBar = na
canLong = na(lastLongBar) or (bar_index - lastLongBar >= cooldownBars)
canShort = na(lastShortBar) or (bar_index - lastShortBar >= cooldownBars)

// === FINAL ENTRY CONDITIONS ===
longCondition = longReady and canLong and bullishStructure and aboveMAs
shortCondition = shortReady and canShort and bearishStructure and belowMAs

if (longCondition)
    strategy.entry("Long", strategy.long)
    lastLongBar := bar_index

if (shortCondition)
    strategy.entry("Short", strategy.short)
    lastShortBar := bar_index