Tendência de seguir uma estratégia de longo prazo

Autora:ChaoZhang, Data: 2023-10-17 15:55:41
Tags:

img

Resumo

A estratégia de tendência de longo prazo é uma estratégia que rastreia as tendências de preços usando médias móveis dinâmicas. Determina a tendência atual calculando as médias móveis dos preços mais altos e mais baixos em um período e combina-a com o ATR para stop loss dinâmico e take profit. Esta estratégia funciona bem em mercados de tendência, capturando inversões de tendência de maneira oportuna para a detenção de longo prazo.

Estratégia lógica

A estratégia primeiro calcula as médias móveis dos preços mais altos e mais baixos durante um período (default 200 dias) e toma seu ponto médio como a linha de base. Em seguida, mede o desvio do preço da linha de base. Se o preço estiver acima da linha de base em 1 ATR (0,5 vezes 10 dias ATR por padrão), é considerado uma tendência de alta. Se o preço estiver abaixo da linha de base em 1 ATR, é considerado uma tendência de queda. As posições longas ou curtas são inseridas com base no estado da tendência.

Quando o preço retorna à linha de base, os sinais de saída são acionados. Além disso, o ATR dinâmico permite o stop loss e take profit para seguir a tendência principal, evitando o excesso de negociação em flutuações menores.

Vantagens

  1. As médias dinâmicas conduzem as ações dos preços de forma eficaz para identificar a direção da tendência a longo prazo
  2. Paradas baseadas em ATR seguem a tendência principal evitando dinamicamente sensibilidade excessiva
  3. A captura atempada de reversões de tendência reduz o desperdício de capital prematuro
  4. Lógica simples fácil de implementar

Riscos e mitigação

  1. Pode gerar sinais falsos em mercados variados
  2. Ajuste de parâmetros inadequado pode perder inversões de tendência
  3. A divergência entre as existências de mercado e as existências individuais deve ser considerada

Os riscos podem ser reduzidos ajustando os parâmetros do ATR, adicionando filtros para configurações de alta probabilidade e avaliando as condições do mercado e o apetite pelo risco.

Ideias de melhoria

  1. Adicionar confirmação secundária após os sinais iniciais de entrada utilizando indicadores como KDJ
  2. Otimizar parâmetros baseados na volatilidade, fundamentos de ações individuais
  3. Multiplicador ATR ajustado com base em backtests para equilibrar o fator de lucro e a taxa de volume de negócios
  4. Introduzir um ajustamento dinâmico de volatilidade no stop loss e no take profit
  5. Utilize técnicas de aprendizagem de máquina para otimização automatizada de parâmetros

Resumo

O Trend Following Long Only Strategy é um sistema de negociação de tendências fácil de usar em geral. Ele identifica a direção da tendência usando médias dinâmicas e define controles de risco com paradas baseadas em ATR. Ele pode efetivamente capturar oscilações lucrativas em mercados de tendência. Os mercados de variação devem ser evitados para evitar batidas. Mais melhorias podem ser feitas através do ajuste de parâmetros, adicionando filtros e integrando técnicas de aprendizado de máquina.


/*backtest
start: 2022-10-10 00:00:00
end: 2023-10-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Trend Following Long Only Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

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(0.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 = ema(price > upper ? 1 : (price < lower ? -1 : 0), 3)
c = trend < 0 ? upper : lower

pcenter = plot(center, transp=100)
pclose = plot(close, transp=100)
pc = plot(c, transp=100)

buy_signal = crossover(trend, 0.0) 
sell_signal = crossunder(trend, 0.0)

strategy.entry("Buy", strategy.long, when=buy_signal)
strategy.close("Buy", when=sell_signal)

bgcolor(trend >= 0 ? color.green : color.red, transp=95)
fill(pc, pclose, color=trend >= 0 ? color.green : color.red)

Mais.