Estratégia de acompanhamento de tendências com base na média móvel dinâmica


Data de criação: 2024-01-02 10:44:53 última modificação: 2024-01-02 10:44:53
cópia: 0 Cliques: 559
1
focar em
1621
Seguidores

Estratégia de acompanhamento de tendências com base na média móvel dinâmica

Visão geral

Esta estratégia baseia-se em indicadores de linha de equilíbrio dinâmico, que permite o acompanhamento em tempo real da tendência de preços, e emite sinais de negociação através da ruptura da linha de equilíbrio. A vantagem da estratégia é a configuração de parâmetros simples, o julgamento de sinais é claro e é adequado para posições de linha média e longa.

Princípio da estratégia

A estratégia usa indicadores de equilíbrio dinâmico, incluindo vários tipos de equilíbrio, como ALMA, EMA, SMA e outros. O princípio básico é que, quando o preço atravessa a linha média acima, faça mais; quando o preço atravessa a linha média abaixo, faça espaço.

Concretamente, a estratégia usa a linha média formada pelo ponto alto e baixo, e depois usa a linha média do ponto baixo como linha de sinal de multiplicação, e a linha média do ponto alto como linha de sinal de curto. Quando o preço de fechamento for superior à linha média do ponto baixo, faça mais; quando o preço de fechamento for inferior à linha média do ponto alto, faça curto.

Assim, o uso de indicadores de linha média para determinar a tendência de preços, em combinação com o princípio de ruptura para emitir sinais, forma uma estratégia de acompanhamento de tendências simples e práticas.

Vantagens estratégicas

  • Utilize mediano indicador de julgamento, configuração de parâmetros simples e fácil de operar
  • As regras de julgamento do sinal são claras e não produzem falsos sinais.
  • Algoritmo linear de livre escolha, com flexibilidade para responder a mudanças no mercado
  • Parâmetros de linha média ajustáveis para se adaptar a tendências de diferentes períodos
  • Avaliar sinais em vários períodos de tempo, aumentando a confiabilidade

Riscos e soluções

  • Indicadores da linha média estão atrasados e podem ter perdido algumas oportunidades
    • Reduzir adequadamente o ciclo da média, ou usar a média móvel EMA do índice
  • Maiores tremores em curto prazo, risco de paralisação
    • A largura de travagem deve ser adequadamente relaxada para garantir espaço de manobra suficiente.
  • Riscos de longo prazo que podem não ser resolvidos a tempo
    • Combinado com outros indicadores, evitar a perseguição de altos e baixos

Otimização de Estratégia

  • Adaptação de algoritmos e parâmetros de linha média de acordo com as características de diferentes variedades
  • Aumentar os sub-indicadores de julgamento e melhorar a eficácia da estratégia
  • Aumentar o mecanismo de bloqueio
  • Avaliação da confiabilidade do sinal em múltiplos quadros temporais
  • Buscar melhores parâmetros com aprendizagem de máquina

Resumir

A estratégia usa indicadores de linha média para determinar a direção da tendência dos preços e emite sinais de negociação com base na teoria da ruptura. A vantagem é que é simples e fácil de usar, adequado para posições de linha média e longa, e pode ser ajustado com parâmetros para se adaptar às mudanças no mercado.

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

//@version=4
strategy(title="Baseline Strategy - evo", shorttitle="Baseline", overlay=true)

//INPUTS
mat =               input("ALMA", "MA Type", options=["SMA", "EMA", "WMA", "HMA", "VWMA", "RMA", "ALMA"])
baseline =          input(55, title="MA Length")
src =               input(ohlc4, title="Closing Source")

offset =            input(0.85, step=0.05, title="Offset (alma only)")
sigma =             input(10, title="Sigma (alma only)")

useCurrentRes =     input(true, title="Use Current Resolution")
resCustom =         input("1440", title="Timeframe")

showsignals =       input(false, title="Show Signals ?")

//BASELINE
baselinehigh = 

 mat=="SMA" ? sma(high,baseline) : 
 mat=="EMA" ? ema(high,baseline) : 
 mat=="WMA" ? wma(high,baseline) : 
 mat=="HMA" ? wma(2*wma(high, baseline/2)-wma(high, baseline), round(sqrt(baseline))) : 
 mat=="VWMA" ? vwma(high,baseline) : 
 mat=="RMA" ? rma(high,baseline) :
 mat=="ALMA" ? alma(high, baseline, offset, sigma) : na

baselinelow = 

 mat=="SMA" ? sma(low,baseline) : 
 mat=="EMA" ? ema(low,baseline) : 
 mat=="WMA" ? wma(low,baseline) : 
 mat=="HMA" ? wma(2*wma(low, baseline/2)-wma(low, baseline), round(sqrt(baseline))) : 
 mat=="VWMA" ? vwma(low,baseline) : 
 mat=="RMA" ? rma(low,baseline) : 
 mat=="ALMA" ? alma(low, baseline, offset, sigma) : na

//RESOLUTION
res =               useCurrentRes ? timeframe.period : resCustom

mtfhigh =           security(syminfo.tickerid, res, baselinehigh)
mtflow =            security(syminfo.tickerid, res, baselinelow)

//PLOTS
plot(mtfhigh, color=color.navy, linewidth=2, transp=0, title="Baseline High")
plot(mtflow, color=color.navy, linewidth=2, transp=0, title="Baseline Low")

long =              src > mtfhigh
short =             src < mtflow

barcolor(long ? #ffe0b2 : short ? #2a2e39 : not long and not short ? #b09e82 : na, title="BaseLine BarColor")

signal = 0
signal := long ? 1 : short ? 2 : nz(signal[1])

plotshape(showsignals ? (signal != signal[1] and long ? mtflow : na) : na, title="Long", location=location.absolute, size=size.small, style=shape.labelup, text="Long", textcolor=color.black, transp=40, color=#00ff00)
plotshape(showsignals ? (signal != signal[1] and short ? mtfhigh : na) : na, title="Short", location=location.absolute, size=size.small, style=shape.labeldown, text="Short", textcolor=color.white, transp=40, color=#ff0000)

alertcondition(signal != signal[1], title="Trend Change !", message="Trend Change !")

if (long)
    strategy.entry("Long", strategy.long)
if (short)
    strategy.entry("Short", strategy.short)