Estratégia de oscilação de preço baseada em EMA duplo


Data de criação: 2024-02-26 13:52:41 última modificação: 2024-02-26 13:52:41
cópia: 2 Cliques: 600
1
focar em
1617
Seguidores

Estratégia de oscilação de preço baseada em EMA duplo

Visão geral

A estratégia de flutuação de preços de EMA dupla é usada para avaliar a tendência e a força de um mercado de mercado aberto, calculando a diferença entre os EMA de dois períodos diferentes. Quando a diferença entre a linha rápida e a linha lenta passa de 0 para cima, é um sinal de otimismo. Quando a diferença entre a linha rápida e a linha lenta passa de 0 para baixo, é um sinal de otimismo.

A estratégia é simples e fácil de usar para determinar a força e a direção do mercado com o diferencial da EMA. Mas também há um certo atraso, não conseguindo capturar o ponto de viragem a tempo.

Princípio da estratégia

O indicador central da estratégia de oscilação de preços de duas EMAs é o APO, ou seja, o Absolut Price Oscillator, que representa o diferencial entre as duas EMAs. A fórmula de cálculo é a seguinte:

APO = EMA(短期) - EMA(长期)

A estratégia calcula a APO como:

xShortEMA = ema(收盘价, LengthShortEMA) 

xLongEMA = ema(收盘价, LengthLongEMA)

xAPO = xShortEMA - xLongEMA

O LengthShortEMA e o LengthLongEMA representam, respectivamente, a duração do ciclo do EMA de curto e longo prazo.

A APO tem algumas regras fundamentais de julgamento:

  1. Quando o APO usa 0 para ver o sinal de alarme
  2. Quando o APO passa por 0 é um sinal de baixa
  3. A APO está em positivo e em estado de pessimismo.
  4. O APO é negativo e está em baixa.

O mercado está vazio e o tempo de entrada é determinado pelo valor em tempo real do APO.

Análise de vantagens

A estratégia de flutuação de preços de duas EMAs tem as seguintes principais vantagens:

  1. O uso de médias móveis de índices permite a suavização eficaz dos dados de preços, reduzindo o impacto do ruído.
  2. O APO combina duas EMAs para avaliar a tendência dos preços e a força do mercado
  3. Os sinais de estratégia são simples, claros, fáceis de discernir e de implementar.
  4. Ciclo EMA personalizável para variedades e estilos de negociação diferentes
  5. Sinais reversíveis, para negociações de reversão e de curto prazo

Análise de Riscos

A estratégia de oscilação de preços de duas EMAs também apresenta alguns riscos, como:

  1. A própria EMA está atrasada e não consegue capturar os pontos de inflexão em tempo hábil
  2. Os parâmetros padrão podem não ser adequados para todas as variedades e precisam de ser otimizados
  3. Sinais frequentes e propensos a falsos
  4. Não é possível determinar a posição de parada e parada após a entrada
  5. Há alguns atrasos e pode ter sido a melhor altura de entrada.

Pode-se responder e reduzir esses riscos por meio de stop loss racional, reduzindo perdas individuais; otimizar os parâmetros, adaptando-se a diferentes ciclos; em combinação com outros indicadores de filtragem de sinais, aumentando a estabilidade da estratégia.

Direção de otimização

A estratégia de flutuação de preços de duas EMAs pode ser otimizada principalmente nas seguintes direções:

  1. Optimizar os parâmetros do ciclo EMA, testando combinações de EMA de 5 a 60 comprimentos para encontrar o parâmetro ideal

  2. Adicione outros indicadores, como MA, KDJ, MACD, para definir condições de filtragem e evitar falsos sinais

  3. O uso de indicadores como Brin Belt, KD e outros para determinar a posição racional de parada de parada

  4. Indicadores como o índice de tendência são usados para avaliar a tendência dos preços e evitar negociações adversas.

  5. Adição de indicadores de volume de transações para garantir um sinal de ruptura com suporte de volume de transações

  6. Definição de condições de reentrada para evitar transações frequentes e reduzir o número de transações

Resumir

Resumindo, a estratégia de flutuação de preços de duas EMAs é usada para avaliar a posição de mercado livre por meio do cálculo do diferencial APO de duas EMAs. Os sinais da estratégia são simples, claros e práticos, mas também apresentam alguns inconvenientes. Podemos otimizar e aumentar a estabilidade da estratégia por meio de métodos como otimização de parâmetros, adição de condições de filtragem e configuração de stop loss.

Código-fonte da estratégia
/*backtest
start: 2023-02-19 00:00:00
end: 2024-02-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 30/05/2017
// The Absolute Price Oscillator displays the difference between two exponential 
// moving averages of a security's price and is expressed as an absolute value.
// How this indicator works
//    APO crossing above zero is considered bullish, while crossing below zero is bearish.
//    A positive indicator value indicates an upward movement, while negative readings 
//      signal a downward trend.
//    Divergences form when a new high or low in price is not confirmed by the Absolute Price 
//      Oscillator (APO). A bullish divergence forms when price make a lower low, but the APO 
//      forms a higher low. This indicates less downward momentum that could foreshadow a bullish 
//      reversal. A bearish divergence forms when price makes a higher high, but the APO forms a 
//      lower high. This shows less upward momentum that could foreshadow a bearish reversal.
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="Absolute Price Oscillator (APO) Backtest", shorttitle="APO")
LengthShortEMA = input(10, minval=1)
LengthLongEMA = input(20, minval=1)
reverse = input(false, title="Trade reverse")
hline(0, color=gray, linestyle=line)
xPrice = close
xShortEMA = ema(xPrice, LengthShortEMA)
xLongEMA = ema(xPrice, LengthLongEMA)
xAPO = xShortEMA - xLongEMA
pos = iff(xAPO > 0, 1,
       iff(xAPO < 0, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(xAPO, color=blue, title="APO")