Estratégia de rastreamento de tendências baseada em indicadores da EMA

Autora:ChaoZhang, Data: 2023-11-27 15:30:29
Tags:

img

Resumo

Esta estratégia usa principalmente indicadores de desvio padrão e EMA para determinar a direção da tendência através de sinais cruzados EMA e procurar sinais de ruptura com desvio padrão para gerar sinais de compra e venda.

Estratégia lógica

A estratégia consiste em três partes principais:

  1. Diferença EMA (s2): Calcular a diferença entre a EMA rápida (ema_range) e a EMA lenta (ema_watch) para determinar a direção da tendência de preços.

  2. Canal de desvio padrão (s3): Construa o canal superior e inferior com base na diferença EMA com múltiplos do desvio padrão.

  3. Bandeiras e sinais: geram sinais de compra quando os preços atravessam o trilho superior de baixo para cima e sinais de venda quando os preços atravessam o trilho inferior de cima para baixo.

Através desta combinação de indicadores, pode capturar a direção de tendência dos preços e gerar sinais de compra e venda em pontos-chave, o que pertence a uma estratégia típica de rastreamento de tendências.

Análise das vantagens

A estratégia apresenta as seguintes vantagens:

  1. A EMA pode efetivamente acompanhar as tendências.
  2. O desvio padrão cria canais para evitar sinais falsos.
  3. As formas da bandeira fazem com que os sinais sejam claros.
  4. Configuração flexível dos parâmetros das médias móveis e dos múltiplos do desvio-padrão.
  5. O controlo máximo da utilização ajuda a reduzir os riscos.

Análise de riscos

Há também alguns riscos:

  1. Podem ocorrer mais sinais falsos em mercados de gama.
  2. Múltiplos de desvio padrão demasiado grandes podem perder oportunidades.
  3. A ausência de stop loss pode conduzir a perdas maiores durante os retracements.

As soluções:

  1. Adicione um julgamento de mercado limitado ao intervalo e use outras estratégias em vez disso.
  2. Otimizar os parâmetros de desvio padrão.
  3. Adicionar stop loss móvel para controlar a perda de operações individuais.

Optimização

A estratégia pode ser otimizada nas seguintes direcções:

  1. Adicionar mais indicadores como Bandas de Bollinger para melhorar a qualidade do sinal.
  2. Otimizar os parâmetros da média móvel e do desvio-padrão.
  3. Adicionar estratégias de stop loss para reduzir os drawdowns.
  4. Definir parâmetros ideais de sinal de compra/venda de acordo com diferentes mercados.
  5. Adicionar algoritmos de aprendizagem de máquina para determinar o regime geral do mercado.

Conclusão

Em resumo, esta é uma estratégia típica de rastreamento de tendências usando EMA e desvio padrão para construir um sistema de indicadores e gerar sinais de bandeira em pontos-chave. As vantagens estão em capturar tendências e evitar sinais falsos com desvio padrão. Os principais riscos vêm de sinais errados em mercados de faixa e riscos de retirada devido a falta de stop loss. Adicionando indicadores de julgamento, otimizando parâmetros e adicionando stop loss, a estratégia pode ser ainda melhorada em termos de estabilidade e lucratividade.


/*backtest
start: 2023-09-27 00:00:00
end: 2023-11-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("ROCKET_EWO", overlay=true)
ema_range = input(5)
ema_watch = input(13)
inval_a = input(open)
inval_b = input(open)
ratio = input(0)
max = 5000
s2=ta.ema(inval_a, ema_range) - ta.ema(inval_b, ema_watch)
c_color=s2 <= ratio ? 'red' : 'lime'
s3 = s2 + (ta.stdev(open, 1)) * 5.618
plotshape(s3, color=color.white, style=shape.cross, location=location.abovebar, size=size.auto, show_last=max, transp=30, offset= 0)
cr = s2 > 0
alertcondition(cr, title='[Rocket_EWO]', message='[Rocket_EWO]')
buy = s2 > 1
sell = s2 < -1
txt  = "🚀" + "\n"+ "\n"+ "\n"+ "\n"
plotshape(buy, color=color.lime, style=shape.triangleup, location=location.belowbar ,color=color.white, text=txt, size=size.normal, show_last=max, transp=1, offset= -3)
plotshape(not buy, color=color.red, style=shape.triangledown, location=location.belowbar, size=size.normal, show_last=max, transp=1, offset= 0)
signalperiod = time
s4 = ta.cross(s2, 0) ? time : na
colsig= s2 <= ratio ? color.red : color.lime
plotshape((time==s4)?7000:na,color=color.blue, style=shape.flag, location=location.abovebar, size=size.large, transp=1)

longCondition =  ta.crossover(s2, 1.618)
if (longCondition)
    strategy.entry("LONG Id", strategy.long)

shortCondition = ta.crossunder(s2, 1.618)
if (shortCondition)
    strategy.entry("SHORT Id", strategy.short)

strategy.close("LONG Id", when = s2 < 0.218)
// strategy.risk.max_drawdown(75, strategy.percent_of_equity)


Mais.