Estratégia de acompanhamento de tendência de média móvel de canal dinâmico


Data de criação: 2024-02-22 15:51:48 última modificação: 2024-02-22 15:51:48
cópia: 0 Cliques: 577
1
focar em
1617
Seguidores

Estratégia de acompanhamento de tendência de média móvel de canal dinâmico

Visão geral

Esta estratégia é baseada no princípio de rastreamento de tendências de canais dinâmicos e de linhas uniformes. Ela calcula o canal dinâmico de preços, determina a direção da tendência de preços através da ascensão e descensão do canal, combina a dispersação de preços de filtragem de linhas uniformes e gera um sinal de negociação.

Princípios

A estratégia baseia-se principalmente nos seguintes princípios:

  1. Calcule o canal de preços dinâmicos. A linha média do canal é calculada através dos preços mais altos e mais baixos. A linha média do canal é a linha média + a linha média de dispersação de preços no canal superior e a linha média - a linha média de dispersação de preços no canal inferior.

  2. Determine a direção da tendência. Quando o preço entra na trajetória, é definido como positivo; quando o preço sai da trajetória, é definido como negativo.

  3. O ruído de filtração é o ruído causado por flutuações aleatórias de preços de filtração usando a média de dispersação de preços de um determinado período.

  4. Gerar um sinal de negociação. Quando a tendência é de alta, gerar um sinal de compra quando o preço de fechamento do ciclo está abaixo do preço de abertura; quando a tendência é de baixa, gerar um sinal de venda quando o preço de fechamento do ciclo está acima do preço de abertura.

Vantagens

A estratégia tem as seguintes vantagens:

  1. Os canais dinâmicos captam tendências de preços em tempo real;
  2. A filtragem uniforme reduz os sinais falsos;
  3. A combinação da direção da tendência com a direção da entidade da linha K gera um sinal de negociação, evitando ser encaixado.

Riscos

A estratégia também apresenta os seguintes riscos:

  1. A escolha errada de parâmetros pode levar a otimização excessiva;
  2. O que é que os dados mostram?
  3. Não há previsão de grandes flutuações de preços.

Resolução:

  1. A rigorosa seleção e teste do Params;
  2. Aumentar as condições de filtragem para identificar e ordenar os discos de vibração;
  3. Configure o Stop Loss Stop, controle de risco.

Direção de otimização

A estratégia pode ser otimizada em:

  1. Testar a estabilidade de diferentes parâmetros de ciclo;
  2. Aumentar a capacidade de discernimento dos indicadores de VOLUME ou oscilação;
  3. A combinação de bandas, canais e outros elementos para julgar a entrada e a saída.

Resumir

Esta estratégia integra o canal dinâmico e a linha de tendência de julgamento de equilíbrio, e tem um bom desempenho em capturar a direção da tendência em linhas médias e curtas. No entanto, existem algumas limitações, que necessitam de testes adicionais e otimização para adaptar-se a mais condições de mercado.

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


//@version=2
strategy("Noro's Bands Strategy v1.0", shorttitle = "NoroBands str 1.0", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
len = input(20, defval = 20, minval = 2, maxval = 200, title = "Period")
color = input(true, "Color")
needbb = input(false, defval = false, title = "Show Bands")
needbg = input(false, defval = false, title = "Show Background")
src = close

//PriceChannel 1
lasthigh = highest(src, len)
lastlow = lowest(src, len)
center = (lasthigh + lastlow) / 2

//dist
dist = abs(src - center)
distsma = sma(dist, len)
hd = center + distsma
ld = center - distsma

//Trend
trend = close < ld and high < hd ? -1 : close > hd and low > ld ? 1 : trend[1]

//Lines
colo = needbb == false ? na : black
plot(hd, color = colo, linewidth = 1, transp = 0, title = "High band")
plot(center, color = colo, linewidth = 1, transp = 0, title = "center")
plot(ld, color = colo, linewidth = 1, transp = 0, title = "Low band")

//Background
col = needbg == false ? na : trend == 1 ? lime : red
bgcolor(col, transp = 90)

//up =  and trend == 1 ? 1 : 0
//dn =  and trend == -1 ? 1 : 0 

up = close < hd and trend == 1 and (close < open or color == false) ? 1 : 0
dn = close > ld and trend == -1 and (close > open or color == false) ? 1 : 0 

longCondition = up == 1
if (longCondition)
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na)

shortCondition = dn == 1
if (shortCondition)
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na)