Estratégia de retrospecção do centro mais alto/mais baixo

Autora:ChaoZhang, Data: 2023-12-28 15:42:10
Tags:

img

Resumo

A estratégia de busca de centro mais alto / mais baixo é uma estratégia de tendência. Sua ideia principal é calcular o preço médio dos preços mais altos e mais baixos em um determinado período no passado como o preço de referência, e depois calcular a zona de entrada e a zona de saída com base neste preço de referência combinado com a volatilidade. Quando o preço entra na zona de entrada, vá longo; quando o preço entra na zona de saída, feche a posição.

Estratégia lógica

A estratégia é aplicada principalmente através das seguintes etapas:

  1. Calcular o preço mais alto h e o preço mais baixo l nos últimos períodos de lookback_length e suavizá-los com a EMA
  2. Calcule o preço médio de h e l como o preço do centro
  3. Calcular os volumes de volatilidade com base no ATR e no multiplicador ATR
  4. Calcular zona de entrada superior e zona de saída inferior com base no centro e vola
  5. Quando o preço ultrapassa o valor superior, vá longo; quando o preço ultrapassa o valor inferior, feche a posição

Desta forma, pode acompanhar a tendência no tempo em que o preço entra em um estado de tendência; ao mesmo tempo, o risco pode ser controlado através da volatilidade.

Análise das vantagens

Esta estratégia tem as seguintes vantagens:

  1. Pode rastrear efetivamente as tendências e capturar as mudanças de preço no tempo
  2. Usando o preço médio dos preços mais altos e mais baixos pode reduzir a probabilidade de falhas de ruptura
  3. A volatilidade pode ser ajustada automaticamente para controlar o risco
  4. O tempo de detenção da posição é curto, permitindo oportunidades de negociação mais frequentes
  5. Simples de implementar e fácil de compreender e otimizar

Análise de riscos

A estratégia apresenta também alguns riscos:

  1. Podem ocorrer mais transacções desnecessárias nos mercados de gama
  2. As configurações do tamanho e do multiplicador do ATR afetarão o desempenho da estratégia, exigindo testes e otimização cuidadosos
  3. O pullback após a quebra do preço médio pode causar stop loss
  4. Se a velocidade de reversão da tendência for muito rápida, levará a perdas maiores

Para controlar estes riscos, a otimização pode ser feita nos seguintes aspectos:

  1. Ajustar os parâmetros do ATR para reduzir a volatilidade e filtragem de fendas
  2. Adicionar filtros para evitar trocas desnecessárias
  3. Usar o stop loss para bloquear os lucros
  4. Combinar indicadores de tendência para julgar o início e o fim da tendência real

Orientações de otimização

A estratégia também tem espaço para uma maior otimização:

  1. Eficácia dos parâmetros de ensaio em diferentes mercados e prazos
  2. Otimizar automaticamente os parâmetros com algoritmos de aprendizagem de máquina
  3. Incorporar mais indicadores para julgar o início e o fim da tendência
  4. Considere o ajuste dinâmico do dimensionamento da posição
  5. Incluir indicadores de sentimento para evitar preconceito de emoções extremas

Através destas otimizações, podem esperar-se melhorias na estabilidade da estratégia e na rendibilidade.

Conclusão

A estratégia de busca de centro mais alto / mais baixo é uma estratégia simples e prática de tendência. Ela pode capturar mudanças de preço no tempo, rastrear tendências, enquanto controla o risco através da volatilidade. A estratégia é fácil de implementar, adequada para iniciantes em negociação quantitativa aprenderem e praticarem. Ao otimizar parâmetros e regras, o desempenho da estratégia pode ser melhorado.


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

//@version=4
strategy("Highest/Lowest Center Lookback Strategy", overlay=true)

lookback_length = input(200, type=input.integer, minval=1, title="Lookback Length")
smoother_length = input(5, type=input.integer, minval=1, title="Smoother Length")
atr_length = input(10, type=input.integer, minval=1, title="ATR Length")
atr_multiplier = input(1.5, type=input.float, minval=0.5, title="ATR Multiplier")

vola = atr(atr_length) * atr_multiplier
price = sma(close, 3)

l = ema(lowest(low, lookback_length), smoother_length)
h = ema(highest(high, lookback_length), smoother_length)
center = (h + l) * 0.5
upper = center + vola
lower = center - vola
trend = price > upper ? true : (price < lower ? false : na)

bull_cross = crossover(price, upper)
bear_cross = crossunder(price, lower)

strategy.entry("Buy", strategy.long, when=bull_cross)
strategy.close("Buy", when=bear_cross)

plot(h, title="High", color=color.red, transp=75, linewidth=2)
plot(l, title="Low", color=color.green, transp=75, linewidth=2)

pc = plot(center, title="Center", color=color.black, transp=25, linewidth=2)
pu = plot(upper, title="Upper", color=color.green, transp=75, linewidth=2)
pl = plot(lower, title="Lower", color=color.red, transp=75, linewidth=2)

fill(pu, pc, color=color.green, transp=85)
fill(pl, pc, color=color.red, transp=85)

bgcolor(trend == true ? color.green : (trend == false ? color.red : color.gray), transp=85)

Mais.