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.
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.
Calcular as linhas EMA de 8 períodos, 50 períodos e 200 períodos.
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).
Opcionalmente, só vá longo quando o preço estiver acima da EMA de 200 períodos para evitar problemas.
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.
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.
Só ultrapassar a EMA de 200 períodos evita problemas.
A EMA de lucro personalizável estabelece metas de lucro razoáveis.
Personalizações visuais como cores de barras e gráficos EMA melhoram a flexibilidade.
A lógica simples da cruz dourada/morte é fácil de entender.
Os atrasos da EMA podem causar falta de tempo de entrada.
Usar EMAs mais longas para filtrar, ou adicionar condições.
O objetivo de lucro fixo não é adaptável.
Sem paradas significa risco ilimitado.
Otimizar os períodos de EMA para melhores parâmetros.
Adicione indicadores como o MACD para o timing.
Implementar a obtenção de lucros dinâmicos baseados na volatilidade.
Adicionar a lógica de stop-loss, trailing ou valor fixo.
Melhorar as condições de entrada, por exemplo, filtros de volume.
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')