Analisando as razões pelas quais alguns EAs fracassam
Introdução
Os robôs de negociação ou EAs podem funcionar bem durante meses ou, inclusive, vários anos, mas sempre há períodos em que o desempenho se deteriora. Assim, os Expert Advisors raramente mostram lucros estáveis por um longo período de tempo, p. ex. dez anos. E visto que o histórico do EA tem períodos de desempenho desfavoráveis, pode-se esperar que ele tenha uma boa performance no futuro?
A esse respeito, surgem duas perguntas: o que muda nessas séries temporais que influencia tanto o trabalho do robô de negociação? Existe um indicador técnico que possa prever os períodos de sucesso e fracasso do EA? Não haveria nenhum valor para esse tipo de indicador!
Cruzamento de média móvel
Utilizamos dados sobre moedas para um período de 15 minutos distribuídos ao longo de dezesseis anos e a estratégia de teste cruzamento de médias móveis (Moving Average Crossover, MAC) para nossa análise. A estratégia MAC abrirá negociações com base em sinais de médias móveis simples (SMA): um sinal de compra ocorre quando uma SMA rápida cruza uma lenta de cima e um sinal de venda ocorre quando uma SMA rápida cruza uma lenta de baixo. A estratégia MAC deve servir como uma boa base de teste para nossa análise. Os principais parâmetros da estratégia MAC são períodos de SMA rápida e lenta. Em nossa análise, o período de SMA rápida será de 1 a 4, e o período de SMA lenta será de 10 a 150. Os valores serão fixados durante todo o período de testes.
A figura 1 mostra o desempenho do sistema de cruzamento SMA (SMA Crossover) aplicado no EURUSD a partir de janeiro de 2006 até dezembro de 2021. Com parâmetros de período otimizados SMA 2 (rápida) e 80 (lenta), o EA mostra lucros em alguns períodos e resultados negativos em outros. O período de janeiro de 2008 a junho de 2013 acabou sendo um período de crescimento constante dos lucros. A figura 2 mostra o mesmo sistema de cruzamento SMA aplicado no GBPUSD e com o mesmo intervalo. Os valores do período otimizado são 1 para a SMA rápida 80 para a SMA lenta. O gráfico do GBPUSD mostra apenas curtos períodos de lucros.
Fig. 1. Lucro da SMA Cross aplicada no EURUSD (0,1 lotes)
Fig. 2. Lucro da SMA Cross aplicada no GBPUSD (0,1 lotes)
Se olharmos para a mudança no comportamento ao longo do tempo nas Fig. 1 e 2, podemos analisar o comportamento dos indicadores técnicos convencionais e determinar se existe uma relação entre o desempenho dos indicadores técnicos ao longo do tempo e a mudança na rentabilidade da estratégia de cruzamento de média móvel.
O comportamento dos indicadores técnicos tradicionais
Podemos estudar vários indicadores técnicos padrão e ver se eles se comportam de forma diferente durante períodos de resultados positivos e negativos. Fig. 3 mostra o indicador mensal da faixa de média verdadeira (ATR) durante um período de dezesseis anos para o EURUSD. O indicador ATR mede a volatilidade do par de moedas. Existe alguma dependência de tempo em seu comportamento, mas não coincide com as mudanças na rentabilidade na fig. 1. Curiosamente, a fig. 3 mostra extrema volatilidade devido às crises econômicas no final de 2008 e depois no início de 2020. A partir disto, podemos concluir que o uso de limites de variação de preço absoluto para a lógica do sinal não é adequado e que um valor ATR suavizado deve ser incluído. Outro indicador técnico frequentemente utilizado é o Bollinger Bands. O indicador é influenciado tanto pela volatilidade quanto pela força da tendência. Surpreendentemente, seu comportamento a longo prazo em um período de tempo mensal, mostrado na Figura 4, é quase exatamente o mesmo que o do indicador ATR. Como o ATR, o comportamento do Bollinger Bands não coincide com períodos de resultados positivos e negativos sobre os dados EURUSD na fig. 1. Resultados semelhantes foram obtidos com base nos dados do GBPUSD. A volatilidade a longo prazo não explica o comportamento descrito nas fig. 1 e 2.
Fig. 3. ATR do EURUSD, média mensal
Fig. 4. Bollinger Band do EURUSD, média mensal
A função de autocorrelação como um indicador
Ao contrário dos indicadores ATR e Bollinger, a função de autocorrelação (ACF) não depende da volatilidade. ACF é uma ferramenta útil para encontrar padrões em dados. Ela mede a correlação dos elementos da série temporal com elementos dentro da mesma série, mas com um atraso pelo valor de deslocamento. Se os dados apresentarem alguma tendência com pequeno atraso, o ACF terá valores positivos. Em nossa análise, o elemento de série temporal Yi é definido como (preço de fechamento - preço de abertura) da barra i.
Para uma série temporal de N elementos Yi , i = 1...N, o ACF é definido como:
A função de autocorrelação para uma série de dados de preço é muito diferente da autocorrelação de uma série de mudanças de preço de barra para barra. Por exemplo, para a série {1,2,3..14}, o ACF é 0,786. Para uma série de diferenças entre elementos sucessivos desta matriz, o ACF será próximo de zero (supondo que os valores tenham pouco ruído para que não haja divisão por zero).
O código abaixo mostra o cálculo do ACF:
double GetAtCorrVal(double &ClsOpn[],int CorrPer, int LagPer,int joff ) { double corr; double AIn[],BIn[]; double XMean,XNum,XDen; int jj; ArrayResize(AIn,CorrPer); ArrayResize(BIn,CorrPer); XMean = 0.; XNum = 0.; XDen = 0.; corr = 0.; if(CorrPer<2) { Print("No AutoCorr Processing Allowed "); return(corr); } // mean for(jj=0;jj<CorrPer;jj++) { XMean +=ClsOpn[jj+joff]; } XMean = XMean/CorrPer; // variances for(jj=0;jj<CorrPer;jj++) { if(jj<(CorrPer-LagPer)) XNum += (ClsOpn[jj+joff]-XMean)*(ClsOpn[jj+LagPer+joff]-XMean); XDen += (ClsOpn[jj+joff]-XMean)*(ClsOpn[jj+joff]-XMean); } if(XDen==0.) { corr = 0.; } else corr = XNum/XDen; return(corr); } //----------------------------------------------------------------
A fig. 5 mostra a média mensal do ACF durante um período de 16 anos para os dados do EURUSD com um período de suavização de seis meses. Na fig. 1, o período de 2008 até o final de 2012 é lucrativo. A fig. 5 também mostra um valor ACF ligeiramente mais alto nesta faixa, sugerindo uma possível relação entre os retornos da estratégia MAC e o valor ACF.
Fig. 5. Função de autocorrelação, EURUSD, média mensal
Quanto aos dados do GBUISD, a fig. 6 mostra uma relação fraca entre a rentabilidade (fig. 2) e o valor do ACF.
Fig. 6. Função de autocorrelação, GBPUSD, média mensal
A função de autocorrelação pode ser usada como indicador (AutoCorr.mq5), mas a fig. 7 mostra que não é muito adequado para determinar a tendência.
Fig. 7. Indicador ACF, atraso igual a 1
Comportamento do ACF no tempo e estratégia cruzamento de SMA
Podemos obter mais informações analisando o comportamento do ACF imediatamente antes do ponto de cruzamento de SMA (Trigger ACF), bem como imediatamente após o ponto de cruzamento quando o negócio ainda está aberto (Trade ACF). Estes dois tipos de ACF (Trade ACF e Trigger ACF) têm propriedades diferentes. As figuras 8 e 9 mostram o ACF (ACF após a abertura) para dados do EURUSD e do GBPUSD. No testador de estratégia, podemos traçar valores ACF para negócios lucrativos e perdedores separadamente, em função do tempo. Ambos os gráficos mostram que o ACF de negócios lucrativos e perdedores divergem. A seção lucrativa Janeiro 2008-Junho 2013 na figura 1 (EURUSD) coincide aproximadamente com a seção da figura 8, que mostra uma diferença muito grande entre o ACF lucrativo e o ACF perdedor. Desde janeiro de 2018, já existe uma divergência muito pequena entre os valores ACF de negócios rentáveis e perdedores. Na figura 1, isto corresponde a um período de lucro estável e lateral.
Fig. 8. ACF do EURUSD ativada pelo cruzamento de SMA
Fig. 9. ACF do GBPUSD ativada pelo cruzamento de SMA
As fig. 10 e 11 mostram o gráfico Trigger ACF para dados do EURUSD e do GBPUSD. O objetivo desses dois gráficos é explorar se o valor Trigger ACF pode ser usado como um filtro em um EA para aumentar a lucratividade da estratégia de cruzamento de SMA. Em comparação com os dados do ACF aplicado nos negócios, há menos discrepância entre o lucro e a perda para os dados do Trigger ACF. Ou seja, o ACF pode não ser muito útil como filtro de sinal. No entanto, o valor do ACF permanece praticamente inalterado ao longo do tempo, indicando que um limite do ACF fixo pode ser usado como filtro de sinal de disparo. As curvas de lucro/perda se cruzam em grande medida, o que significa que existem seções em que os negócios não serão lucrativos.
FIg. 10. Trigger ACF aplicado no EURUSD com base no cruzamento de SMA
Fig. 11. Trigger ACF aplicado no GBPUSD com base no cruzamento de SMA
Filtro ACF para cruzamento de SMA
Apesar das pequenas diferenças entre lucros e perdas para o ACF (Fig. 10 e 11), se o requisito de limite de autocorrelação for adicionado ao «gatilho» de cruzamento de SMA, o retorno do EA melhorará significativamente em áreas de baixo retorno. As fig. 12 e 13 mostram a rentabilidade do Expert Advisor com um filtro ACF adicional, baseado em dados do EURUSD e do GBPUSD. Pode ser visto todo um período de 16 anos. Se compararmos a figuras 1 e 2 com as figuras 12 e 13, os resultados para o EURUSD e o GBPUSD melhoram significativamente com o limite de autocorrelação aplicado.
Fig. 12. Cruzamento de SMA com filtro ACF aplicado no EURUSD
Fig. 13. Cruzamento de SMA com filtro ACF aplicado no GBPUSD
A fig. 14 é uma tabela que apresenta os resultados obtidos no testador de estratégia. Tanto o EURUSD quanto o GBPUSD têm uma melhora significativa. Em ambos os casos, o lucro total aumentou cerca de 50% quando o filtro foi ativado, e o lucro por negócio (PO) também aumentou significativamente.
Tipo de sinal | Número de negócios | Lucro $ (0,1 lotes) | Lucro/Prejuízo (PF) | Negócio lucrativo (PO) |
Cruzamento de SMA no EURUSD | 3160 | 5830 | 1.10 | 1,85 |
Cruzamento de SMA + ACF no EURUSD | 1548 | 8511 | 1,33 | 5,50 |
Cruzamento de SMA no GBPUSD | 3672 | 5352 | 1,07 | 1,46 |
Cruzamento de SMA + ACF no GBPUSD | 3096 | 8317 | 1.13 | 2,69 |
Fig. 14. Tabela de resultados de testes com base em dados do EURUSD e do GBPUSD
Dependência do ACF em relação à SMA lenta para a estratégia de cruzamento de SMA
Também é interessante observar a dependência da função de autocorrelação média em relação à escolha do período de SMA lenta para negócios lucrativos e perdedores. Isto é mostrado na fig. 15 de acordo com EURUSD de M15. A estratégia de abertura não usa um limite de correlação. Sem levar em conta o valor do ACF, o período ideal da estratégia de média lenta para cruzamento de SMA acabou sendo 80. A fig. 15 mostra que a maior discrepância entre o ACF médio entre negócios lucrativos e perdedores ocorre durante períodos de SMA lentas entre 65 e 80. Depois, podemos usar as informações do ACF para determinar qual o período ideal de média lenta com base no valor de autocorrelação calculado no momento da abertura de negócio.
Fig.15. ACF médio vs período de SMA lenta sobre o EURUSD
Conclusão
A função de autocorrelação é um indicador útil que pode melhorar o desempenho de um EA. Melhora os resultados dos testes filtrando os períodos de baixo desempenho.
Em geral, os coeficientes de correlação, incluindo a função de autocorrelação, representam uma área de pesquisa bastante interessante quando se trata de melhorar o desempenho da negociação. Eles são imunes aos efeitos da volatilidade e são sensíveis aos padrões de preços, incluindo formação e reversão de tendências.
Traduzido do Inglês pela MetaQuotes Ltd.
Artigo original: https://www.mql5.com/en/articles/3299
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso