Estratégia de acompanhamento de tendência de cruzamento de média móvel de múltiplos alvos

EMA SL TP
Data de criação: 2025-02-08 15:22:15 última modificação: 2025-02-08 15:22:15
cópia: 6 Cliques: 391
1
focar em
1617
Seguidores

Estratégia de acompanhamento de tendência de cruzamento de média móvel de múltiplos alvos

Visão geral

A estratégia é um sistema de rastreamento de tendências baseado em sinais de cruzamento de equilíbrio (EMA). Utiliza o EMA de 34 ciclos como principal indicador de tendência, combinado com mecanismos de controle de risco e lucro em lotes, para uma negociação totalmente automatizada. O núcleo da estratégia é capturar o ponto de partida da tendência através do cruzamento do preço com o EMA e maximizar as oportunidades de lucro através da definição de objetivos de lucro múltiplos.

Princípio da estratégia

A estratégia baseia-se nos seguintes princípios:

  1. Utilizando a EMA de 34 ciclos como indicador de tendências
  2. Quando o preço atravessa a EMA para cima, coloque mais na posição do preço da EMA
  3. A aplicação de um triplo objetivo de lucro (5%, 10%, 15%) para a realização de um congelamento por lotes
  4. Set Stop Loss de 7% para controlar o risco
  5. Manter uma posição de 10% como uma posição de longo prazo para capturar grandes tendências
  6. Evitar o excesso de negociação com um intervalo mínimo de 8 horas
  7. Suporte para volumes fixos e tamanho de posições dinâmicas

Vantagens estratégicas

  1. Projetado para múltiplos objetivos de lucro, com bom desempenho em diferentes cenários de mercado
  2. Os investidores podem usufruir dos benefícios da grande tendência mantendo algumas posições como uma posição de longo prazo.
  3. Ajuda a negociar com alavancagem, adaptada às suas preferências de risco
  4. Mecanismos para evitar o excesso de transações
  5. Gestão de posições flexível, com opções de posições fixas ou dinâmicas
  6. É totalmente automático, sem intervenção humana.
  7. Parâmetros ajustáveis para diferentes estilos de negociação

Risco estratégico

  1. EMA como indicador de atraso pode causar atraso no tempo de entrada
  2. Múltiplos stop-losses em mercados de turbulência
  3. A utilização de alavancagem pode aumentar os prejuízos
  4. Percentagem fixa de stop loss pode não ser flexível em mercados altamente voláteis
  5. Objetivos de lucro múltiplos podem levar a uma saída prematura de uma tendência forte Contramedidas:
  • Recomendado em mercados com tendências claras
  • Percentagem de stop loss ajustada à flutuação do mercado
  • Cuidado com a alavancagem
  • Regular retomada dos parâmetros de otimização

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

  1. Aumentar os filtros de intensidade de tendência e melhorar a qualidade de entrada
  2. Introdução de mecanismos de stop loss dinâmicos, como o stop loss ATR
  3. Adição de indicadores de confirmação de transações
  4. Desenvolver mecanismos de meta de lucro adaptáveis
  5. Adição de um módulo de avaliação de mercado
  6. Mecanismos de ajuste dinâmico para otimizar o intervalo de negociação Essas otimizações podem aumentar a estabilidade e a lucratividade das estratégias e reduzir o impacto dos falsos sinais.

Resumir

É uma estratégia de seguimento de tendências concebida de forma racional e lógica. O risco é gerido através da captura de tendências em linha reta, com o uso de múltiplos objetivos de lucro e a retenção de algumas posições para capturar grandes tendências. A estratégia é altamente ajustável e adequada para o uso de comerciantes com diferentes preferências de risco. Embora existam alguns riscos inerentes, os ganhos estáveis podem ser alcançados com a configuração razoável de parâmetros e gerenciamento de risco.

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

//@version=5
strategy("EMA25 Long Strategy", overlay=true)

// Inputs
initial_capital = input.float(50000, title="Initial Capital ($)")
leverage = input.int(1, title="Leverage")
mode = input.string("Fixed Volume", title="Position Sizing Mode", options=["Fixed Volume", "Current Balance"])
ema_length = input.int(34, title="EMA Length")
stop_loss_percent = input.float(7, title="Stop Loss (%)", step=0.1) / 100
take_profit_1_percent = input.float(5, title="Take Profit 1 (%)", step=0.1) / 100
take_profit_2_percent = input.float(10, title="Take Profit 2 (%)", step=0.1) / 100
take_profit_3_percent = input.float(15, title="Take Profit 3 (%)", step=0.1) / 100
position_size_percent = input.float(100, title="Position Size (%)", step=1) / 100
long_term_hold_percent = input.float(10, title="Long Term Hold (%)", step=1) / 100
trade_delay = input.int(8, title="Trade Delay (hours)", minval=1) * 60  // Convert hours to minutes

// Calculate EMA
ema = ta.ema(close, ema_length)
// Plot EMA
plot(ema, title="EMA25", color=color.blue)

// Determine if a new trade can be placed
var float last_trade_time = na
can_trade = na(last_trade_time) or (time - last_trade_time) > trade_delay * 60 * 1000

// Determine position size based on selected mode
var float position_size = na
if (mode == "Fixed Volume")
    position_size := initial_capital * leverage * position_size_percent / close
else
    position_size := strategy.equity * leverage * position_size_percent / close

// Entry Condition
var float entry_price = na
price_crossed_ema_up = ta.crossover(close, ema)
price_crossed_ema_down = ta.crossunder(close, ema)

if ((price_crossed_ema_up or price_crossed_ema_down) and can_trade)
    entry_price := ema
    strategy.entry("Long", strategy.long, qty=position_size, limit=entry_price)
    last_trade_time := time
    label.new(bar_index, entry_price, text="Entry", color=color.green, style=label.style_label_up, textcolor=color.white, size=size.small)

// Stop Loss
strategy.exit("Stop Loss", from_entry="Long", stop=entry_price * (1 - stop_loss_percent))

// Take Profits
take_profit_1_price = entry_price * (1 + take_profit_1_percent)
take_profit_2_price = entry_price * (1 + take_profit_2_percent)
take_profit_3_price = entry_price * (1 + take_profit_3_percent)

strategy.exit("Take Profit 1", from_entry="Long", limit=take_profit_1_price, qty=position_size / 3)
strategy.exit("Take Profit 2", from_entry="Long", limit=take_profit_2_price, qty=position_size / 3)
strategy.exit("Take Profit 3", from_entry="Long", limit=take_profit_3_price, qty=position_size / 3)

// Long Term Hold (10% of position)
hold_qty = position_size * long_term_hold_percent
if (strategy.position_size > hold_qty)
    strategy.close("Long Term Hold")