O recurso está a ser carregado... Carregamento...

Média móvel dupla de tendência seguindo um sistema de negociação com uma estratégia de otimização da relação risco-recompensa

Autora:ChaoZhang, Data: 2024-11-28 17:20:13
Tags:EMARRR

img

No campo da negociação quantitativa, as estratégias de seguimento de tendências sempre foram um dos métodos de negociação mais populares.

Estratégia geral

Esta estratégia usa médias móveis exponenciais (EMA) de 20 dias e 200 dias como indicadores primários, combinados com uma relação risco-recompensação de 3:1 para decisões de negociação.

Princípios de estratégia

A lógica central inclui vários elementos-chave:

  1. Utiliza EMAs de 20 dias e 200 dias para julgar as tendências do mercado, sendo a EMA de 200 dias que representa a tendência de longo prazo e a EMA de 20 dias que reflete os movimentos de curto prazo
  2. Um sinal de compra é gerado quando o preço ultrapassa a EMA de 20 dias e a EMA de 20 dias está acima da EMA de 200 dias, indicando uma tendência ascendente
  3. Emprega um rácio risco/recompensa de 3:1, com o nível de take-profit (1,5%) sendo três vezes o nível de stop-loss (0,5%)
  4. Utiliza variáveis para acompanhar o estado das transacções e evitar entradas duplicadas
  5. Reinicializa o status de negociação quando o preço cai abaixo da EMA de 20 dias, preparando-se para a próxima negociação

Vantagens da estratégia

  1. O sistema de média móvel dupla filtra eficazmente o ruído do mercado e melhora a fiabilidade do sinal
  2. O rácio risco-retorno fixo favorece a negociação rentável a longo prazo
  3. Regras claras de entrada e saída reduzem o julgamento subjetivo
  4. Alto grau de automação, fácil de implementar e backtest
  5. Mecanismo abrangente de controlo do risco com níveis claros de stop-loss para cada operação

Riscos estratégicos

  1. Pode gerar sinais falsos frequentes em mercados variados
  2. Os níveis fixos de stop loss e take profit podem não corresponder a todas as condições de mercado
  3. Os custos de negociação não considerados podem afetar os retornos reais
  4. A colocação de stop-loss pode estar demasiado próxima da entrada em mercados de alta volatilidade
  5. Fator de liquidez do mercado não considerado

Orientações de otimização

  1. Introduzir indicadores de volume para melhorar a precisão do julgamento da tendência
  2. Ajustar dinamicamente os níveis de stop loss e take profit com base na volatilidade do mercado
  3. Adicionar filtros de força de tendência para reduzir falsos sinais
  4. Considerar a incorporação de indicadores de sentimento de mercado
  5. Otimizar o sistema de gestão de posições para uma melhor gestão do dinheiro

Resumo

Esta é uma tendência bem estruturada seguindo uma estratégia com lógica clara. Combinando um sistema de média móvel dupla com rácios de risco-recompensa fixa, a estratégia alcança bons retornos mantendo o controle de risco.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Estrategia de Compra con Ratio 3:1", overlay=true)

// Parámetros de la temporalidad diaria y las EMAs
ema20 = ta.ema(close, 20)
ema200 = ta.ema(close, 200)

// Condiciones para la entrada en largo
cierre_por_encima_ema20 = close > ema20
ema20_mayor_ema200 = ema20 > ema200

// Variable para registrar si ya se realizó una compra
var bool compra_realizada = false

// Condición para registrar una compra: primera vez que cierra por encima de EMA 20 con EMA 20 > EMA 200
if (cierre_por_encima_ema20 and ema20_mayor_ema200 and not compra_realizada)
    // Abrir una operación de compra
    strategy.entry("Compra", strategy.long)
    compra_realizada := true  // Registrar que se realizó una compra

    // Definir los niveles de stop loss y take profit basados en el ratio 3:1
    stop_loss = strategy.position_avg_price * 0.995  // -0.50% (rendimiento)
    take_profit = strategy.position_avg_price * 1.015  // +1.50% (3:1 ratio)
    
    // Establecer el stop loss y take profit
    strategy.exit("Take Profit / Stop Loss", from_entry="Compra", stop=stop_loss, limit=take_profit)

// Condición para resetear la compra: cuando el precio cierra por debajo de la EMA de 20
if (close < ema20)
    compra_realizada := false  // Permitir una nueva operación

// Ploteo de las EMAs
plot(ema20, title="EMA 20", color=color.blue, linewidth=2)
plot(ema200, title="EMA 200", color=color.red, linewidth=2)

// Colorear el fondo cuando el precio está por encima de ambas EMAs
bgcolor(cierre_por_encima_ema20 and ema20_mayor_ema200 ? color.new(color.green, 80) : na)


Relacionados

Mais.