Estratégia de negociação de reversão da zona de preços adaptativa

Autora:ChaoZhang, Data: 2023-12-13 16:33:33
Tags:

img

1. Visão geral da estratégia

A estratégia é chamadaEstratégia de negociação de reversão da zona de preços adaptativaEle usa o indicador Adaptive Price Zone (APZ) para identificar zonas de preços e gera sinais de negociação quando os preços saem das zonas. O indicador APZ calcula os limites das zonas superior e inferior com base em médias móveis exponenciais duplas e volatilidade. Quando os preços atravessam os limites, ele indica reversões potenciais de preços e oportunidades de negociação.

A estratégia é principalmente adequada para mercados de faixa, especialmente mercados de consolidação. Ela pode ser usada para negociação intradiária ou de curto prazo como parte de sistemas de negociação automatizados e é aplicável a todos os ativos negociáveis.

2. Estratégia lógica

A estratégia utiliza o indicador APZ para determinar as zonas de preços, com cálculos específicos como segue:

  1. Calcular a diferença entre o máximo máximo e o mínimo mínimo durante os últimos n períodos (período 20 por defeito), denominado xHL
  2. Use a média móvel exponencial dupla para calcular o preço de fechamento suavizado xVal1 e xHL suavizado chamado xVal2, com o período de suavização sendo o inteiro arredondado da raiz quadrada de n (raiz quadrada de 20 arredondado = 4)
  3. Calcular a faixa superior = xVal1 + nBandPct * xVal2
  4. Calcular a faixa inferior = xVal1 - nBandPct * xVal2

A banda superior e a banda inferior formam a zona de preços adaptativa. Os sinais de negociação são gerados quando os preços atravessam esta zona. As regras do sinal são as seguintes:

  1. Quando o preço cai abaixo da faixa inferior, um sinal longo é gerado
  2. Quando o preço sobe acima da banda superior, um sinal curto é gerado

Além disso, um parâmetro de comutação de negociação reversa chamado reverse está incluído.

Em resumo, esta estratégia usa o indicador APZ para determinar zonas de preços adaptáveis e gera sinais de negociação de reversão quando os preços ultrapassam os limites da zona.

3. Análise de vantagens

As principais vantagens desta estratégia são:

  1. O indicador APZ pode determinar as zonas de preços de forma adaptativa, evitando a definição manual de suporte e resistência
  2. Pode fazer transacções de reversão quando o preço ultrapassa os limites da zona, capturando oportunidades de ajuste de preços a curto prazo
  3. Permite a negociação à baixa através do parâmetro de negociação reversa
  4. Tem uma frequência de negociação relativamente elevada para captar mais oportunidades de curto prazo
  5. Pode ser combinado de forma flexível com estratégias de stop loss para controlar os riscos

4. Análise de riscos

Esta estratégia apresenta também alguns riscos, principalmente nos seguintes domínios:

  1. A definição inadequada do parâmetro APZ pode perder oportunidades de reversão de preços
  2. Existem possibilidades de múltiplas falhas de ruptura em mercados variados
  3. A falta de estratégias de stop loss pode levar a perdas enormes

As medidas de atenuação sugeridas são:

  1. Ajustar os parâmetros APZ para encontrar períodos de suavização adequados
  2. Usar outros indicadores para filtrar falhas
  3. Adicionar stop loss móvel aos control losses para operações individuais

5. Orientações de otimização

A estratégia pode ser otimizada nos seguintes aspectos:

  1. Combinar com os indicadores de volatilidade para determinar as compras mais baixas e as vendas mais altas
  2. Adicionar requisitos de resistência à ruptura, tais como volume pesado
  3. Negociação apenas em sessões específicas, como o meio-dia dos EUA
  4. Incorporar sistemas de médias móveis para determinar a tendência geral do mercado
  5. Estabelecer zonas de preços para a entrada, evitando compras e vendas desnecessárias

6. Resumo

Em resumo, esta é uma estratégia de reversão de curto prazo que captura zonas de preços usando o indicador APZ e faz negociações de reversão em torno dos limites da zona. As vantagens são a alta frequência de negociação e a capacidade de ajustar as zonas de preços de forma adaptativa.


/*backtest
start: 2023-12-05 00:00:00
end: 2023-12-11 08:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 15/01/2020
//
// The adaptive price zone (APZ) is a volatility-based technical indicator that helps investors 
// identify possible market turning points, which can be especially useful in a sideways-moving 
// market. It was created by technical analyst Lee Leibfarth in the article “Identify the 
// Turning Point: Trading With An Adaptive Price Zone,” which appeared in the September 2006 issue 
// of the journal Technical Analysis of Stocks and Commodities.
// This indicator attempts to signal significant price movements by using a set of bands based on 
// short-term, double-smoothed exponential moving averages that lag only slightly behind price changes. 
// It can help short-term investors and day traders profit in volatile markets by signaling price 
// reversal points, which can indicate potentially lucrative times to buy or sell. The APZ can be 
// implemented as part of an automated trading system and can be applied to the charts of all tradeable assets.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////

strategy(title="Adaptive Price Zone Backtest", shorttitle="APZ", overlay = true)
nPeriods = input(20, minval=1)
nBandPct = input(2, minval=0)
reverse = input(false, title="Trade reverse")
xHL = high - low
nP = ceil(sqrt(nPeriods))
xVal1 = ema(ema(close,nP), nP)
xVal2 = ema(ema(xHL,nP), nP)
UpBand = nBandPct * xVal2 + xVal1
DnBand = xVal1 - nBandPct * xVal2
pos = 0
pos := iff(low < DnBand , 1,
	   iff(high > UpBand, -1, pos[1])) 
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)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )

Mais.