Estratégia de momentum de acompanhamento de tendências


Data de criação: 2023-10-17 15:26:49 última modificação: 2023-10-17 15:26:49
cópia: 0 Cliques: 628
1
focar em
1617
Seguidores

Estratégia de momentum de acompanhamento de tendências

Visão geral

Esta estratégia baseia-se em um indicador integrador personalizado, que permite o acompanhamento de tendências através da soma acumulada da distância entre o preço e a média móvel, para determinar a direção da tendência de preços.

Princípio da estratégia

A estratégia usa indicadores personalizados para fazer a soma cumulativa da distância entre o preço e a média móvel, concretamente:

  1. Calcula a distância k = close-sma (closer a 200) para uma média móvel simples de 200 de comprimento

  2. Definir o ciclo de acumulação s=29, fazendo a soma acumulada dos valores de k nos últimos períodos de s: sum = 0, for i = 0 to s, sum := sum + k[i]

  3. Quando sum>0 produz o sinal de multiplicador, quando sum produz o sinal de vazio

  4. Ao entrar em uma posição de compra, se a soma < 0, a posição de venda está parada; ao entrar em uma posição de venda, se a soma > 0, a posição de venda está parada

A estratégia determina a direção da tendência geral dos preços através do rastreamento da soma acumulada dos números positivos e negativos da distância entre os preços e a média móvel. Quando integrados e positivos, os preços são considerados em uma tendência ascendente, e devem ser mantidos em uma posição mais elevada. Quando integrados e negativos, os preços são considerados em uma tendência descendente, e devem ser mantidos em uma posição mais baixa.

Vantagens estratégicas

  1. Utilizando um marcador de indicador personalizado, é possível determinar a direção da tendência dos preços

  2. O uso de um pensamento integrativo para a acumulação da distância entre o preço e a média móvel pode melhorar a precisão de julgar as tendências

  3. Uma lógica relativamente simples, fácil de entender e de implementar para facilitar a otimização e melhoria

  4. Pode ajustar flexivelmente os parâmetros do ciclo de integração, otimizando a sensibilidade do integrador para determinar a tendência

  5. A retrospectiva tem um bom desempenho, receitas estáveis e aplicabilidade prática

Risco estratégico

  1. A configuração inadequada do ciclo de integração pode causar insensibilidade do integrador, perdendo o ponto de viragem da tendência

  2. O comprimento da média móvel está mal definido, o que pode fazer com que os integradores interpretem mal as tendências dos preços

  3. Eventos de grande importância que levam a mudanças bruscas nos preços podem gerar sinais errados nos indicadores

  4. A escolha inadequada de variedades de negociação, como variedades com muita volatilidade, pode prejudicar o desempenho do integrador

A solução para o risco:

  1. Optimizar os parâmetros do ciclo de integração para tornar os integradores mais sensíveis às mudanças de tendência

  2. Teste a eficácia de médias móveis de diferentes comprimentos, selecionando a duração que é eficaz para determinar a tendência

  3. A estratégia de fechamento antes de eventos importantes evita sinais errados de mudanças de preços significativas

  4. Escolha variedades de negociação com baixa volatilidade para melhorar a eficácia do cumulador

Direção de otimização da estratégia

  1. Pode-se considerar a adição de outros indicadores auxiliares, como o RSI, para formar um julgamento integrado com base no integrador.

  2. Diferentes tipos de medias móveis podem ser estudados em função do efeito de integração da distância entre o preço e a média móvel

  3. Pode-se tentar otimizar automaticamente os parâmetros do ciclo de integração para adaptá-los a diferentes variedades de negociação

  4. Pode ser adicionado um indicador de volume de transação, evitando que o integrador produza um sinal de erro quando os preços se alteram drasticamente

  5. Os parâmetros do integrador podem ser otimizados automaticamente por métodos como aprendizado de máquina, para tornar as estratégias mais robustas

Resumir

Esta estratégia determina a direção da tendência de preços através de um indicador de divisores personalizado, e usa uma estratégia de acompanhamento de tendências com base na soma acumulada da distância entre o preço e a média móvel. A lógica da estratégia é simples, clara e de bom desempenho. A estratégia pode ser melhorada ajustando os parâmetros do divisor, adicionando indicadores auxiliares e otimização automática.

Código-fonte da estratégia
/*backtest
start: 2023-10-09 00:00:00
end: 2023-10-16 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Indicator Integrator Strat",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,currency="USD",initial_capital=100, overlay=true)

l = input(defval=170,title="Length for indicator")
s = input(title="Length of summation",defval=29)
a= sma(close,l)
r=roc(close,l)
k=close-a
sum = 0
for i = 0 to s
    sum := sum + k[i]
plot(a,color=yellow,linewidth=2,transp=0)
//bc =  iff( sum > 0, white, teal)
//plot(sum,color=bc, transp=20, linewidth=3,style=columns)
//plot(sma(sum,3),color=white)
//hline(0)

inpTakeProfit = input(defval = 0, title = "Take Profit", minval = 0)
inpStopLoss = input(defval = 0, title = "Stop Loss", minval = 0)
inpTrailStop = input(defval = 0, title = "Trailing Stop Loss", minval = 0)
inpTrailOffset = input(defval = 0, title = "Trailing Stop Loss Offset", minval = 0)
useTakeProfit = inpTakeProfit >= 1 ? inpTakeProfit : na
useStopLoss = inpStopLoss >= 1 ? inpStopLoss : na
useTrailStop = inpTrailStop >= 1 ? inpTrailStop : na
useTrailOffset = inpTrailOffset >= 1 ? inpTrailOffset : na


longCondition = sum>0
exitlong = sum<0

shortCondition = sum<0
exitshort = sum>0

strategy.entry(id = "Long", long=true, when = longCondition)
strategy.close(id = "Long", when = exitlong)
strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitlong)

strategy.entry(id = "Short", long=false, when = shortCondition)
strategy.close(id = "Short", when = exitshort)
strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitshort)