Estratégia baseada em média móvel de acompanhamento de tendência


Data de criação: 2024-02-29 14:00:35 última modificação: 2024-02-29 14:00:35
cópia: 0 Cliques: 599
1
focar em
1617
Seguidores

Estratégia baseada em média móvel de acompanhamento de tendência

Visão geral

Esta estratégia é classificada como uma estratégia de seguimento de tendências de preços de ações, por meio do cálculo da linha média de canalização e da criação de posições de hipoteca ou de hipoteca em caso de ruptura da linha média de canalização.

Princípio da estratégia

A estratégia começa com a mediana dos 20 dias de alta como um canal de alta e dos 20 dias de baixa como um canal de baixa, e calcula a linha média do canal. A linha média do canal representa a tendência média de preços de curto prazo.

Análise de vantagens

  • A utilização de canais para acompanhar as tendências de preços e evitar que os fundos fiquem bloqueados no mercado horizontal;
  • A entrada é facilmente controlada através de pontos de venda e compra de passagens aéreas que são avaliados pelo canal.
  • A rede de canais filtra parte do ruído, aumentando a probabilidade de lucro.
  • Configuração de parâmetros de canal para ajustar a sensibilidade da estratégia;

Análise de Riscos

  • A prova de retorno pode ocorrer após a passagem da linha média do canal de grande ruptura, quando a linha média de teste é encaixada;
  • As ações de tipo “oscillação” não são adequadas para esta estratégia e são suscetíveis a arbitragens de alta frequência;
  • A configuração incorreta dos parâmetros também pode afetar a eficácia da estratégia.

Direção de otimização

  • Optimizar os parâmetros do ciclo de canalização, testando a influência de diferentes parâmetros sobre a eficácia da estratégia;
  • Aumentar as estratégias de suspensão de perdas, controlando perdas individuais e totais;
  • Para evitar sinais errôneos, a análise deve ser feita em conjunto com outros indicadores para auxiliar o julgamento.
  • Construção de armazéns em etapas para reduzir a probabilidade de falha na linha central do teste de reajuste de ruptura;

Resumir

A estratégia em geral é mais simples e direta, através do canal de preço básico para julgar a tendência do preço das ações, pertence ao tipo de estratégia de rastreamento de tendências. A vantagem é a facilidade de operação, aproveitando ao máximo as oportunidades de investimento trazidas pela tendência dos preços, evitando que os fundos sejam bloqueados. A desvantagem é que a configuração inadequada dos parâmetros pode afetar o efeito e existe o risco de um teste de retorno.

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

//@version=3
//future strategy
//strategy(title = "stub", default_qty_type = strategy.fixed, default_qty_value = 1,  overlay = true, commission_type=strategy.commission.cash_per_contract,commission_value=2)
//stock strategy
strategy(title = "dc", default_qty_type = strategy.percent_of_equity, default_qty_value = 20,  overlay = true, commission_type=strategy.commission.cash_per_contract,commission_value=.005)
//forex strategy
//strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 20,  overlay = true)
//crypto strategy
//strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 20,  overlay = true, commission_type=strategy.commission.percent,commission_value=.25,default_qty_value=20)


testStartYear = input(2000, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testEndYear = input(2019, "Backtest Start Year")
testEndMonth = input(3)
testEndDay = input(31, "Backtest Start Day")
testPeriodEnd = timestamp(testStartYear,testStartMonth,testStartDay,0,0)


testPeriod() =>
    true
    //time >= testPeriodStart  ? true : false

dcPeriod = 20

dcUpper = highest(close, dcPeriod)[1]
dcLower = lowest(close, dcPeriod)[1]
dcAverage = (dcUpper + dcLower) / 2

plot(dcLower, style=line, linewidth=3, color=red, offset=1)
plot(dcUpper, style=line, linewidth=3, color=aqua, offset=1)

plot(dcAverage, color=black, style=line, linewidth=3, title="Mid-Line Average")

strategy.entry("simpleBuy", strategy.long, when=close > dcAverage)
strategy.close("simpleBuy",when=close < dcLower)
    
strategy.entry("simpleSell", strategy.short,when=close < dcAverage)
strategy.close("simpleSell",when=close > dcAverage)