Tendência de cruzamento multi-EMA na sequência da estratégia

Autora:ChaoZhang, Data: 2024-01-04 16:22:07
Tags:

img

Resumo

A Multi-EMA Crossover Trend Following Strategy combina várias linhas EMA com diferentes parâmetros para identificar direções de tendência com base em sinais de crossover, com o objetivo de seguir tendências no mercado.

Estratégia lógica

A lógica central desta estratégia é baseada nos princípios de cruzamento das linhas EMA. Entre as EMAs, as EMAs de curto período são mais sensíveis às mudanças recentes de preços e podem refletir tendências de curto prazo, enquanto as EMAs de longo prazo são menos sensíveis e representam tendências de longo prazo.

Esta estratégia monitora 7 grupos de crossovers da EMA simultaneamente, incluindo períodos de 12&26, 12&50, 12&100, 12&200, 12&89 e 12&144. Por exemplo, quando a EMA de 12 dias cruza acima da EMA de 26 dias, a estratégia abrirá uma posição longa. Fechará a posição longa quando ocorrer uma cruz de morte. A mesma lógica se aplica a outros pares de EMA.

Análise das vantagens

A maior vantagem desta estratégia é a capacidade de capturar tendências em vários prazos. Ao combinar várias EMAs, ele pode identificar tendências de curto e longo prazo, realizando tendências de vários prazos. Além disso, o desempenho da estratégia pode ser otimizado ajustando os parâmetros da EMA.

Análise de riscos

O principal risco desta estratégia são os sinais de cruzamento excessivamente frequentes quando se usam várias EMAs juntas. Por exemplo, cruzes entre EMAs de 12 dias e 26 dias acontecem com mais frequência do que entre linhas de 12 dias e 200 dias. Entradas e saídas frequentes podem aumentar os custos de negociação e o deslizamento. Além disso, as EMAs têm natureza atrasada, o que pode causar sinais de negociação prematuros.

Para mitigar os riscos, os períodos de EMA podem ser otimizados para controlar a frequência de cruzamento em níveis adequados.

Orientações para melhorias

O principal espaço de otimização reside no ajuste dos parâmetros da EMA, como experimentar mais combinações de períodos ou tentar outras médias móveis como a SMA. Filtros adicionais também podem ser adicionados para melhorar a qualidade do sinal, por exemplo, indicadores de volume ou volatilidade. Além disso, estratégias de stop loss podem ser usadas para reduzir o impacto da turbulência do mercado.

Conclusão

A Multi-EMA Crossover Trend Following Strategy identifica direções de tendência comparando situações de crossover entre várias EMAs, capturando tendências em diferentes prazos. Sua vantagem é a flexibilidade para ajustar parâmetros e capturar tendências em diferentes níveis.


/*backtest
start: 2023-12-27 00:00:00
end: 2024-01-03 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("EMA Trades", overlay=true, pyramiding=4)

src = input(close, title="Source")

shortestLine = input(12, minval=1, title="Shortest Line")
shorterLine = input(26, minval=1, title="Shorter Line")
shortLine = input(50, minval=1, title="Short Line")
middleLine = input(100, minval=1, title="Middle Line")
longLine = input(200, minval=1, title="Long Line")
longerLine = input(89, minval=1, title="Longer Line")
longestLine = input(144, minval=1, title="Longest Line")

shortestLineOutput = ema(src, shortestLine)
shorterLineOutput = ema(src, shorterLine)
shortLineOutput = ema(src, shortLine)
middleLineOutput = ema(src, middleLine)
longLineOutput = ema(src, longLine)
longerLineOutput = ema(src, longerLine)
longestLineOutput = ema(src, longestLine)

//plot(shortestLineOutput, title="Shortest EMA", color=#ffffff)
//plot(shorterLineOutput, title="Shorter EMA", color=#e54fe6)
//plot(shortLineOutput, title="Short EMA", color=#4e6bc3)
//plot(middleLineOutput, title="Middle EMA", color=#1dd6d8)
//plot(longLineOutput, title="Long EMA", color=#d0de10)
//plot(longerLineOutput, title="Longer EMA", color=#ef6a1a)
//plot(longestLineOutput, title="Longest EMA", color=#ff0e0e)

longEnrtyCondition_1 = crossover(shortestLineOutput[1], shorterLineOutput[1]) and shortestLineOutput > shorterLineOutput
longEntryCondition_2 = crossover(shortestLineOutput[1], shortLineOutput[1]) and shortestLineOutput > shortLineOutput
longEnrtyCondition_3 = crossover(shortestLineOutput[1], middleLineOutput[1]) and shortestLineOutput > middleLineOutput
longEntryCondition_4 = crossover(shortestLineOutput[1], longLineOutput[1]) and shortestLineOutput > longLineOutput

shortEnrtyCondition_1 = crossunder(shortestLineOutput[1], shorterLineOutput[1]) and shortestLineOutput < shorterLineOutput
shortEntryCondition_2 = crossunder(shortestLineOutput[1], shortLineOutput[1]) and shortestLineOutput < shortLineOutput
shortEnrtyCondition_3 = crossunder(shortestLineOutput[1], middleLineOutput[1]) and shortestLineOutput < middleLineOutput
shortEntryCondition_4 = crossunder(shortestLineOutput[1], longLineOutput[1]) and shortestLineOutput < longLineOutput

if (longEnrtyCondition_1)
    strategy.entry("Buy1", strategy.long)
    strategy.exit("Sell1")

if (longEntryCondition_2)
    strategy.entry("Buy2", strategy.long)
    strategy.exit("Sell2")

if (longEnrtyCondition_3)
    strategy.entry("Buy3", strategy.long)
    strategy.exit("Sell3")

if (longEntryCondition_4)
    strategy.entry("Buy4", strategy.long)
    strategy.exit("Sell4")

if (shortEnrtyCondition_1)
    strategy.entry("Sell1", strategy.short)
    strategy.exit("Buy1")

if (shortEntryCondition_2)
    strategy.entry("Sell2", strategy.short)
    strategy.exit("Buy2")

if (shortEnrtyCondition_3)
    strategy.entry("Sell3", strategy.short)
    strategy.exit("Buy3")

if (shortEntryCondition_4)
    strategy.entry("Sell4", strategy.short)
    strategy.exit("Buy4")

Mais.