Tendência do oscilador de preços absoluto seguindo a estratégia

Autora:ChaoZhang, Data: 21 de Fevereiro de 2023
Tags:

Resumo

Esta estratégia utiliza o indicador do Oscilador de Preço Absoluto (APO) para gerar sinais de negociação e seguir tendências.

Estratégia lógica

  • A APO consiste numa EMA mais rápida e numa EMA mais lenta, tendo em conta a diferença entre as duas.

  • Quando o APO cruzar acima da zona de compra (padrão 3), vá longo. Quando cruzar abaixo da zona de venda (padrão -3), vá curto.

  • Opção para reverter sinais - cruzar acima vende, cruzar abaixo compra.

  • A curva mostra o impulso do preço, pode encontrar reversões na divergência.

Esta é uma estratégia de seguimento de tendências, usando APO para determinar a direção da tendência para sinais longos / curtos sustentados.

Vantagens

  • Implementação simples utilizando a combinação básica de médias móveis.

  • A APO mede o ímpeto e a direcção dos preços.

  • Os parâmetros por defeito geram sinais sustentados a médio prazo, evitando excesso de negociação.

  • Pode detectar inversões de tendência com base na divergência preço/indicador.

Riscos

  • São propensos a sinais falsos e a falhas em mercados variados.

  • Os sinais de atraso podem perder reversões rápidas.

  • Sem stop loss ou dimensionamento de posição, gestão incompleta de riscos.

Atenuantes:

  • Otimizar os parâmetros e testar diferentes combinações por instrumento.

  • Adicione filtros para evitar trocas em condições agitadas.

  • Implementar um stop loss, por exemplo, trailing stop.

Oportunidades de melhoria

  • Optimização de parâmetros para cada instrumento para encontrar pares ideais.

  • Filtros adicionais sobre a ação do preço ou o volume para reduzir os falsos sinais.

  • A classificação dinâmica das posições baseada na volatilidade ou na percentagem da conta.

  • Optimizado para tirar lucro, como trailing stop para seguir tendências.

  • ML para avaliar a probabilidade de êxito dos sinais de divergência.

Conclusão

Este sistema de cruzamento EMA usando APO fornece uma base sólida para seguir tendências. Com otimizações em parâmetros, gerenciamento de risco e filtros, pode se tornar uma estratégia quantitativa eficaz. O conceito central é simples e robusto para desenvolvimento adicional.


/*backtest
start: 2022-09-14 00:00:00
end: 2023-09-20 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 20/09/2018
// 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
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Absolute Price Oscillator (APO) Backtest 2.0", shorttitle="APO")
LengthShortEMA = input(10, minval=1)
LengthLongEMA = input(20, minval=1)
BuyZone = input(3, step = 0.01)
SellZone = input(-3, step = 0.01)
reverse = input(false, title="Trade reverse")
hline(BuyZone, color=green, linestyle=line)
hline(SellZone, color=red, linestyle=line)
hline(0, color=gray, linestyle=line)
xPrice = close
xShortEMA = ema(xPrice, LengthShortEMA)
xLongEMA = ema(xPrice, LengthLongEMA)
xAPO = xShortEMA - xLongEMA
pos = iff(xAPO > BuyZone, 1,
       iff(xAPO < SellZone, -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")

Mais.