Otimizando estratégias baseadas no oscilador de momentum


Data de criação: 2024-02-20 13:54:49 última modificação: 2024-02-20 13:54:49
cópia: 0 Cliques: 612
1
focar em
1617
Seguidores

Otimizando estratégias baseadas no oscilador de momentum

Visão geral

A estratégia é uma estratégia de otimização de melhorias com base na taxa de variação do indicador de força de rotação (ROC). Em comparação com a estratégia original de ROC, a estratégia foi otimizada da seguinte forma:

  1. Introduza o valor do ROC máximo histórico, comparando a dinâmica do ROC atual com a do ROC máximo histórico, obtendo o valor relativo do ROC dinâmico.
  2. O processamento de suavização do valor relativo da dinâmica gera um sinal.
  3. Adicionar um limite de sinal de compra e venda.

Com esses métodos de otimização, muitos sinais inativos podem ser filtrados, tornando a estratégia mais estável e confiável.

Princípio da estratégia

O indicador central da estratégia é a taxa de variação (ROC). A ROC mede a taxa de variação do preço de uma ação em um determinado período. A estratégia primeiro calcula o ROC de 9 ciclos de comprimento. Em seguida, registra o valor máximo desse indicador de ROC nos últimos 200 ciclos e calcula a porcentagem do ROC atual em relação ao maior ROC histórico, obtendo a intensidade relativa do impulso.

Esta intensidade relativa é processada de forma suave através de um SMA de 10 de comprimento, filtrando os movimentos de curto prazo e obtendo uma curva de suavização. Quando a curva de suavização está alta por 3 dias consecutivos e o valor é inferior a -80%, considere que a queda do preço da ação começa a abrandar, produzindo sinais de fundo, portanto, faça mais; Quando a curva de suavização está baixa por 3 dias consecutivos e o valor é superior a 80%, considere que a subida do preço da ação começa a abrandar, produzindo sinais de topo e, portanto, feche a posição.

Análise de vantagens

A estratégia tem as seguintes vantagens em comparação com a estratégia original do ROC:

  1. A introdução da comparação de valores máximos de ROC históricos permite uma boa medição da altitude relativa do indicador de dinâmica, filtrando os sinais inválidos cujo valor absoluto não seja elevado.
  2. A suave filtragem de ruído torna o sinal mais estável e confiável.
  3. Estabelecer um limite de compra e venda para reduzir as transações inválidas.

Em geral, a estratégia é uma efetiva subtração do indicador ROC, o que o torna mais adequado para negociação em ativos reais.

Análise de Riscos

A estratégia tem os seguintes riscos:

  1. O indicador de ROC não pode determinar a tendência do mercado, existindo um certo engano. A estratégia pode falhar se ocorrer um período de conversão de alta e baixa.
  2. Os limites de compra e venda não são perfeitos, e um limite muito alto ou muito baixo pode afetar a performance da estratégia.
  3. A configuração incorreta dos parâmetros do SMA também pode afetar a eficácia da estratégia.

Para reduzir o risco acima, pode-se considerar a combinação de indicadores de tendência para determinar a tendência maior; ajustar os parâmetros de limiar, testar os melhores parâmetros; otimizar os parâmetros de ciclo SMA.

Direção de otimização

A estratégia pode ser otimizada de acordo com:

  1. Combinado com indicadores de tendência, para avaliar a tendência geral do mercado, para evitar falhas na transição de um a uma.
  2. Teste diferentes parâmetros de comprimento de ROC e parâmetros de venda e venda de valores de limiar para encontrar a combinação ideal de parâmetros.
  3. Otimizar os parâmetros de suavização do SMA para encontrar o melhor parâmetro.
  4. Aumentar o mecanismo de prevenção de perdas.

Resumir

A estratégia é uma estratégia de otimização para o desenvolvimento secundário com base no indicador de ROC. Ela introduz métodos como comparação de valores máximos históricos, suavização SMA e redução de valores de compra e venda, que podem filtrar sinais inativos e tornar a estratégia mais estável. O principal benefício é a alta qualidade do sinal, adequado para o mercado real.

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

//@version=5
strategy(title="Rate Of Change Mod Strategy", shorttitle="ROC", format=format.price, precision=2)
//length = input.int(9, minval=1)
//source = input(close, "Source")
//roc = 100 * (source - source[length])/source[length]
//plot(roc, color=#2962FF, title="ROC")
//hline(0, color=#787B86, title="Zero Line")

length = input.int(9, minval=1, title="Length")
maxHistory = input(200, title="Max Historical Period for ROC")
lenghtSmooth = input.int(10, minval=1, title="Length Smoothed ROC")
lenghtBUY = input.int(-80, title="Buy Threshold")
lenghtSELL = input.int(80, title="Buy Threshold")

source = close
roc = 100 * (source - source[length]) / source[length]

// Calculate the maximum ROC value in the historical period
maxRoc = ta.highest(roc, maxHistory)

// Calculate current ROC as a percentage of the maximum historical ROC
rocPercentage = (roc / maxRoc) * 100


rocPercentageS = ta.sma(rocPercentage, lenghtSmooth)
if ta.rising(rocPercentageS, 3) and rocPercentageS < lenghtBUY
    strategy.entry("Buy", strategy.long)

if ta.falling(rocPercentageS, 3) and rocPercentageS > lenghtSELL
    strategy.close("Buy")


plot(rocPercentage, color=color.new(color.blue, 0), title="Percentage ROC")
plot(rocPercentageS, color=color.new(#21f32c, 0), title="Percentage ROC")
hline(0, color=color.new(color.gray, 0), title="Zero Line")