Estratégia de negociação multi-alvo com média móvel exponencial dupla

EMA SMA TP SL 移动平均线 止损 多目标策略 交叉信号
Data de criação: 2025-08-21 09:01:39 última modificação: 2025-08-21 09:01:39
cópia: 0 Cliques: 212
2
focar em
319
Seguidores

Estratégia de negociação multi-alvo com média móvel exponencial dupla Estratégia de negociação multi-alvo com média móvel exponencial dupla

Visão geral

A estratégia de negociação de múltiplos alvos de média móvel binária é um sistema de negociação quantitativa baseado em sinais de cruzamento de média móvel binária de curto prazo e longo prazo. A estratégia utiliza o cruzamento de um EMA de 9 ciclos e 21 ciclos como sinal de entrada, ao mesmo tempo em que define até 10 objetivos de lucro e um ponto de parada para gerenciar o risco e maximizar os lucros. A estratégia suporta simultaneamente negociação de duplo alvo, abrindo o alvo quando o EMA de curto prazo atravessa o EMA de longo prazo, abrindo o alvo quando o EMA de curto prazo atravessa o EMA de longo prazo, e saindo quando o cruzamento é invertido.

Princípio da estratégia

O princípio central da estratégia baseia-se no sistema de cruzamento de médias móveis indexadas, concretizado da seguinte forma:

  1. Calcule dois EMAs: EMA rápido ((9 ciclos) e EMA lento ((21 ciclos)
  2. Quando o EMA rápido atravessa o EMA lento, gera um sinal de multissignal
  3. Quando o EMA rápido atravessa o EMA lento, gera um sinal de vazio
  4. Após a entrada, a estratégia calcula automaticamente 10 preços de alvo escalonados (TP1-TP10) e um preço de parada com base no preço de entrada
  5. A estratégia usa o mesmo percentual para as posições de multi-cabeça e de vazio, mas na direção oposta
  6. Para o multihead, a parada de perda é de 0,5% abaixo do preço de entrada e a meta de lucro varia de 0,5% a 5,0% acima do preço de entrada
  7. Para a cabeça vazia, o stop loss é de 0,5% acima do preço de entrada e o objetivo de lucro varia de 0,5% a 5,0% abaixo do preço de entrada.
  8. A estratégia de equilibrar a posição quando um sinal de cruzamento inverso aparece

A estratégia usa um método sistemático de gerenciamento de risco, com 10% do capital da conta por transação por padrão, com um capital inicial de 100.000, e proíbe a hipoteca.

Vantagens estratégicas

  1. Um sinal de entrada simples e eficazO cruzamento EMA é um sinal de negociação amplamente utilizado e comprovado, fácil de entender e implementar. A configuração de parâmetros para o ciclo 921 permite capturar melhor as tendências de médio e curto prazo.
  2. Gestão de lucros multi-objetivoA meta de lucro de 10 escadas permite que os comerciantes façam lucros em lotes em diferentes níveis de preços, bloqueando parte dos lucros e prolongando os lucros o máximo possível.
  3. Controle rigoroso dos riscosO principal objetivo é que cada transação tenha um ponto de parada definido, limitando a perda máxima de uma única transação e controlando o risco.
  4. Ajuda visualA estratégia mostra claramente todos os sinais de entrada, pontos de parada e pontos de destino no gráfico, ajudando os comerciantes a entender intuitivamente a situação do mercado.
  5. Capacidade de negociação bidirecionalA estratégia permite ao mesmo tempo a negociação de vários espaços, permitindo a busca de oportunidades em vários cenários de mercado.
  6. Ajustabilidade dos parâmetros: Todos os parâmetros-chave (incluindo o ciclo EMA, a taxa de parada, o objetivo de lucro) podem ser personalizados por meio da entrada, aumentando a flexibilidade da estratégia.
  7. Automação totalA execução da estratégia é totalmente automatizada, desde o reconhecimento do sinal até a entrada, a definição de metas de stop loss e profit, até a saída, sem necessidade de intervenção humana.

Risco estratégico

  1. Risco de Falso BreakoutO sistema de cruzamento de EMA é propenso a produzir falsos sinais em mercados de turbulência, o que pode levar a transações frequentes e perdas. A estratégia não configura filtros para distinguir os sinais fortes e fracos.
  2. Paralisação parcialA estratégia atual tem o stop loss por defeito de 0,5%, o que pode ser muito apertado em mercados ou variedades com maior volatilidade, e pode ser facilmente desencadeado pelo ruído do mercado.
  3. Dependência de um único indicadorA estratégia baseia-se apenas no cruzamento da EMA como sinal de entrada, sem confirmação em combinação com outros indicadores técnicos ou condições de mercado, aumentando o risco de erro de avaliação.
  4. Gestão de fundos fixaA utilização de 10% do capital da conta em cada transação, sem ajustes para a volatilidade do mercado ou para a dinâmica da intensidade do sinal, pode não ser otimizada o suficiente.
  5. Falta de identificação do cenário de mercadoA estratégia não faz distinção entre mercados de tendência e mercados de choque, e ainda gera sinais em mercados que não são adequados para o sistema de cruzamentos EMA.
  6. Estratégia de saída única: Apesar de ter várias metas de lucro definidas, na verdade a estratégia apenas se estabiliza no primeiro alvo (TP1) ou sai quando o cruzamento é invertido, sem real lucro em lotes.

Para mitigar esses riscos, recomenda-se a introdução de condições de filtragem adicionais, como indicadores de intensidade de tendência, e considerar o ajuste de stop-loss e de posições-alvo de acordo com a dinâmica de volatilidade do mercado.

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

  1. Adicionar filtrosIntrodução de indicadores técnicos adicionais como filtros, como o ADX (indicador de tendência média) para confirmar a força da tendência, ou indicadores de força relativa (indicador de RSI) para evitar a negociação em zonas de sobrecompra e sobrevenda.
  2. Paragem dinâmica: Troque o stop-loss por percentual fixo por um stop-loss dinâmico baseado na volatilidade do mercado, como o uso do ATR (Média da Amplitude de Variação Real) multiplicado por um fator para definir a distância de stop-loss.
  3. Realização de benefícios verdadeiramente multi-objetivoModificação do código de estratégia para que seja possível a liquidação parcial em diferentes posições-alvo, em vez de apenas a liquidação total na primeira posição-alvo. Isso requer que cada transação seja dividida em várias posições menores.
  4. Aumentar os mecanismos de identificação de tendênciasA estratégia é: adicionar a lógica de reconhecimento de tendências, abrir posições somente quando a direção da tendência é clara, e evitar negociações frequentes em mercados turbulentos.
  5. Optimizar a gestão de fundosA proporção de capital em cada transação é ajustada dinamicamente de acordo com a intensidade do sinal, a volatilidade do mercado ou a situação de retirada, em vez de usar 10% de forma fixa.
  6. Adicionando um filtro de tempoEvite negociar em momentos de alta volatilidade antes e depois do fechamento do mercado, ou evitar a divulgação de dados econômicos importantes.
  7. Introdução de stop loss móvelQuando o preço se move para a direção favorável por uma certa distância, o ponto de parada é movido para o ponto de equilíbrio de ganho-perda ou uma posição mais favorável, protegendo o lucro.
  8. Aumento da proteção contra tendências: Em condições extremas de mercado, adicionar indicadores de resistência como um sinal de alerta para evitar manter posições quando o mercado se reverte drasticamente.

Através dessas otimizações, a robustez e a rentabilidade das estratégias podem ser significativamente aumentadas, reduzindo a frequência de retrações e de transações perdedoras.

Resumir

A estratégia de negociação multi-objetivo de média móvel binária é um sistema de negociação quantitativa de estrutura clara e lógica simples, baseado no clássico sinal de cruzamento EMA e complementado com a gestão de lucro e parada de perda de múltiplos objetivos. A estratégia é adequada para negociação de tendências de curto e médio prazo e funciona melhor em mercados de tendências claras.

Embora a estratégia seja relativamente simples, ela contém os elementos centrais da estratégia de negociação: sinais de entrada, condições de saída, gestão de stop loss e objetivos de lucro. A principal vantagem da estratégia é que ela é clara, fácil de entender e executar, além de oferecer um bom suporte visual.

No entanto, a estratégia também possui limitações, como a dependência de um único indicador, a falta de identificação do ambiente de mercado e a falta de flexibilidade na gestão de fundos. A estratégia tem um grande espaço de otimização, adicionando filtros de tendência, otimizando o mecanismo de parada de perdas, alcançando verdadeiros lucros em lotes e melhorando o método de gestão de fundos.

Para os traders, a estratégia pode ser usada como uma estrutura básica, com adaptações e otimizações personalizadas de acordo com as preferências de risco individuais e as características da variedade de negociação para obter melhores resultados de negociação.

Código-fonte da estratégia
/*backtest
start: 2024-08-21 00:00:00
end: 2025-08-20 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_OKX","currency":"BNB_USDT","balance":5000}]
*/

//@version=5
strategy("9/21 EMA with 10 Targets + Stoploss", 
     overlay = true,
     initial_capital = 100000,
     default_qty_type = strategy.percent_of_equity,
     default_qty_value = 10,
     pyramiding = 0)

// === Inputs ===
emaFastLen = input.int(9, "Fast EMA Length")
emaSlowLen = input.int(21, "Slow EMA Length")
slPercent  = input.float(0.5, "Stoploss %", step=0.1)

// 10 Targets
tp1Percent = input.float(0.5, "Target 1 %", step=0.1)
tp2Percent = input.float(1.0, "Target 2 %", step=0.1)
tp3Percent = input.float(1.5, "Target 3 %", step=0.1)
tp4Percent = input.float(2.0, "Target 4 %", step=0.1)
tp5Percent = input.float(2.5, "Target 5 %", step=0.1)
tp6Percent = input.float(3.0, "Target 6 %", step=0.1)
tp7Percent = input.float(3.5, "Target 7 %", step=0.1)
tp8Percent = input.float(4.0, "Target 8 %", step=0.1)
tp9Percent = input.float(4.5, "Target 9 %", step=0.1)
tp10Percent = input.float(5.0, "Target 10 %", step=0.1)

// === EMA Calculation ===
emaFast = ta.ema(close, emaFastLen)
emaSlow = ta.ema(close, emaSlowLen)

// === Entry Conditions ===
longCond  = ta.crossover(emaFast, emaSlow)
shortCond = ta.crossunder(emaFast, emaSlow)

// === Entry ===
if (longCond and strategy.position_size <= 0)
    strategy.entry("BUY", strategy.long)

if (shortCond and strategy.position_size >= 0)
    strategy.entry("SELL", strategy.short)

// === Series Variables for Targets ===
var float tp1 = na
var float tp2 = na
var float tp3 = na
var float tp4 = na
var float tp5 = na
var float tp6 = na
var float tp7 = na
var float tp8 = na
var float tp9 = na
var float tp10 = na
var float stopLevel = na

// === Long Positions ===
if strategy.position_size > 0
    stopLevel := strategy.position_avg_price * (1 - slPercent/100)
    tp1 := strategy.position_avg_price * (1 + tp1Percent/100)
    tp2 := strategy.position_avg_price * (1 + tp2Percent/100)
    tp3 := strategy.position_avg_price * (1 + tp3Percent/100)
    tp4 := strategy.position_avg_price * (1 + tp4Percent/100)
    tp5 := strategy.position_avg_price * (1 + tp5Percent/100)
    tp6 := strategy.position_avg_price * (1 + tp6Percent/100)
    tp7 := strategy.position_avg_price * (1 + tp7Percent/100)
    tp8 := strategy.position_avg_price * (1 + tp8Percent/100)
    tp9 := strategy.position_avg_price * (1 + tp9Percent/100)
    tp10 := strategy.position_avg_price * (1 + tp10Percent/100)

    strategy.exit("Exit Long", "BUY", stop=stopLevel, limit=tp1)

// === Short Positions ===
if strategy.position_size < 0
    stopLevel := strategy.position_avg_price * (1 + slPercent/100)
    tp1 := strategy.position_avg_price * (1 - tp1Percent/100)
    tp2 := strategy.position_avg_price * (1 - tp2Percent/100)
    tp3 := strategy.position_avg_price * (1 - tp3Percent/100)
    tp4 := strategy.position_avg_price * (1 - tp4Percent/100)
    tp5 := strategy.position_avg_price * (1 - tp5Percent/100)
    tp6 := strategy.position_avg_price * (1 - tp6Percent/100)
    tp7 := strategy.position_avg_price * (1 - tp7Percent/100)
    tp8 := strategy.position_avg_price * (1 - tp8Percent/100)
    tp9 := strategy.position_avg_price * (1 - tp9Percent/100)
    tp10 := strategy.position_avg_price * (1 - tp10Percent/100)

    strategy.exit("Exit Short", "SELL", stop=stopLevel, limit=tp1)

// === Plotting ===
plot(emaFast, "EMA 9", color=color.yellow, linewidth=2)
plot(emaSlow, "EMA 21", color=color.orange, linewidth=2)

// Global plots (avoid local scope error)
plot(tp1,  "TP1",  color=color.new(color.green, 0))
plot(tp2,  "TP2",  color=color.new(color.green, 10))
plot(tp3,  "TP3",  color=color.new(color.green, 20))
plot(tp4,  "TP4",  color=color.new(color.green, 30))
plot(tp5,  "TP5",  color=color.new(color.green, 40))
plot(tp6,  "TP6",  color=color.new(color.green, 50))
plot(tp7,  "TP7",  color=color.new(color.green, 60))
plot(tp8,  "TP8",  color=color.new(color.green, 70))
plot(tp9,  "TP9",  color=color.new(color.green, 80))
plot(tp10, "TP10", color=color.new(color.green, 90))
plot(stopLevel, "Stoploss", color=color.red, linewidth=2)

// Entry Signals
plotshape(longCond, title="BUY Signal", style=shape.labelup, color=color.green, text="BUY")
plotshape(shortCond, title="SELL Signal", style=shape.labeldown, color=color.red, text="SELL")