Estratégia de acompanhamento de tendências com base em Kama e média móvel


Data de criação: 2024-02-06 09:53:22 última modificação: 2024-02-06 09:53:22
cópia: 5 Cliques: 788
1
focar em
1617
Seguidores

Estratégia de acompanhamento de tendências com base em Kama e média móvel

Visão geral

A ideia central desta estratégia é identificar a tendência do mercado, em combinação com o indicador da linha média de Kama e o indicador da linha média, para realizar o acompanhamento da tendência. Quando a linha média de Kama e a linha média ocorrem em um cruzamento dourado, julgue como entrando em uma tendência ascendente e faça mais; Quando a linha média de Kama e a linha média ocorrem em um cruzamento de morte, julgue como entrando em uma tendência descendente e faça zero.

Princípio da estratégia

  1. Calcular a linha média de Kama. A linha média de Kama é um indicador de rastreamento de tendências mais sensível ao ruído do mercado, que pode ser usado para determinar a tendência dos preços.
  2. Calcule a média. Aqui são calculadas duas médias, uma média móvel de duplo índice mais rápida e outra média móvel ponderada comum.
  3. Quando a linha rápida quebra a linha lenta da direção inferior, faça mais; quando a linha rápida quebra a linha lenta da direção superior, faça um vazio. Assim, o julgamento e o acompanhamento da tendência são concluídos.
  4. Após a entrada, quando o preço quebra a linha média de Kama, sai da posição para realizar a retirada de seguimento de tendência.

Vantagens estratégicas

  1. Esta estratégia, combinada com a linha média de Kama e o indicador de linha média, permite um julgamento mais preciso das tendências do mercado, permitindo um melhor acompanhamento de tendências e controle de retração.
  2. A linha média de Kama é mais sensível ao ruído do mercado e pode detectar pontos de mudança de tendência com antecedência.
  3. A combinação de linhas equilibradas é clara, operacional e fácil de entender.
  4. O espaço para otimização dos parâmetros da estratégia é grande, e os parâmetros podem ser ajustados para otimização de acordo com diferentes variedades e variedades de negociação.

Análise de Riscos

  1. A linha de Kama e a combinação de linhas de Kama também podem ser usadas para avaliar a tendência do mercado.
  2. A configuração de não-perda, em circunstâncias excepcionais, pode levar a maiores perdas.
  3. A configuração de parâmetros incorrecta no momento também pode levar a erros de julgamento, e os parâmetros precisam ser ajustados de acordo com as diferentes variedades.

Recomendações de otimização

  1. Pode-se considerar a inclusão do indicador ATR para a configuração de stop loss.
  2. Pode-se testar o impacto de diferentes parâmetros na taxa de retorno da estratégia, selecionando os parâmetros mais ótimos.
  3. Pode-se considerar a inclusão de outros indicadores de verificação, como o indicador de tremor, para melhorar a precisão do julgamento.
  4. Pode ser criada uma estrutura de auto-adaptação e otimização dinâmica dos parâmetros, permitindo que os parâmetros da política sejam otimizados automaticamente.

Resumir

A estratégia tem uma visão geral clara, usa o cruzamento de ouro com o cruzamento de morte da linha de equilíbrio de carma e da linha de equilíbrio para julgar e acompanhar a tendência. O controle de retração é forte e pode obter melhores resultados através do ajuste e otimização de parâmetros. Mas também há um certo espaço para melhorias, e a estabilidade e a capacidade de rendimento da estratégia podem ser ainda maiores se mais indicadores de verificação e módulos de parada forem adicionados.

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

//@version=2
//synapticex.com
kamaPeriod = input(8, minval=1) 
ROCLength=input(4, minval=1) 

kama(length)=>
    volatility = sum(abs(close-close[1]), length)
    change = abs(close-close[length-1])
    er = iff(volatility != 0, change/volatility, 0)
    sc = pow((er*(0.666666-0.064516))+0.064516, 2)
    k = nz(k[1])+(sc*(hl2-nz(k[1])))
    

n=input(title="period",defval=7)

n2ma=2*wma(close,round(n/2))
nma=wma(close,n)
diff=n2ma-nma
sqn=round(sqrt(n))

n2ma1=2*wma(close[1],round(n/2))
nma1=wma(close[1],n)
diff1=n2ma1-nma1
sqn1=round(sqrt(n))

n1=wma(diff,sqn)
n2=wma(diff1,sqn)
c=n1>n2?lime:red
ma=plot(n1,color=c, linewidth = 3)
plot(cross(nma, nma1) ? nma : na, style = cross, color = c, linewidth = 5)
    
kamaEntry = request.security(syminfo.tickerid,timeframe.period,kama(kamaPeriod))

plot(kamaEntry, color=gray, title="Kama",transp=0, trackprice=false, style=line)


strategy("Kama VS HeikinAshi", overlay=true, pyramiding=0, calc_on_every_tick=true, calc_on_order_fills=true)

buyEntry =  n1 > n2
sellEntry = close < kamaEntry and n1 < n2 

buyExit = close < kamaEntry and n1 < n2
sellExit = n1 > n2 
if (buyEntry)
    strategy.entry("KAMAL", strategy.long, comment="KAMAL")
else
    strategy.close("KAMAL", when=buyExit)

if (sellEntry)
    strategy.entry("KAMAS", strategy.short, comment="KAMAS")
else
    strategy.close("KAMAS", when = sellExit)