Estratégia de acompanhamento de tendência de cruzamento de média móvel dupla


Data de criação: 2023-09-28 11:52:16 última modificação: 2023-09-28 11:52:16
cópia: 0 Cliques: 646
1
focar em
1617
Seguidores

Visão geral

Esta estratégia usa o princípio de cruzamento de duas medianas, combinado com indicadores de acompanhamento de tendências, para permitir o julgamento e o acompanhamento de tendências. A principal idéia é fazer mais quando a média curta atravessa a média longa no curto prazo e fazer menos quando a média curta atravessa a média longa no curto prazo. Ao mesmo tempo, adicione a média média de 100 dias para determinar a direção da tendência geral e evitar falsas rupturas.

Princípio da estratégia

Esta estratégia é composta principalmente por um sistema de cruzamento de dupla equilíbrio e um sistema de rastreamento de tendências.

Um sistema de cruzamento de duas linhas iguais contém uma linha rápida EMA1 e uma linha lenta EMA2. A EMA1 assume a linha 10 por defeito e a EMA2 assume a linha 20 por defeito. Um sinal de compra é gerado quando a linha rápida atravessa a linha lenta e um sinal de venda é gerado quando a linha rápida atravessa a linha lenta.

Junte a linha média de 100 dias, a EMA100, para determinar a direção da tendência geral. O sinal de compra é gerado apenas quando o preço está em alta tendência (preço acima da linha média de 100 dias), e o sinal de venda é gerado apenas quando o preço está em baixa tendência (preço abaixo da linha média de 100 dias), o que pode filtrar a maioria dos falsos breaks.

Além disso, a linha K também marca as setas de compra e venda para visualizar os sinais de negociação.

O sistema de rastreamento de tendências usa a linha do dia e a linha do dia no ciclo para confirmar novamente a direção da tendência. A linha média Heikin-Ashi de 5 minutos e 60 minutos no dia é julgada, a linha média de 8 e 12 dias da linha do dia no ciclo é julgada.

Os verdadeiros sinais de negociação são emitidos somente quando os julgamentos do dia e do período coincidem. Isso pode filtrar ainda mais a maior parte do ruído da direção da tendência não dominante.

Análise de vantagens

A maior vantagem desta estratégia é a combinação de um sistema de rastreamento de tendências e de um sistema de cruzamento linear, que permite filtrar de forma eficaz os sinais falsos e manter a retração dentro de limites aceitáveis.

Em termos específicos, os benefícios do sistema de cruzamento bidirecional são os seguintes:

  1. A operação é simples, o princípio é fácil de entender e é adequado para iniciantes.

  2. A operação de tendência, evitando a tendência de contra-clima;

  3. Os parâmetros de linha rápida e lenta podem ser ajustados para diferentes períodos;

  4. A taxa de crescimento foi de 2,1% em março, enquanto a taxa de crescimento foi de 2,1% em março.

Os benefícios de se juntar ao EMA100:

  1. Filtrar operações de contra-balanço para reduzir perdas;

  2. A retracção é controlada com a operação de tendência.

A vantagem do sistema de rastreamento de tendências:

  1. O processo de análise de dados em várias dimensões temporais, evitando a interferência de um único período de tempo.

  2. Assegurar que a direção das negociações esteja de acordo com a tendência geral e reduzir as retrações.

  3. O Heikin-Ashi é uma ferramenta de análise de tendências, que permite filtrar o ruído e capturar apenas a tendência.

Análise de Riscos

A estratégia também apresenta alguns riscos que devem ser lembrados:

  1. No longo prazo, as linhas de equilíbrio se cruzam frequentemente, gerando oportunidades de transação excessivas e custos excessivos de negociação.

  2. Os sinais de negociação podem estar atrasados, perdendo a fase inicial da tendência.

  3. A tendência em grande escala pode virar uma grande perda.

  4. A configuração dos parâmetros precisa ser otimizada, e não apropriada pode afetar o desempenho da política.

Resposta:

  1. Reduzir a frequência das operações de liquidação para evitar transações inválidas.

  2. A curtação apropriada do ciclo da linha média, para obter sinais de tendências mais precoces.

  3. Estabeleça um ponto de parada para controlar perdas únicas.

  4. Optimizar a configuração de parâmetros, adaptando-se a diferentes variedades e ambientes.

Direção de otimização

A estratégia pode ser melhorada em alguns aspectos:

  1. Otimização do ciclo médio. Mais combinações de parâmetros podem ser testadas para encontrar o melhor ciclo.

  2. Adicionar mais períodos de tempo. Por exemplo, adicionar a linha lunar ou a linha trimestral.

  3. Aumentar o mecanismo de suspensão. Configurar o suspensão móvel ou o suspensão do tipo índice.

  4. Combinação de indicadores de volume de transação. Por exemplo, a corrente de energia combina com indicadores como o KDJ.

  5. Otimizar o tempo de entrada. Pode considerar o auxílio de indicadores mais sensíveis, como o MACD.

  6. Adaptação para várias variedades. Ajuste os parâmetros para mais variedades.

Resumir

Esta estratégia integra os sistemas de duplo cruzamento de equilíbrio e de acompanhamento de tendências, permitindo o aproveitamento efetivo de suas vantagens e evitando os problemas de um único sistema. O julgamento multidimensional de tempo garante a correção da direção da negociação e um bom controle de retração. Pode ser otimizado e adaptado a mais condições de mercado.

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © askkuldeeprandhawa

//@version=4

strategy("KSR Strategy", overlay=true)



par1=input(10)
par2=input(20)
ema1=ema(close,par1)
ema2=ema(close,par2)
buy=ema1>ema2
sell=ema2<ema1
mycolor= iff(buy,color.green,iff(sell,color.blue,color.red))
barcolor(color=mycolor)



ema100=ema(close,100)
ibuy=crossover(ema1,ema2)
iSell=crossunder(ema1,ema2)

varp=tostring(close[1])
plotshape(ibuy, "Up Arrow", shape.triangleup, location.belowbar, color.green, 0, 0,"Buy" , color.green, true, size.tiny)
plotshape(iSell, "Down Arrow", shape.triangledown, location.abovebar, color.red, 0, 0, "Sell", color.red, true, size.tiny)

crossed =crossover(ema(close,par1), ema(close,par2))
// if crossed
//     l = label.new(bar_index, na, tostring(close), 
//          color=color.green, 
//          textcolor=color.white,
//          style=label.style_labelup, yloc=yloc.belowbar)
         
crossed2 =crossunder(ema(close,par1), ema(close,par2))
// if crossed2
//     l = label.new(bar_index, na, tostring(close), 
//          color=color.red, 
//          textcolor=color.white,
//          style=label.style_labeldown, yloc=yloc.abovebar)
         
plot(ema(close,par1),"EMA Short",color=color.white)
plot(ema(close,par2),"EMA Long",color=color.orange)


longCondition = crossover(ema(close, par1), ema(close, par2))
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

shortCondition = crossunder(ema(close, par1), ema(close, par2))
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)




ma1_len = input(title="MA1", type=input.integer, defval=8, minval=1, maxval=100, step=1)
ma2_len = input(title="MA2", type=input.integer, defval=12, minval=1, maxval=100, step=1)

o = ema(open, ma1_len)
c = ema(close, ma1_len)
h = ema(high, ma1_len)
l = ema(low, ma1_len)

tim1=input('D',"Short Time")
tim2=input('W',"Long Time")

ema_p=input(title="EMA Period", type=input.integer, defval=16, minval=1, maxval=100, step=1)
refma = ema(close, ema_p)
plot(refma, title="EMA" , linewidth=1, color=close < refma ? color.orange : color.blue)
ha_t = heikinashi(syminfo.tickerid)
ha_o = security(ha_t, tim2, o)
ha_c = security(ha_t, tim2, c)
ha_h = security(ha_t, tim2, h)
ha_l = security(ha_t, tim2, l)
o2 = ema(ha_o, ma2_len)
c2 = ema(ha_c, ma2_len)
h2 = ema(ha_h, ma2_len)
l2 = ema(ha_l, ma2_len)
ha_col = ha_c > ha_o ? color.red : color.green
plotshape(true, style=shape.circle, color=ha_c > ha_o ? color.green : color.red, location=location.bottom)


ha_t1 = heikinashi(syminfo.tickerid)
ha_o1 = security(ha_t1, tim1, o)
ha_c1 = security(ha_t1, tim1, c)
ha_h1 = security(ha_t1, tim1, h)
ha_l1 = security(ha_t1, tim1, l)
o3 = ema(ha_o1, ma2_len)
c3 = ema(ha_c1, ma2_len)
h3 = ema(ha_h1, ma2_len)
l3 = ema(ha_l1, ma2_len)
ha_col1 = ha_c1 > ha_o1 ? color.red : color.green
plotshape(true, style=shape.circle, color=ha_c1 > ha_o1 ? color.green : color.red, location=location.top)