Estratégia de configuração de inversão extrema

Autora:ChaoZhang, Data: 2024-02-21 14:08:09
Tags:

img

Resumo

A estratégia de configuração de reversão extrema é uma estratégia que utiliza reversões extremas da linha K. Ele julgará com base no tamanho da entidade da última linha K e no valor médio, e gerará sinais de negociação quando o tamanho da entidade for maior que o valor médio e ocorrer uma reversão.

Princípio da estratégia

Esta estratégia julga principalmente o tamanho da entidade da linha K atual e o tamanho global da linha K.

Registram-se a dimensão da entidade (diferença entre aberta e fechada) da última linha K e a dimensão global da linha K (diferença entre a mais elevada e a mais baixa).

Em seguida, utilize a média móvel do intervalo real (RMA) para calcular o tamanho médio da entidade e o tamanho da linha K das últimas 20 linhas K.

Quando a última linha K sobe e o tamanho da entidade é maior que o tamanho médio da entidade, e o tamanho global da linha K também é maior que 2 vezes o tamanho médio da linha K, é gerado um sinal longo.

Em contrapartida, quando a última linha K cai e o tamanho da entidade também preenche as condições acima, é gerado um sinal curto.

Ou seja, os sinais de negociação são gerados quando as linhas K extremas se invertem, julgando com valores médios.

Análise das vantagens

As principais vantagens desta estratégia são:

  1. Utilize características extremas da linha K para facilitar a inversão
  2. Comparar valores extremos do tamanho da entidade e do tamanho global da linha K para encontrar valores anormais
  3. Usar o RMA para calcular médias dinâmicas adaptáveis às alterações do mercado
  4. Combinar com padrões de reversão para sinais mais confiáveis

Análise de riscos

Esta estratégia tem também alguns riscos:

  1. As linhas K extremas não necessariamente se invertem, podem continuar a funcionar
  2. Configurações incorretas dos parâmetros podem causar sensibilidade excessiva ou opacidade
  3. Requer volatilidade suficiente do mercado para suportar, não adequada para consolidação
  4. Pode gerar sinais de negociação frequentes, aumentando os custos de transação e os riscos de deslizamento

Para reduzir os riscos, os parâmetros podem ser ajustados de forma adequada, ou a perda de parada pode ser adicionada às perdas de controlo.

Orientações de otimização

Esta estratégia pode ser otimizada nos seguintes aspectos:

  1. Adicionar filtro de volume para evitar falhas
  2. Usar indicadores de volatilidade para otimizar dinamicamente as definições dos parâmetros
  3. Combinar indicadores de tendência para evitar a inversão de longo e curto
  4. Adicionar modelos de aprendizagem de máquina para julgar a probabilidade de reversão da linha K
  5. Adicionar mecanismo de stop loss

Resumo

A estratégia de configuração de reversão extrema gera sinais de negociação quando ocorrem reversões, julgando situações extremas da última linha K. Ela tem a vantagem de usar recursos excepcionais de linha K extrema, mas também tem alguns riscos. Um melhor desempenho da estratégia pode ser obtido através da otimização de parâmetros e medidas de controle de risco.


/*backtest
start: 2024-02-13 00:00:00
end: 2024-02-20 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Extreme Reversal Setup", overlay=true)

bodySize = input(defval=0.75)
barsBack = input(title="Lookback Period", type=input.integer, defval=20, minval=0)
bodyMultiplier = input(title="Bar ATR Multiplier", type=input.float, defval=2.0, minval=0)

myBodySize = abs(close - open)
averageBody = rma(myBodySize, barsBack)
myCandleSize = abs(high - low)
averageCandle = rma(myCandleSize, barsBack)

signal_long = open[1]-close[1] >= bodySize*(high[1]-low[1]) and 
   high[1]-low[1] > averageCandle*bodyMultiplier and 
   open[1]-close[1] > averageBody and close > open
signal_short = close[1]-open[1] >= bodySize*(high[1]-low[1]) and 
   high[1]-low[1] > averageCandle*bodyMultiplier and 
   close[1]-open[1] > averageBody and open > close

plotshape(signal_long, "LONG", shape.triangleup, location.belowbar, size=size.normal)
plotshape(signal_short, "SHORT", shape.triangledown, location.belowbar, size=size.normal)

strategy.entry("LONG", strategy.long, when=signal_long)
strategy.entry("SHORT", strategy.short, when=signal_short)

Mais.