Estratégia de acompanhamento de tendência de cruzamento de múltiplas EMA


Data de criação: 2024-01-04 16:22:07 última modificação: 2024-01-04 16:22:07
cópia: 6 Cliques: 588
1
focar em
1617
Seguidores

Estratégia de acompanhamento de tendência de cruzamento de múltiplas EMA

Visão geral

A estratégia de seguimento de tendências de cruzamento de múltiplos EMAs usa uma combinação de EMAs com vários conjuntos de diferentes parâmetros, fazendo mais quando forcados de ouro são formados em EMAs de períodos mais curtos, fazendo vazio quando forcados mortos são formados, e realiza negociações de seguimento de tendências. A estratégia usa simultaneamente sete conjuntos de EMAs, incluindo períodos 12, 26, 50, 100, 200, 89 e 144, para determinar a direção da tendência comparando as cruzadas desses EMAs.

Princípio da estratégia

A lógica central da estratégia é baseada no princípio de interseção da linha média EMA. Na linha média EMA, EMAs de curto período são mais sensíveis à mudança de preço e podem refletir tendências de preços recentes; enquanto EMAs de longo período são menos sensíveis à mudança de preço e podem refletir tendências de longo prazo. Quando um EMA de curto período atravessa um EMA de longo período por baixo, formam-se os chamados garfos de ouro, que indicam que a tendência de curto prazo se torna bullish e pode ser configurada para fazer mais pedidos.

A estratégia usa sete grupos de médias de EMA, incluindo 12&26, 12&50, 12&100, 12&200, 12&89 e 12&144. A estratégia compara simultaneamente os cruzamentos entre os sete grupos de EMA. Por exemplo, quando o EMA do dia 12 atravessa o EMA do dia 26 formando um garfo de ouro, uma posição é aberta; quando um garfo de morte ocorre, a posição é nivelada. A estratégia usa a mesma lógica para outros seis grupos de médias de EMA.

Análise de vantagens

A maior vantagem da estratégia é que ela pode capturar tendências em várias escalas de tempo ao mesmo tempo. Usando a combinação de várias médias de EMA, a estratégia pode capturar tendências de curto prazo, mas também pode acompanhar tendências de longo prazo, permitindo o acompanhamento de tendências em vários eixos de tempo. Além disso, a estratégia pode otimizar o desempenho ajustando os parâmetros de diferentes EMAs.

Análise de Riscos

O principal risco desta estratégia é que o sinal de cruzamento pode ser muito freqüente quando uma combinação de EMAs múltiplas é usada. Por exemplo, o número de cruzamentos entre EMAs de 12 e 26 dias é mais frequente do que entre EMAs de 12 e 200 dias.

Para reduzir o risco acima, pode-se otimizar adequadamente os parâmetros de ciclo do EMA, de modo que a sua frequência de cruzamento esteja no intervalo adequado; além disso, pode-se limitar adequadamente o número de posições abertas por dia ou definir um stop loss para controlar o risco.

Direção de otimização

O espaço de otimização da estratégia se concentra principalmente no ajuste de parâmetros da linha média da EMA. Combinações de parâmetros com mais períodos diferentes podem ser experimentadas. Além disso, outros tipos de médias móveis, como SMA, podem ser experimentados. Além disso, a estratégia pode adicionar condições adicionais para filtrar sinais, como indicadores de volume de transação, indicadores de taxa de flutuação, etc., o que melhora a qualidade do sinal.

Resumir

A estratégia de acompanhamento de tendências de cruzamento de linhas médias de EMA múltiplas é uma estratégia de acompanhamento de tendências comum, que permite o acompanhamento de tendências em várias escalas de tempo, determinando a direção da tendência por meio da comparação de situações de cruzamento de EMA múltiplas. A vantagem da estratégia é que os parâmetros podem ser ajustados com flexibilidade para capturar tendências de diferentes níveis. A desvantagem é que os sinais podem ser muito frequentes, aumentando os custos de negociação.

Código-fonte da estratégia
/*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")