Estratégia de Swing Trading com cruzamento da EMA 20/50

Autora:ChaoZhang, Data: 2024-01-12 11:22:33
Tags:

img

Resumo

Esta estratégia determina os pontos de entrada e saída, calculando a cruz de ouro e a cruz de morte da média móvel simples de 20 dias (EMA20) e da média móvel simples de 50 dias (EMA50).

Princípio da estratégia

Os principais indicadores desta estratégia são a EMA de 20 dias e a EMA de 50 dias. A EMA20 representa a tendência de curto prazo e a EMA50 representa a tendência de médio prazo. Quando a tendência de curto prazo cruza acima da tendência de médio prazo, indica que o mercado está voltando de queda para alta. Ir longo pode gerar lucro. Quando a tendência de curto prazo cruza abaixo da tendência de médio prazo, indica que o mercado está voltando de alta para queda. Ir curto pode gerar lucro. Portanto, as formações de cruz de ouro e cruz de morte da EMA20 e da EMA50 são usadas para determinar os pontos de entrada e saída.

Especificamente, primeiro calcule os valores da EMA de 20 dias e da EMA de 50 dias. Em seguida, trace os segmentos de linha da EMA20 e da EMA50 no gráfico. Quando a EMA20 cruzar acima da EMA50, vá longo. Quando a EMA20 cruzar abaixo da EMA50, vá curto. Ao mesmo tempo, insira a porcentagem de stop loss e a relação risco-recompensa para calcular o preço de stop loss e obter lucro. Isso pode controlar efetivamente o risco e a recompensa de cada negociação.

Análise das vantagens

As vantagens desta estratégia são as seguintes:

  1. Usar a cruz de ouro e a cruz da morte da EMA para determinar o momento da entrada pode capturar eficazmente o ponto de virada das tendências.
  2. As regras longas e curtas são claras e simples, fáceis de operar.
  3. Usar stop loss e take profit para controlar a relação risco-recompensa, o que favorece a obtenção de retornos estáveis.
  4. Alta eficiência na utilização do capital sem necessidade de posições de longo prazo.

Análise de riscos

Esta estratégia apresenta também alguns riscos:

  1. A EMA tem propriedades atrasadas que podem perder o melhor momento de reversão de preços.
  2. A configuração incorreta do ponto de stop loss pode levar a perdas desnecessárias.
  3. Eventos súbitos podem fazer com que a EMA gere sinais errados.
  4. Risco de adaptação dos dados do backtest: o desempenho real pode diferir dos resultados do backtest.

Optimização

A estratégia pode ser otimizada nos seguintes aspectos:

  1. Teste diferentes combinações de parâmetros da EMA para encontrar os parâmetros ideais.

  2. Combinar com outros indicadores para filtragem e verificação de sinais.

  3. Ajustar dinamicamente as taxas de stop loss e take profit.

  4. Reduzir adequadamente o período de retenção para reduzir a probabilidade de ser afectado por acontecimentos súbitos.

Conclusão

A estratégia de negociação de swing de cruz de ouro e cruz de morte da EMA determina o tempo de entrada por meio de indicadores simples e controla os riscos usando stop loss e take profit.


/*backtest
start: 2023-01-05 00:00:00
end: 2024-01-11 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Swing Trading with 20/50 EMA Cross", shorttitle = "EMA Cross", overlay = true)

// Define input for stop-loss and take-profit levels
var float stopLossPct = input.float(1, title = "Stop Loss (%)") / 100
var float rewardRiskRatio = input.float(2, title = "Risk-Reward Ratio")
takeProfitPct = stopLossPct * rewardRiskRatio

// Calculate EMA values
ema20 = ta.ema(close, 20)
ema50 = ta.ema(close, 50)

// Plot EMAs on the chart
plot(ema20, title = "20 EMA", color = color.blue)
plot(ema50, title = "50 EMA", color = color.red)

// Trading conditions
longCondition = ta.crossover(ema20, ema50)
shortCondition = ta.crossunder(ema20, ema50)

// Execute long and short trades
strategy.entry("Long", strategy.long, when = longCondition)
strategy.entry("Short", strategy.short, when = shortCondition)

// Calculate stop-loss and take-profit levels based on risk-reward ratio
stopLossPrice = close * (1 - stopLossPct)
takeProfitPrice = close * (1 + takeProfitPct)

strategy.exit("Take Profit/Stop Loss", stop = stopLossPrice, limit = takeProfitPrice)


Mais.