Estratégia de Crossover de Média Móvel Dupla-EMA9/20


Data de criação: 2024-03-08 15:22:50 última modificação: 2024-03-08 15:22:50
cópia: 0 Cliques: 793
1
focar em
1617
Seguidores

Estratégia de Crossover de Média Móvel Dupla-EMA9/20

Visão geral da estratégia

A estratégia de cruzamento de duas equilíneas - EMA9/20 é uma estratégia de negociação quantitativa baseada no cruzamento de duas médias móveis de índices (EMA). A estratégia usa o 9o EMA e o 20o EMA como sinais de negociação, gerando um sinal de compra ou venda quando os dois equilíneas se cruzam. A estratégia também usa o cruzamento do preço com o 9o EMA como sinal auxiliar e o stop loss móvel para gerenciar o risco de negociação.

Princípio da estratégia

O princípio central da estratégia é o uso de cruzamentos de médias móveis de índices de dois períodos diferentes para capturar a tendência do mercado. Quando o curto prazo médio (EMA de 9 dias) cruza o longo prazo médio (EMA de 20 dias), o que indica que o mercado pode entrar em uma tendência ascendente, a estratégia gera um sinal de compra; ao contrário, quando o curto prazo médio cruza o médio longo prazo abaixo, o que indica que o mercado pode entrar em uma tendência descendente, a estratégia gera um sinal de venda.

Além do sinal de cruzamento da linha de equilíbrio, a estratégia também introduziu o cruzamento do preço com a linha de equilíbrio de curto prazo (EMA de 9 dias) como sinal auxiliar. Quando o preço atravessa o EMA de 9 dias, também é produzido um sinal de compra; Quando o preço atravessa o EMA de 9 dias, também é produzido um sinal de venda.

Para controlar o risco, a estratégia usa o método de trailing stop. Uma vez que a negociação entra em um estado de ganho, o stop móvel ajusta continuamente a posição de parada com as mudanças no preço até que o preço se inverta e quebre a posição de parada, bloqueando o lucro e limitando os potenciais perdas.

Vantagens estratégicas

  1. Simples e fácil de entender: a estratégia baseia-se no clássico princípio de cruzamento linear, a lógica é clara, fácil de entender e de implementar.

  2. Seguimento de tendências: através da interseção de duas linhas médias de diferentes períodos, a estratégia pode efetivamente capturar as principais tendências do mercado.

  3. Stop loss em tempo real: introdução de um mecanismo de stop loss móvel, que permite o encerramento de posições em tempo real em caso de reversão de tendência, controlando o risco de queda.

  4. Flexibilidade de parâmetros: os parâmetros da estratégia (como o ciclo da linha média, o número de pontos de parada, etc.) podem ser otimizados e ajustados de acordo com diferentes mercados e variedades para se adaptar a diferentes condições de mercado.

Risco estratégico

  1. Frequência de negociação: Como a estratégia usa sinais de cruzamento de linha média e cruzamento de preço ao mesmo tempo, pode resultar em maior frequência de negociação, aumentando os custos de negociação.

  2. Mercado de turbulência: A estratégia pode gerar mais sinais de erro em mercados de turbulência ou de liquidação, resultando em menores níveis de lucro.

  3. Sensibilidade a parâmetros: a performance da estratégia pode ser sensível à seleção de parâmetros, e diferentes parâmetros podem trazer resultados muito diferentes.

Direção de otimização

  1. Filtragem de sinais: baseando-se nos sinais de equilíbrio e cruzamento de preços, introduzindo outros indicadores técnicos (como RSI, MACD, etc.) como condições de filtragem para reduzir os sinais errados.

  2. Parâmetros dinâmicos: Parâmetros de estratégia de ajuste dinâmico (por exemplo, ciclo de linha média, ponto de parada, etc.) de acordo com a volatilidade do mercado, a força da tendência, etc., para se adaptar a diferentes condições de mercado.

  3. Gerenciamento de posição: ajuste o tamanho da posição de forma dinâmica de acordo com a tendência do mercado e a intensidade do sinal, aumentando a posição quando a tendência é forte e diminuindo a posição quando a tendência é incerta ou o sinal é fraco.

  4. Adaptação multivariada: estende a estratégia para várias variedades e mercados, reduzindo o risco global e aumentando a estabilidade de receita por meio de investimentos diversificados e análise de relevância.

Resumir

A estratégia EMA9/20 é uma estratégia de negociação quantitativa simples e prática para capturar a tendência do mercado através do cruzamento e do cruzamento de preços de duas medias de diferentes períodos, enquanto usa o stop loss móvel para controlar o risco. A lógica da estratégia é clara, fácil de entender e implementar, e é adequada para aprendizagem e uso de iniciantes. No entanto, a estratégia também possui algumas limitações, como o fraco desempenho em mercados de turbulência, a seleção de parâmetros mais sensíveis, etc.

Código-fonte da estratégia
/*backtest
start: 2023-03-02 00:00:00
end: 2024-03-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=5
strategy(title = "EMAs 9 / 20",
		 shorttitle = '9/20 EMAs', 
		 initial_capital = 1000,
		 overlay = true, 
		 default_qty_type = strategy.fixed,
		 commission_type = strategy.commission.cash_per_contract,
		 commission_value = 0.35,
		 default_qty_value = 1)


int trailOffset = 10
int trailPoints = 15


series float oEma9 = ta.ema(ohlc4, 9)
series float oEma20 = ta.ema(ohlc4, 20)

series bool closeCrossoverEma9 = ta.crossover(close, oEma9)
series bool closeCrossunderEma9 = ta.crossover(close, oEma9)

series bool nineCrossover20 = ta.crossover(oEma9, oEma20)
series bool nineCrossunder20 = ta.crossunder(oEma9, oEma20)

//Entry Exits

if nineCrossover20
    strategy.entry("Long 9Cross20", strategy.long, 2)
else if closeCrossoverEma9
    strategy.entry("Long 9CrossClose", strategy.long, 2)
    strategy.exit("Long 9CrossClose Exit", from_entry = "Long 9CrossClose", trail_points = trailPoints, trail_offset = trailOffset)
else if nineCrossunder20
    strategy.close("Long 9Cross20")
    
    

if nineCrossunder20
    strategy.entry("Short 9Cross20", strategy.short, 2)
else if closeCrossunderEma9
    strategy.entry("Short 9CrossClose", strategy.short, 2)
    strategy.exit("Short 9CrossClose Exit", from_entry = "Short 9CrossClose", trail_points = trailPoints, trail_offset = trailOffset)
else if nineCrossover20
    strategy.close("Short 9Cross20")