Estratégia de negociação da EMA Long Only Triple Golden Cross

Autora:ChaoZhang, Data: 2023-09-26 16:23:53
Tags:

Resumo

Esta estratégia gera sinais de negociação baseados na cruz de ouro e na cruz da morte de três linhas EMA com períodos diferentes para tirar vantagem dos pontos fortes de cada EMA e alcançar um melhor desempenho comercial.

Estratégia lógica

A estratégia calcula três linhas EMA com períodos de 8, 50 e 200 e gera sinais quando a EMA mais rápida cruza acima ou abaixo da EMA mais lenta.

  1. Calcular as linhas EMA de 8 períodos, 50 períodos e 200 períodos.

  2. Faça uma posição longa quando a EMA de 8 períodos cruza acima da EMA de 50 períodos (cruz de ouro), feche posição quando a EMA de 50 períodos cruza abaixo da EMA de 8 períodos (cruz de morte).

  3. Opcionalmente, só vá longo quando o preço estiver acima da EMA de 200 períodos para evitar problemas.

  4. Uma linha EMA opcional de obtenção de lucros pode ser definida para fechar posições quando o preço atravessa abaixo dela.

A EMA rápida identifica os fundos, a EMA média determina a tendência e a EMA lenta filtra o ruído.

Vantagens

  1. A EMA tripla determina efetivamente as tendências e capitaliza os pontos fortes individuais. A EMA de 8 períodos capta fundos curtos, a EMA de 50 períodos determina a tendência de médio prazo e a EMA de 200 períodos filtra o ruído.

  2. Só ultrapassar a EMA de 200 períodos evita problemas.

  3. A EMA de lucro personalizável estabelece metas de lucro razoáveis.

  4. Personalizações visuais como cores de barras e gráficos EMA melhoram a flexibilidade.

  5. A lógica simples da cruz dourada/morte é fácil de entender.

Riscos e atenuações

  1. Os atrasos da EMA podem causar falta de tempo de entrada.

  2. Usar EMAs mais longas para filtrar, ou adicionar condições.

  3. O objetivo de lucro fixo não é adaptável.

  4. Sem paradas significa risco ilimitado.

Oportunidades de melhoria

  1. Otimizar os períodos de EMA para melhores parâmetros.

  2. Adicione indicadores como o MACD para o timing.

  3. Implementar a obtenção de lucros dinâmicos baseados na volatilidade.

  4. Adicionar a lógica de stop-loss, trailing ou valor fixo.

  5. Melhorar as condições de entrada, por exemplo, filtros de volume.

Conclusão

Esta estratégia capitaliza a filtragem de tendências da EMA para identificar movimentos de alta probabilidade. A otimização de saídas, a adição de indicadores e filtros podem melhorar o desempenho.


/*backtest
start: 2023-09-18 00:00:00
end: 2023-09-20 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Long only EMA CROSS 8/50/200 Backtest", shorttitle="Golden Cross Tri EMA", overlay=true)

// EMA 8/50/200 Cross TEST



// Input
switch1=input(true, title="Enable Bar Color?")
switch2=input(true, title="Show 8 EMA")
switch3=input(true, title="Show 50 EMA")
switch4=input(true, title="Show 200 EMA")
switch5=input(false, title="Show profit level EMA")
bool_Long_EMA200=input(false, title="Long only above EMA200")
movingaverage_8 = ema(close, input(8))
movingaverage_50 = ema(close, input(50))
movingaverage_market_signal = ema(close, input(200))
movingaverage_profitlvl = ema(close, input(50))


// Calculation
bullish_cross = if bool_Long_EMA200 == true
    crossover(movingaverage_8, movingaverage_50) and movingaverage_8 > movingaverage_market_signal
else 
    bullish_cross = crossover(movingaverage_8, movingaverage_50)
bearish_cross = crossunder(close, movingaverage_profitlvl)

// Strategy
if bullish_cross
    strategy.entry("long", strategy.long)

strategy.close("long", when = bearish_cross )

// Colors
bartrendcolor = close > movingaverage_8 and close > movingaverage_50 and change(movingaverage_50) > 0 ? green : close < movingaverage_8 and close < movingaverage_50 and change(movingaverage_50) < 0 ? red : blue
barcolor(switch1?bartrendcolor:na)

// Output
plot(switch2?movingaverage_8:na,color = change(movingaverage_8) > 0 ? green : red,linewidth=2, title="EMA8")
plot(switch3?movingaverage_50:na,color = change(movingaverage_50) > 0 ? green : red,linewidth=2,title="EMA50")
plot(switch4?movingaverage_market_signal:na,color = change(movingaverage_market_signal) > 0 ? green : red,linewidth=3,title="EMA200")
plot(switch5?movingaverage_profitlvl:na,color = change(movingaverage_profitlvl) > 0 ? green : red,linewidth=3, title="EMA Profit LVL")

//
alertcondition(bullish_cross, title='Golden Cross (bullish)', message='Bullish')
alertcondition(bearish_cross, title='Death Cross (bearish)', message='Bearish')

Mais.