Estratégia de algoritmo Golden Cross Double EMA


Data de criação: 2024-01-22 11:04:41 última modificação: 2024-01-22 11:04:41
cópia: 0 Cliques: 646
1
focar em
1617
Seguidores

Estratégia de algoritmo Golden Cross Double EMA

Visão geral

Esta estratégia permite a geração de sinais de negociação de cruzamento de EMAs de linha rápida e de linha lenta para a geração de sinais de negociação de cruzamento de ouro e cruzamento de morte. Quando a EMA de linha rápida atravessa a EMA de linha lenta, gera um sinal de compra; quando a EMA de linha rápida atravessa a EMA de linha lenta, gera um sinal de venda. A estratégia aproveita as vantagens da média móvel para acompanhar efetivamente as tendências do mercado e gera sinais de negociação na fase de início da tendência.

Princípio da estratégia

O indicador central desta estratégia é a linha EMA rápida e a linha EMA lenta. A estratégia usa dois parâmetros diferentes da linha EMA, o parâmetro EMA rápido é 10, o parâmetro EMA lento é 20. A linha EMA de 10 dias responde mais rapidamente às mudanças de preço, enquanto a linha EMA de 20 dias responde mais lentamente. Quando a linha EMA de curto prazo atravessa a linha EMA de longo prazo, a média de curto prazo começa a liderar a média de longo prazo para cima, indicando que a tendência pode entrar em um estado de baixa, o que gera um sinal de compra; ao contrário, quando a média de curto prazo atravessa a média de longo prazo, a média de curto prazo começa a perder a vantagem sobre a média de longo prazo, indicando que a tendência pode entrar em um estado de baixa, o que gera um sinal de venda.

Através do princípio do cruzamento de linhas de EMAs rápidas e lentas, a estratégia captura adequadamente o momento da transição da tendência do mercado e é capaz de produzir sinais de negociação em tempo hábil. Ao mesmo tempo, o indicador EMA em si tem a capacidade de filtrar falsos sinais e evitar a abertura frequente de posições em momentos de turbulência no mercado. Isso permite que a estratégia possa capturar pontos de mudança no mercado e, ao mesmo tempo, reduzir as transações erradas.

Análise de vantagens

  • A utilização do princípio de cruzamento da EMA para capturar pontos de inflexão do mercado, com maior rentabilidade
  • Linhas EMA rápidas e lentas são usadas em conjunto para aproveitar suas vantagens
  • A EMA, por si só, tem um efeito de filtragem que reduz os erros de negociação.
  • Simplicidade, compreensão e otimização
  • Escalabilidade, com a possibilidade de introdução de outros indicadores auxiliares para uma melhor otimização

Análise de Riscos

  • O cruzamento de EMA dupla pode gerar erros frequentes em cidades com tremores
  • Parâmetros de EMA mal definidos podem perder pontos de inflexão de mercado
  • Há um certo atraso, possivelmente a perda de uma oportunidade de operação de linha curta
  • Não conseguem lidar com a mudança radical

Para o risco acima, pode ser otimizado através da introdução de indicadores adicionais, como aumento das condições de filtragem de transação, evitar sinais de erro em combinação com o indicador MACD, usar a velocidade de resposta do indicador de aceleração do EMA auto-adaptável, etc. Além disso, o stop loss razoável e a parada ativa também são necessários.

Direção de otimização

A estratégia pode ser melhorada em várias áreas, incluindo:

  • Aumentar o filtro de abertura de posições: por exemplo, em combinação com o indicador de volume de transação, para evitar falsas rupturas de baixo volume
  • Combinação de indicadores auxiliares, como MACD, para evitar sinais errados
  • Introdução de EMAs adaptáveis, ajustando dinamicamente os parâmetros da EMA de acordo com a situação do mercado
  • Operação conjunta em múltiplos quadros de tempo, aproveitando as vantagens de EMAs de diferentes períodos
  • Otimização de estratégias de stop loss, bloqueio de lucros por meio de stop loss móvel, stop loss proporcional, etc.
  • Otimização automática de parâmetros em combinação com tecnologias como a aprendizagem profunda

Resumir

Esta estratégia capta pontos de inflexão do mercado através do princípio de cruzamento de linhas rápidas e lentas de duas EMAs, com um forte efeito de mercado. Em combinação com indicadores auxiliares e otimizando o stop loss, pode aumentar ainda mais a estabilidade da estratégia. A ideia da estratégia é simples e clara, vale a pena aprender e usar o comerciante de quantificação, e tem um grande espaço de expansão e potencial de otimização.

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

//@version=4
strategy("Backtest single EMA cross", overlay=true)

qty = input(100000, "Buy quantity")

testStartYear = input(2019, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testStartHour = input(0, "Backtest Start Hour")
testStartMin = input(0, "Backtest Start Minute")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, testStartHour, testStartMin)
testStopYear = input(2099, "Backtest Stop Year")
testStopMonth = input(1, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)
testPeriodBackground = input(title="Color Background?", type=input.bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and time >= testPeriodStart and time <= testPeriodStop ? 
   #00FF00 : na
testPeriod() => true


ema1 = input(10, title="Select EMA 1")
ema2 = input(20, title="Select EMA 2")

expo = ema(close, ema1)
ma = ema(close, ema2)

avg_1 = avg(expo, ma)
s2 = cross(expo, ma) ? avg_1 : na
//plot(s2, style=plot.style_line, linewidth=3, color=color.red, transp=0)

p1 = plot(expo, color=#00FFFF, linewidth=2, transp=0)
p2 = plot(ma, color=color.orange, linewidth=2, transp=0)
fill(p1, p2, color=color.white, transp=80)

longCondition = crossover(expo, ma)

shortCondition = crossunder(expo, ma)


if testPeriod()
    strategy.entry("Long", strategy.long, when=longCondition)
    strategy.entry("Short", strategy.short, when=shortCondition)

plotshape(longCondition, title = "Buy Signal", text ="BUY", textcolor =#FFFFFF , style=shape.labelup, size = size.normal, location=location.belowbar, color = #1B8112, transp = 0)
plotshape(shortCondition, title = "Sell Signal", text ="SELL", textcolor = #FFFFFF, style=shape.labeldown, size = size.normal, location=location.abovebar, color = #FF5733, transp = 0)