Estratégia de Crossover de Média Móvel de Recuperação de Pirâmide Orientada por Tendência

EMA RSI Trailing Stop PYRAMID RECOVERY ENGULFING PATTERN STOP LOSS TAKE PROFIT
Data de criação: 2025-06-23 10:36:46 última modificação: 2025-06-23 10:36:46
cópia: 1 Cliques: 238
2
focar em
319
Seguidores

Estratégia de Crossover de Média Móvel de Recuperação de Pirâmide Orientada por Tendência Estratégia de Crossover de Média Móvel de Recuperação de Pirâmide Orientada por Tendência

Visão geral

A estratégia de cruzamento de linha de equilíbrio de recuperação da pirâmide de tendência é um sistema de negociação quantitativa integrado, combinando rastreamento de tendências, identificação de sinais de reversão e recuperação de posições em forma de pirâmide. A estratégia baseia-se principalmente na direção da tendência do mercado com base em múltiplos índices de média móvel (EMA) cruzados, usando sinais de entrada de confirmação de forma absorvente e com a função de gerenciamento de fundos em forma de pirâmide e stop loss móvel, para construir um fechamento de negociação completo.

Princípio da estratégia

A estratégia baseia-se principalmente em três médias móveis de índices de três períodos diferentes (EMA20, EMA50 e EMA200) para determinar a tendência do mercado, e combina a forma de um gráfico de parede como condição para a entrada de sinais. Concretamente, a estratégia funciona da seguinte forma:

  1. Mecanismo de avaliação de tendências

    • Condições de tendência múltipla: EMA20 > EMA50 > EMA200 e preço de fechamento > EMA200
    • Condições de tendência a céu aberto: EMA20 < EMA50 < EMA200 e preço de fechamento < EMA200
  2. Sinais de entrada

    • A tendência de seguimento de entradas: a forma de absorção de ativos em uma tendência de múltiplos ativos
    • Inverter a entrada: a forma de absorção de queda na tendência de cabeça baixa (pensamento inverso, como um sinal de compra inversa)
  3. Seleção

    • Excluindo a hesitação, calculando a proporção entre a entidade e o escopo geral
  4. Gestão de Riscos

    • Paragem fixa: configuração de uma posição de parada de um número fixo de pontos
    • Paragem fixa: paragem baseada no número de pontos de parada multiplicado por pontos adicionais
    • Tracking Stop Loss: Ativação do mecanismo de tracking stop loss quando o lucro atinge um determinado ponto
  5. Mecanismo de recuperação da pirâmide

    • Aumentar o tamanho da posição de acordo com o número de perdas consecutivas
    • Ajuste de posição de recuperação usando o fator de crescimento do índice
    • Configurar a exposição ao risco de limite de nível de recuperação máxima

No código de implementação, primeiro são definidos três indicadores EMA: 20, 50, 200 e, em seguida, é construída uma lógica de filtragem para excluir a tendência de hesitação. A estratégia tem dois tipos de compra: compra de tendência e compra de reversão.

Vantagens estratégicas

  1. Adaptabilidade ao mercado globalO sistema é capaz de encontrar oportunidades de negociação em diferentes cenários de mercado, não se limitando a um único estado de mercado, por incluir simultaneamente o acompanhamento de tendências e estratégias de reversão.

  2. Gerenciamento de riscos em vários níveisA combinação de um mecanismo de proteção triplo de stop-loss fixo, stop-loss proporcional e stop-loss de rastreamento, ao mesmo tempo em que protege o capital sem limitar os potenciais ganhos.

  3. Mecanismo de recuperação da pirâmideIntrodução inovadora de um sistema de recuperação, que aumenta cientificamente a posição para responder a situações de perdas contínuas e aumenta a eficiência de recuperação de fundos. Este mecanismo permite a recuperação mais rápida do valor líquido da conta após a retirada de curto prazo.

  4. Gestão de posições dinâmicaAjustar automaticamente o tamanho da posição de acordo com o desempenho da negociação, manter a posição básica durante o lucro e aumentar gradualmente a posição durante o prejuízo para acelerar a recuperação.

  5. Indicadores técnicos combinados com formasA análise de padrões de gráficos, combinada com a análise de padrões de gráficos, aumenta a qualidade do sinal por meio da confirmação múltipla.

  6. Filtragem de entrada precisaO filtro body_ratio elimina a hesitação e diminui o risco de falsidade.

  7. Marcações visuais simplesOs sinais de negociação são visualizados no gráfico para facilitar a análise de retrospectiva e o monitoramento em tempo real.

Risco estratégico

  1. Risco de expansão rápida da posiçãoO mecanismo de recuperação da pirâmide pode levar a um aumento rápido da posição em caso de perdas consecutivas, o que pode agravar os prejuízos se o mercado continuar desfavorável. Recomenda-se que o parâmetro max_recovery seja controlado dentro de limites razoáveis e que o base_position seja ajustado de acordo com a quantidade total de capital.

  2. Atraso na mudança de tendênciaOs sistemas baseados em médias móveis podem reagir lentamente no início de uma mudança de tendência, resultando em atrasos no tempo de entrada ou saída. Indicadores mais sensíveis, como o RSI ou o MACD, podem ser considerados como um julgamento auxiliar.

  3. Risco de perda de pontos fixos: Quando a volatilidade do mercado muda, o stop-loss de pontos fixos pode ser muito largo ou muito estreito. Recomenda-se considerar o uso do ATR (Average True Range) para ajustar dinamicamente a distância de stop-loss.

  4. Falsos sinais que engolem a formaNo mercado horizontal, a forma de absorção pode gerar mais falsos sinais. A qualidade do sinal pode ser melhorada com o aumento da confirmação de volume ou outros indicadores auxiliares.

  5. Limitação de transações unidirecionaisA estratégia atual é executar apenas operações múltiplas, podendo perder oportunidades de fazer shorting em um mercado de baixa. Considere adicionar uma lógica de fazer shorting simétrica para se adaptar ao mercado bidirecional.

  6. Pressão para administrar o dinheiro: Em níveis de recuperação máxima, um maior apoio financeiro é necessário. Recomenda-se a configuração cuidadosa dos parâmetros pyramid_factor e max_recovery de acordo com o tamanho total da conta.

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

  1. Mecanismo de parada dinâmicaA implementação consiste em calcular o valor atual do ATR e, em seguida, definir o stop loss como o valor de entrada menos o ATR.

  2. Adição de lógica de vazioO método de implementação é copiar a lógica de compra existente, inverter as condições de configuração e a direção de entrada.

  3. Melhorar o julgamento de tendênciasAlém da EMA, introduzir mais ferramentas de confirmação de tendências, como o ADX (indicador de força de tendência), filtrando ambientes de tendência mais fortes. Condições como “ADX > 25” podem ser adicionadas como filtro de força de tendência.

  4. Otimização da proporção de risco: Com base em dados de retrospectiva histórica, pode ser necessário ajustar o parâmetro tp_multiplier para encontrar a melhor relação entre stop loss e stop loss.

  5. Filtro de tempoAumentar as condições de filtragem de tempo, evitando períodos de baixa volatilidade ou instabilidade no mercado. Especialmente para negociação de índices, pode se concentrar em períodos de mercado ativo.

  6. Otimização do sistema de recuperaçãoConsidere o ajuste dinâmico do pyramid_factor com base na probabilidade de vitórias e perdas, em vez de usar múltiplos fixos. Um mecanismo de auto-ajuste baseado no desempenho recente pode ser implementado.

  7. Aumentar o bloqueio parcial de lucros: Depois de atingir um certo lucro, feche as posições em lotes para bloquear parte dos lucros, mantendo as posições restantes para acompanhar a tendência.

  8. Integração dos indicadores emocionaisIntrodução de indicadores de sentimento de mercado como o VIX ou o indicador de amplitude de mercado, ajuste de parâmetros de estratégia ou suspensão de negociação em caso de extremo sentimento.

Resumir

A estratégia de cruzamento de linha média de recuperação da pirâmide de condução de tendências é um sistema integrado que combina vários conceitos de negociação, principalmente através do julgamento de tendências de cruzamento da EMA, do sinal de confirmação de forma de engordar e da combinação de mecanismos inovadores de recuperação da pirâmide para gerenciar o risco e otimizar a eficiência do capital. O principal benefício da estratégia reside na capacidade de se adaptar a diferentes circunstâncias de mercado, ao mesmo tempo em que oferece um mecanismo de controle de risco perfeito.

A estratégia é especialmente adequada para os comerciantes que têm algum conhecimento de análise técnica e estão dispostos a aceitar riscos moderados em busca de retornos estáveis a longo prazo. Com a implementação da direção de otimização acima, a estabilidade e a adaptabilidade da estratégia podem ser ainda mais aumentadas, especialmente em ambientes de grande variação de volatilidade do mercado.

Em geral, esta estratégia representa uma abordagem típica da aplicação integrada de análise técnica, gestão de risco e gestão de fundos na negociação quantitativa moderna, fornecendo aos comerciantes uma estrutura escalável que pode ser personalizada e otimizada de acordo com as necessidades individuais e o ambiente de mercado.

Código-fonte da estratégia
/*backtest
start: 2024-06-23 00:00:00
end: 2025-06-21 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"DOGE_USDT"}]
*/

//@version=5
strategy("DJ30 Sniper (Trend + Reversal Buy + Pyramid Recovery + Trailing)", overlay=true, default_qty_value=1)

// === INPUTS ===
ema_fast = input.int(20, "EMA Fast")
ema_mid = input.int(50, "EMA Mid")
ema_slow = input.int(200, "EMA Slow")
rsi_period = input.int(14, "RSI Period")
sl_points = input.int(650, "Stop Loss (Points)")
tp_extra = input.int(200, "Extra TP Points")
tp_multiplier = 5
trailing_trigger = input.int(100, "Activate Trailing SL After (Points)")
trailing_stop = input.int(500, "Trailing Stop Size (Points)")

// === Recovery Settings ===
max_recovery = input.int(3, "Max Pyramid Levels", minval=1)
base_position = input.float(1000, "Base Order Size ($)")  // 🔁 doubled from 500 to 1000
pyramid_factor = input.float(2.0, "Recovery Multiplier")

// === MAs ===
ema20 = ta.ema(close, ema_fast)
ema50 = ta.ema(close, ema_mid)
ema200 = ta.ema(close, ema_slow)

// === Candle Filter ===
body = math.abs(close - open)
candle_range = high - low
body_ratio = candle_range != 0 ? body / candle_range : 0
not_indecision = body_ratio > 0.3

// === Buy Conditions ===
bull_trend = ema20 > ema50 and ema50 > ema200 and close > ema200
engulfing_bullish = close > open and close > close[1] and open < open[1]
buy_trend = bull_trend and engulfing_bullish and not_indecision

bear_trend = ema20 < ema50 and ema50 < ema200 and close < ema200
engulfing_bearish = close < open and close < close[1] and open > open[1]
buy_reversal = bear_trend and engulfing_bearish and not_indecision

buy_condition = buy_trend or buy_reversal

// === SL/TP ===
tp_points = sl_points * tp_multiplier + tp_extra
sl_buy = close - sl_points * syminfo.mintick
tp_buy = close + tp_points * syminfo.mintick

// === Recovery Logic ===
var int recovery_level = 0
var float position_size = base_position

if strategy.closedtrades > 0
    last_trade = strategy.closedtrades - 1
    last_profit = strategy.closedtrades.profit(last_trade)
    if last_profit > 0
        recovery_level := 0
    else
        recovery_level := math.min(recovery_level + 1, max_recovery)

position_size := base_position * math.pow(pyramid_factor, recovery_level)

// === Trade Execution ===
if buy_condition and strategy.opentrades == 0
    strategy.entry("Buy DJ30", strategy.long, qty=position_size)

// === Exit Logic ===
if strategy.opentrades > 0
    entry_price = strategy.opentrades.entry_price(0)
    unrealized_points = (close - entry_price) / syminfo.mintick

    if unrealized_points >= trailing_trigger
        strategy.exit("Trail Exit", from_entry="Buy DJ30", trail_points=trailing_stop, trail_offset=trailing_stop)
    else
        strategy.exit("Fixed Exit", from_entry="Buy DJ30", stop=sl_buy, limit=tp_buy)

// === Visual Markers ===
plotshape(buy_trend, location=location.belowbar, style=shape.labelup, color=color.green, text="TrendBuy")
plotshape(buy_reversal, location=location.belowbar, style=shape.labelup, color=color.orange, text="RevBuy")