Estratégia de rompimento do canal de média móvel


Data de criação: 2024-01-29 10:26:25 última modificação: 2024-01-29 10:26:25
cópia: 0 Cliques: 666
1
focar em
1617
Seguidores

Estratégia de rompimento do canal de média móvel

Visão geral

A estratégia é baseada no cálculo do meio-carril, do meio-carril e do meio-carril do canal de Keltner, com o meio-carril e o meio-carril e o meio-carril acima e abaixo de cores de preenchimento. Depois de julgar a direção do canal, execute a compra e venda de ruptura.

Princípio da estratégia

O indicador central é o canal de Keltner. A trajectória do canal é o preço típico (preço mais alto + preço mais baixo + preço de fechamento) / N-dia média móvel ponderada. A trajectória do canal e a trajectória inferior são separadas da trajectória de um intervalo de negociação.

Concretamente, a estratégia determina principalmente se o preço irá romper a trajetória superior ou inferior, com a trajetória central como divisória para tomar decisões multi-cabeça ou cabecera. Se o preço de fechamento for maior do que a trajetória superior, faça mais; Se o preço de fechamento for menor do que a trajetória inferior, faça um vazio. A linha de parada é o MA da trajetória média.

Análise de vantagens

  1. Usando o indicador de Keltner Channel, é possível ter uma melhor compreensão da amplitude de flutuação dos preços e evitar falsas rupturas.
  2. O uso de uma linha média de rotação como suporte pode reduzir os prejuízos.
  3. Breaking up tracks e multiple down tracks são estratégias de acompanhamento de tendências e estão de acordo com a lei da mudança de preço da maioria dos ações.

Análise de Riscos

  1. A estratégia de breakout channel é sensível a parâmetros e requer testes repetidos para encontrar a melhor combinação de parâmetros.
  2. O risco de negociação aumenta quando os preços das ações variam muito em um curto período de tempo. A largura de canal pode ser liberada de forma apropriada para reduzir o risco de transações erradas.
  3. Os efeitos são mais relevantes para a configuração dos parâmetros e para a variedade, e precisam ser adaptados para diferentes variedades.

Direção de otimização

  1. Combinação com outros indicadores de filtragem de sinais para evitar erros de negociação, como indicadores de energia, indicadores de taxa de flutuação, etc.
  2. Parâmetros de otimização, para encontrar a melhor combinação de parâmetros. Ajustar principalmente os parâmetros de média e múltiplos de canais.
  3. As configurações de parâmetros de diferentes variedades podem ser muito diferentes e precisam de otimização de classificação.

Resumir

A estratégia é, em geral, mais simples e direta, pertence a uma estratégia de ruptura de preços comum. A vantagem é que a ideia é clara, fácil de entender e apropriada para os iniciantes. Mas também há certas limitações, sensíveis aos parâmetros, os parâmetros de efeito são discordantes e precisam ser testados e otimizados repetidamente.

Código-fonte da estratégia
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © WMX_Q_System_Trading
//@version=3

strategy(title = "WMX Keltner Channels strategy", shorttitle = "WMX Keltner Channels strategy", overlay = true)

useTrueRange = input(true)
length = input(20, minval=5)
mult = input(2.618, minval=0.1)
mah =ema(ema( ema(high, length),length),length)
mal =ema(ema( ema(low, length),length),length)
range = useTrueRange ? tr : high - low
rangema =ema(ema( ema(range, length),length),length)
upper = mah + rangema * mult
lower = mal - rangema * mult
ma=(upper+lower)/2
uc = red
lc=green
u = plot(upper, color=uc, title="Upper")
basis=plot(ma, color=yellow, title="Basis")
l = plot(lower, color=lc, title="Lower")
fill(u, basis, color=uc, transp=95)
fill(l, basis, color=lc, transp=95)


strategy.entry("Long", strategy.long,  stop = upper, when = strategy.position_size <= 0 and close >upper)
strategy.entry("Short", strategy.short,  stop = lower, when = strategy.position_size >= 0 and close<lower)
if strategy.position_size > 0 
    strategy.exit("Stop Long", "Long", stop = ma)

if strategy.position_size < 0 
    strategy.exit("Stop Short", "Short", stop = ma)