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


Data de criação: 2024-03-11 16:17:20 última modificação: 2024-03-11 16:17:20
cópia: 0 Cliques: 523
1
focar em
1617
Seguidores

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

Resumo (Overview)

A estratégia utiliza uma combinação de várias médias móveis exponenciais (EMA) para identificar pontos de entrada e saída de potenciais negociações de mercado. Compara os EMAs de diferentes períodos, para avaliar a tendência atual do mercado, intervenção nas negociações iniciais de formação de tendências e fechamento inicial de tendências.

Princípio de Estratégia

A estratégia usa 4 EMAs de diferentes períodos como indicadores centrais, respectivamente, EMAs de ultra curto prazo (default 8), EMAs de curto prazo (default 13), EMAs de médio prazo (default 21) e EMAs de longo prazo (default 55). Quando o EMA de longo prazo está abaixo dos outros três EMAs, a estratégia abre uma posição quando julga que o atual pode estar no início de uma tendência ascendente; Quando o EMA de longo prazo está acima dos outros três EMAs, quando julga que o atual pode estar no início de uma tendência descendente, a estratégia elimina todas as posições excessivas.

A EMA é mais sensível a tendências recentes do que a média móvel simples (SMA) e, portanto, é capaz de responder mais rapidamente às mudanças de preço. A interseção de EMAs de diferentes períodos reflete a força e a fraqueza de tendências em diferentes escalas de tempo. A EMA de longo prazo é a mais robusta e representa a maior tendência do mercado; A EMA de médio prazo é relativamente sensível e reflete as tendências de curto prazo no mercado.

Análise de vantagem

  1. Ampla aplicabilidade: a estratégia é baseada no próprio indicador de EMA do preço e é aplicável à maioria das variedades com boa liquidez e tendência relativamente suave, como vários tipos de futuros, divisas e moedas digitais principais.

  2. Acompanhamento de tendências: Acompanhamento de tendências por meio da comparação das relações de posicionamento de EMAs de diferentes períodos.

  3. Flexibilidade de parâmetros: os parâmetros de ciclo do EMA podem ser ajustados de acordo com as características da variedade, o Investment Horizon, etc., com certa adaptabilidade.

  4. Claridade lógica: a estratégia baseia-se em uma combinação simples de EMAs para gerar sinais de negociação. A lógica é clara, fácil de entender e implementar.

Análise de Riscos

  1. EMA de atraso: EMA é essencialmente um indicador de acompanhamento de tendências, existindo um certo atraso, em mercados de turbulência pode ocorrer mais falsos sinais.

  2. Sensível a parâmetros: a escolha dos parâmetros do ciclo EMA tem um grande impacto no desempenho da estratégia e, após a otimização dos parâmetros, não é necessariamente possível manter um bom desempenho nos dados fora da amostra.

  3. Falta de filtragem: A estratégia carece de filtragem adicional dos sinais de negociação, sendo que as transações são feitas após a geração de todos os sinais, podendo ocorrer algumas transações de baixa qualidade.

  4. Posições fixas: atualmente, a estratégia é de 1 unidade fixa por cada posição aberta, a falta de controle de posições dinâmicas baseadas em risco e a falta de gestão de risco.

Direção de otimização (Optimization Direction)

  1. Introdução de filtro de tendência: baseado no sinal EMA, adicionar indicadores de filtro de intensidade de tendência, como ATR, ADX, e filtrar os sinais de tendência fraca e oscilação.

  2. Introdução de filtros de taxa de flutuação: com base no filtro de tendência, é possível introduzir filtros de taxa de flutuação, como a largura de banda de Brin, para filtrar os sinais de baixa qualidade que podem ser causados por altas taxas de flutuação.

  3. Optimizar o Stop Loss: A estratégia atual carece de uma lógica de stop loss clara, e pode ser aumentada com o stop loss dinâmico baseado no ATR ou porcentagem, após a introdução de filtros de tendência e volatilidade, para controlar o máximo de perda individual.

  4. Posições dinâmicas: pode-se controlar dinamicamente o número de posições abertas por estratégia, com base na volatilidade da variedade, proporção de valor da conta, etc., buscando maior retorno absoluto ao mesmo tempo em que reduz o risco.

  5. Parâmetros de otimização: Diferentes variedades, diferentes ciclos, os parâmetros ótimos do EMA podem ser diferentes. É necessário buscar parâmetros de otimização de acordo com as características da variedade, para melhorar a aplicabilidade da estratégia.

Resumo

A estratégia identifica os pontos de ruptura da tendência através da comparação de uma combinação de 4 EMAs de diferentes períodos, capturando a formação inicial da tendência. A ideia é simples e clara. Sua vantagem é a ampla abrangência, a clareza lógica e a flexibilidade dos parâmetros, que melhor acompanham a tendência; mas também há a latencia inerente ao indicador EMA, bem como a sensibilidade dos parâmetros, a falta de filtros e posições fixas.

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