Estratégia de negociação de média móvel exponencial múltipla

Autora:ChaoZhang, Data: 2024-03-11 16:17:20
Tags:

img

Resumo

Esta estratégia combina múltiplas médias móveis exponenciais (EMA) para identificar pontos de entrada e saída potenciais no mercado. Comparando as tendências das EMAs com diferentes períodos, ela determina a tendência atual do mercado e entra em negociações no início da formação da tendência e fecha posições no início do fim da tendência.

Princípio da estratégia

Esta estratégia utiliza 4 EMAs com diferentes períodos como indicadores principais, a saber, EMAs de curto prazo (default 8 periods), EMAs de curto prazo (default 13 periods), EMAs de médio prazo (default 21 periods) e EMAs de longo prazo (default 55 periods). Quando a EMA de longo prazo está abaixo das outras três EMAs, julga-se que o mercado atual pode estar no início de uma tendência ascendente, e a estratégia abre uma posição longa; quando a EMA de longo prazo está acima das outras três EMAs, julga-se que o mercado atual pode estar no início de uma tendência descendente, e a estratégia fecha todas as posições longas. A estratégia identifica pontos de virada da tendência por esta combinação de arranjos de EMAs longas e curtas para capturar tendências nascentes.

Em comparação com a média móvel simples (SMA), a EMA coloca mais ênfase nos preços recentes e, portanto, sua tendência é mais sensível e pode reagir às mudanças de preço mais rapidamente. A cruzamento de EMAs com períodos diferentes reflete a força das tendências em diferentes escalas de tempo. A EMA de longo prazo é a mais estável e representa a tendência significativa do mercado; as EMAs de médio e curto prazo são relativamente sensíveis e refletem as tendências de mercado de curto e médio prazo.

Análise das vantagens

  1. Ampla aplicabilidade: Esta estratégia é baseada no indicador EMA do preço em si e é aplicável à maioria das variedades com boa liquidez e tendências relativamente suaves, como vários futuros, forex, criptomoedas convencionais, etc.

  2. Seguimento da tendência: Ao comparar a relação de posição das EMA com diferentes períodos para determinar a tendência, pode capturar o início da formação da tendência até certo ponto e acompanhar a tendência.

  3. Parâmetros flexíveis: Os parâmetros de período da EMA podem ser ajustados de forma flexível em função das características das variedades, do horizonte de investimento, etc., e têm uma certa adaptabilidade.

  4. Lógico claro: a estratégia gera sinais de negociação baseados numa simples combinação de arranjos de EMA longa e curta, e a lógica é clara e fácil de compreender e implementar.

Análise de riscos

  1. EMA lag: O EMA é essencialmente um indicador de acompanhamento da tendência e apresenta um certo atraso, o que pode gerar mais sinais falsos num mercado turbulento.

  2. Sensibilidade dos parâmetros: a selecção dos parâmetros do período da EMA tem um impacto significativo no desempenho da estratégia e os parâmetros otimizados podem não manter um bom desempenho em dados fora da amostra.

  3. Falta de filtragem: Esta estratégia não tem filtragem adicional dos sinais de negociação, e todos os sinais gerados serão negociados, o que pode resultar em algumas negociações de baixa qualidade.

  4. Posição fixa: atualmente, a estratégia abre uma posição fixa de 1 unidade de cada vez, não tendo um controlo dinâmico da posição baseado no risco, e a gestão do risco não é suficientemente perfeita.

Direcção de otimização

  1. Introduzir a filtragem de tendências: com base nos sinais da EMA, adicionar indicadores de filtragem da força da tendência, como ATR e ADX, para filtrar os sinais de tendências fracas e períodos turbulentos.

  2. Introduzir a filtragem da volatilidade: com base na filtragem da tendência, a filtragem da volatilidade, como a largura da banda de Bollinger, pode ser introduzida para filtrar sinais de baixa qualidade que possam ser causados por alta volatilidade.

  3. Otimizar o stop-loss: atualmente, a estratégia não possui uma lógica de stop-loss clara.

  4. Posição dinâmica: com base na volatilidade das variedades, na proporção do valor da conta, etc., o número de posições abertas pela estratégia pode ser controlado dinâmicamente para alcançar rendimentos absolutos mais elevados, reduzindo o risco.

  5. Optimização dos parâmetros: Para diferentes variedades e períodos diferentes, os parâmetros ótimos da EMA podem ser diferentes e a otimização dos parâmetros deve ser realizada separadamente de acordo com as características das variedades para melhorar a aplicabilidade da estratégia.

Resumo

Esta estratégia identifica pontos de virada da tendência, comparando as combinações de arranjos longos e curtos de 4 EMAs com diferentes períodos para capturar o início da formação da tendência. A ideia é simples e clara. Suas vantagens estão em sua ampla gama de aplicabilidade, lógica clara e parâmetros flexíveis, e pode rastrear as tendências bem; mas ao mesmo tempo, também tem o atraso inerente dos indicadores EMA, bem como problemas como sensibilidade de parâmetros, falta de filtragem e posição fixa. No futuro, a robustez e rentabilidade desta estratégia podem ser melhoradas a partir de aspectos como a introdução de filtragem de tendência e volatilidade, otimização de stop-loss, posição dinâmica e otimização de parâmetros para torná-la mais completa e confiável.


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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © n1ghthawk

//@version=5
strategy("donmo's 4ema", overlay=true, margin_long=100, margin_short=100)

float long = na
float short = na

lowestEMAPeriodInput = input.int(8, "Lowest EMA")
lowEMAPeriodInput = input.int(13, "Low EMA")
medEMAPeriodInput = input.int(21, "Med EMA")
highEMAPeriodInput = input.int(55, "High EMA")

lowestEMA = ta.ema(close, lowestEMAPeriodInput)
lowEMA = ta.ema(close, lowEMAPeriodInput)
medEMA = ta.ema(close, medEMAPeriodInput)
highEMA = ta.ema(close, highEMAPeriodInput)


emaLongCondition = highEMA<medEMA and highEMA<lowEMA and highEMA<lowestEMA
emaShortCondition = highEMA>medEMA and highEMA>lowEMA and highEMA>lowestEMA

longCondition = ta.change(emaLongCondition)
shortCondition = ta.change(emaShortCondition)

notInTrade = strategy.position_size <= 0
if longCondition and emaLongCondition and notInTrade
    long:=high
    strategy.entry("EL", strategy.long)

if shortCondition and emaShortCondition
    short:=low
    strategy.close("EL")


plot(long+3,title = 'long', color = color.green, linewidth = 4, style = plot.style_cross)
plot(short-3,title = 'short', color = color.red, linewidth = 4, style = plot.style_cross)

plot(lowestEMA, title = "lowestEMA", color=color.blue)
plot(lowEMA, title = "lowEMA", color=color.green)
plot(medEMA, title = "medEMA", color=color.orange)
plot(highEMA, title = "highEMA", color=color.red)

Mais.