Reduzindo a incerteza do mercado com a adoção de Inteligência Artificial (IA) - página 4

 

Indicadores Inteligentes e Advanced Analytics

Acredito que uma tendência de mercado, além dos próprios robôs com inteligência artificial, é a adoção de modelos dentro de indicadores.

O artigo abaixo mostra um bom exemplo disso.

Sequência DeMarker com uso de inteligência artificial (IA)
https://www.mql5.com/pt/articles/2773

Vejo esse conceito muito alinhado com o de Advanced Analytics na área de Business Intelligence (BI) nas organizações, onde ao invés de a máquina substituir as pessoas na análise ela atua com inteligência aumentada, atuando em par com gestores e analistas.

Sds.,
Rogério Figurelli
Sequência DeMarker (TD SEQUENTIAL) com uso de inteligência artificial (IA)
Sequência DeMarker (TD SEQUENTIAL) com uso de inteligência artificial (IA)
  • www.mql5.com
Os sistemas de inteligência artificial envolvem como se fossem teias de aranha as atividades diárias humanas. Eles são umas das primeiras formas de operar empregadas por traders. Sugiro falar sobre como se pode usar o sistema de inteligência artificial com base em redes neurais durante a negociação.  Para começar, é importante discernir o fato...
 
Rogerio Figurelli:

Indicadores Inteligentes e Advanced Analytics

Acredito que uma tendência de mercado, além dos próprios robôs com inteligência artificial, é a adoção de modelos dentro de indicadores.

O artigo abaixo mostra um bom exemplo disso.

Sequência DeMarker com uso de inteligência artificial (IA)
https://www.mql5.com/pt/articles/2773

Vejo esse conceito muito alinhado com o de Advanced Analytics na área de Business Intelligence (BI) nas organizações, onde ao invés de a máquina substituir as pessoas na análise ela atua com inteligência aumentada, atuando em par com gestores e analistas.

Sds.,
Rogério Figurelli

Muito bacana isso!

 
Joscelino Celso de Oliveira:

Muito bacana isso!

Obrigado pelo feedback @Joscelino Celso de Oliveira

 

Fórum de negociação, sistemas de negociação automatizados e testes de estratégias de negociação

Comprometimento do forward testing em razão do cenário de otimização

Rogerio Figurelli, 2019.04.17 19:46

Muito bom @Conrado Carvalho, na verdade o forward testing é uma espécie de walk forward, só que você tem toda razão pois ele é muito simplificado ainda no MT5, e essa realmente é uma funcionalidade a melhorar.

No passado criei um método pioneiro para operar com robôs onde percebi que os testes em conta demonstração e real são a real arena para ajustes e escolha de estratégias, portanto meus dois centavos são você avaliar até que ponto vale esse esforço de validação usando o forward. Uma boa parte dos meus esforços foi parecida com a sua, só que justamente em alinhar resultados de backtesting com conta demonstração e, posteriormente, conta real, e o avanço das tecnologias e ferramentas de inteligência artificial ajudaram muito para isso.

Seja como for, considero o MT5 insuperável como plataforma, tanto no Brasil como no mercado internacional, por dois fatores diferenciados: uma comunidade de longo prazo e uma ferramenta integrada a todos mercados e que na prática foi pioneira no mercado Forex.

Isso não é uma crítica ao mercado de plataformas brasileiras, que tem evoluído, mas no meu entender muitas vezes sem uma visão correta da competitividade internacional, com soluções amarradas a fatores regionais, o que é um problema recorrente em muitas de nossas tecnologias.

Por esse motivo, penso que qualquer estratégia eficaz deve se comprovar nos mais variados mercados, da mesma forma que os seus estudos atuais.

Abraço e sucesso,
Rogério Figurelli


 

Fórum de negociação, sistemas de negociação automatizados e testes de estratégias de negociação

Comprometimento do forward testing em razão do cenário de otimização

Rogerio Figurelli, 2019.04.26 07:02

Olá @Trader_Patinhas, ótima análise, obrigado por compartilhar.

Minha visão é um pouco diferente, pois na prática não podemos esquecer que backtesting é sempre com dados do passado, seja IS ou OOS, ou seja, em tese, qualquer robô com uma estratégia minimamente lógica, pode gerar resultados em backtesting, e quanto mais criamos mecanismos para isso maiores as chances de gerar um sobreajuste, inclusive em OOS. Seja como for, acredito que o que pode ajudar muito em um sistema de ML é focar em cenários futuros. Por exemplo, o trader ou gestor escolher um período no passado que acredita irá se repetir no futuro com maior probabilidade. Nesse sentido, um método de avaliação que faço eventualmente, para algumas tecnologias que desenvolvo, é fazer algo mais radical. A partir de um ajuste dos últimos 30 dias, fazer um backtesting com um período mais longo do passado, como por exemplo os últimos 24 meses.

O resultado, muitas vezes, é que as melhores tecnologias conseguem de alguma forma se repetir com maior consistência em períodos aleatórios do passado, mesmo com ajustes em períodos muito curtos. E, quando se coloca isso em um sistema, com testes permanentes, se abre a porta para descobertas típicas de inteligência artificial, uma vez que nenhum gestor teria condições de fazer isso exaustivamente com múltiplos instrumentos e mercados 24/7/365, e esse é apenas um exemplo de abordagem competitiva. 

Nesse sentido, minha conclusão prática é que, com a entrada de grandes players no mercado brasileiro, como a UBS, com uso massivo de inteligência artificial e abordagens diferenciadas, ficará cada vez mais difícil encontrar boas tecnologias e estratégias que gerem resultados consistentes, o que representa uma grande ameaça para todos players, principalmente os pequenos traders, e oportunidade para todos traders e desenvolvedores de MQL, que acreditarem nessa nova realidade e potencial da plataforma para ML.

Sds.,
Rogério Figurelli


 

Fórum de negociação, sistemas de negociação automatizados e testes de estratégias de negociação

Martingale

Rogerio Figurelli, 2019.05.13 05:38

Olá Trader_Patinhas, concordo com você quanto ao voto vencido, foi apenas no sentido de não ser chato insistindo em algo de pouca credibilidade de vocês. Vou considerar esse como um convite para continuar contrapondo aqui, pois me parece uma boa oportunidade de aprendizado coletivo, afinal as coisas são bem mais complexas quando as estratégias estão competindo e na minha opinião, no mercado de renda variável, só a ciência não é suficiente.

Nesse sentido, antes de mais nada, gostaria de deixar claro que apesar de a expressão Martingale que estamos discutindo aqui ter surgido de sistemas de apostas no século XVIII, estando relacionada ao apostador dobrar sua aposta depois de cada derrota buscando recuperar todas as perdas na primeira vitória, ela se mantém com a mesma lógica dentro dos modelos que referi anteriormente, como analisa o autor abaixo e algumas sentenças que separei para facilitar.

"An old man, who had spent his life looking for a winning formula (martingale), spent the last days of his life putting it into practice, and his last pennies to see it fail. The martingale is as elusive as the soul. A. Dumas p`ere, Mille et un fantˆomes, 1849".

“As far as the origin of the word (and not the concept) is concerned, the first citation is found in the thesis of J. Ville6 [Note that the word was introduced in chapter IV, third paragraph, in the expression “game system or martingale” but that starting in the following chapter, J. Ville totally abandons the expression “game system” and keeps only “martingale”]. He makes clear elsewhere [37] that this name is borrowed directly from the vocabulary of gamblers. In fact, at the time it was not unusual for gamblers claiming to have a sure winning strategy to speak to probabilists; J. Ville himself met a certain Mr. Parcot, who analyzed roulette results to obtain his allegedly winning strategy or martingale. The word was thus familiar to probabilists and was naturally transferred to the mathematical concept of which the first examples came from games”.

The Origins of the Word “Martingale”
http://www.jehps.net/juin2009/Mansuy.pdf

Agora sendo objetivo, como já comentei, o Martingale clássico (ou tradicional, como prefiro referir), a longo prazo, não faz sentido. O meu ponto são as variações de Martingale e escolha de momento. Existem outros fatores relevantes, que não estou considerando, como por exemplo a escolha do instrumento, pois certamente alguns apresentam melhores momentos que outros para esse sistema. Não por menos o mercado Forex é muito usado para variações de Martingale, uma vez que espera-se que pares de moedas fortes nunca virem pó, como no mercado de capitais, o que seria de alto risco até mesmo para essas variações. Gosto também de sua visão sobre as estratégias subjacentes, que me parecem outro exemplo.

Mas o fato é que as variações de Martingale permitem você trabalhar com diversas mudanças, por exemplo ao invés de dobrar o volume aumentar ele apenas um pequeno percentual. Ou ainda limitar a perda máxima da sequência de operações. Ou até mesmo aplicar o Anti-Martingale, operando no ganho, que penso ser uma espécie de momento também, só que da curva de capital.

Uma metáfora para essas variações, e o próprio Martingale, dentro da teoria de jogos, e que utilizo eventualmente com meus alunos de Coaching, é a que encontramos no jogo de Xadrez, com as diferentes abordagens e estratégias de sacrifício de peças. Talvez o Martingale clássico seja o caso extremo de sacrifício de uma Dama, que só se justifica em um momento decisivo de uma partida. E o sacrifício de peões seriam equivalentes às variações de menor risco. Diga-se de passagem, a tecnologia de aprendizado de máquina do famoso software AlphaZero, da empresa DeepMind/Google, surpreende justamente na capacidade incrível de fazer esse tipo de sacrifício, acima de qualquer grande mestre, e esse talvez seja um indício do potencial de inteligência artificial nessa área, embora o mercado seja muito mais complexo e ilimitado.

Seja como for, concordo com você quanto à análise de risco, e penso que uma gestão financeira usando algum sistema assim deveria ser testada e otimizada por um longo prazo, e considero as ferramentas de otimização e backtesting fundamentais para validação e treinamento dos modelos. Mas penso que seja interessante que o mesmo rigor que temos para avaliar a eficácia do Martingale, seja adotada para todo e qualquer outro sistema, pelo menos de forma comparativa, o que, infelizmente, muitas vezes não acontece na prática, e seguidamente vemos sistemas operacionais, principalmente os automáticos ou administrados por robôs, levando a grandes perdas.

Sds.,
Rogério Figurelli


 

Muito interessante as abordagens neste FORUM.

Pessoalmente ainda não encontrei nada eficiente usando IA, olha que já fiz bastante coisa, normalmente os resultados nos testes são inferiores ao uso de indicadores em robôs mais bem elaborados.

No entanto eu levo sempre a abordagem de vários anos em otimizações e backtest, acredito que esta não seja a abordagem correta para uma IA.

Talvez a unica forma da IA funcionar efetivamente, seja fazer o trinamento automático num período curto, 20 dias a cada 3 dias por exemplo, no entanto essa abordagem é complicada para se implementar de forma automática no META. Talvez com a API do Python já seja possível, mas está além de minha capacidade.

Se alguém aqui do FORUM conhecer algum robô de IA que realmente funciona (não vale HTF e MM que manipulam o mercado em baixa volatilidade) gostaria que me indicasse para estuda-lo.

 
Joao Luiz Sa Marchioro:

Muito interessante as abordagens neste FORUM.

Pessoalmente ainda não encontrei nada eficiente usando IA, olha que já fiz bastante coisa, normalmente os resultados nos testes são inferiores ao uso de indicadores em robôs mais bem elaborados.

Olá Joao Luiz Sa Marchioro, obrigado por compartilhar sua visão nessa área. Sou bastante suspeito para responder você, por criar, a muitos anos, produtos de IA para as mais variadas aplicações, e considerar que esse é o estado da arte de robôs traders, mas seguem minhas observações.

Antes de mais nada, gostaria de dizer que é importante existirem críticas a todas novas tecnologias, e você traz para esse tópico algo muito relevante nesse sentido. Apenas para citar um exemplo, não faz muito tempo, eu via severas críticas ao uso de robôs no mercado de capitais brasileiro. Nem estou comentando de IA, mas de automação pura e simples, uma vez que robótica e IA são coisas distintas. Apesar de alguns desses críticos, mais tarde, terem até virado meus alunos de coaching, para operação com método e/ou desenvolvimento de robôs (alguns bem conhecidos), até hoje vejo contrapontos interessantes quando se compara a performance de pessoas e máquinas nessa área, uma vez que estamos tratando de um problema de tomada de decisão com infinitas variáveis, o que sabemos não é nada simples. Nesse cenário, você talvez tenha tanta razão como aqueles que ainda não acreditam, e não usam, robôs.

Seja como for, apenas citando um exemplo, o deep learning, a tecnologia de IA com mais cases de sucesso no mercado atual, abre as portas para criar modelos, e algoritmos, unicamente a partir de dados, e sem programação. Para mim, isso se apresenta como uma grande oportunidade, principalmente para cientistas de dados e arquitetos de sistemas, competirem nesse mercado, antes dominado essencialmente por matemáticos e estatísticos, desenhando modelos de forma braçal. Note que a IA também abre as portas para as próprias máquinas criarem modelos e algoritmos próprios, inclusive em tempo real, algo que considero fascinante e que não pode ser subestimado. Na verdade, minha opinião é que enquanto aqui no Brasil discutimos se vale a pena ou não entrar nessa área, nos países que dominam a tecnologia de trading, o uso de IA é cada vez mais um diferencial competitivo.

Em relação a encontrar algo eficiente usando IA, provavelmente isso aconteceu porque as melhores tecnologias estão reservadas para os grandes players, devido a diversos motivos, principalmente os custos de manter uma equipe especializada na área. Seja como for, penso que hoje já é possível criar robôs em MT5 tão ou mais competitivos que os sistemas corporativos baseados em linguagens, plataformas e protocolos dedicados.

Em relação aos resultados nos testes serem inferiores ao uso de indicadores, aqui me parece que você confunde um pouco os conceitos, pois um robô de IA pode utilizar indicadores também. O que acontece é que algumas tecnologias de IA mais avançadas podem optar por usar ou não. Como comentei anteriormente, se as próprias máquinas são capazes de criar modelos e algoritmos próprios, elas podem e criam cada vez mais indicadores próprios, tornando, no meu entender, os indicadores atuais, mesmo que menos populares, e grande parte dos robôs, usando esses indicadores e desenhados manualmente, absolutamente obsoletos, pois estão dependentes de movimentos gerados mais por pessoas do que por essa nova realidade da IA. Não por menos, a maior parte dos robôs atuais, realmente baseados em estratégias sistêmicas, a partir de indicadores conhecidos no mercado, não possuem consistência a médio e longo prazo. Outro ponto importante é que robôs mais complexos usam tipicamente muitos parâmetros e estão muito mais propensos a gerar overfitting, portanto cuidado com o que você chama de bem elaborados, pois pode ser apenas ilusão, e esse é o típico problema que um bom robô de IA irá ajudar a resolver.

No entanto eu levo sempre a abordagem de vários anos em otimizações e backtest, acredito que esta não seja a abordagem correta para uma IA.

Note que essa também é uma opção, pois IA pode utilizar os mais variados modelos. Talvez você esteja pensando em algo muito específico, como aprendizado de máquina supervisionado, que depende mais de dados rotulados, mas não esqueça que a IA é muito mais ampla, e inclusive o próprio machine learning tem diversos modelos de aprendizado não supervisionados, adaptativos, ativos, híbridos, genéticos, evolucionários, etc., etc.

Pessoalmente, prefiro utilizar arquiteturas cognitivas com competição de várias abordagens em tempo real, que podem ou não depender de backtesting. Em 2010, por exemplo, quando o sistema de sinais do MQL5 foi colocado no ar, fiz um teste dessa tecnologia, estando em vários momentos com 10 sinais entre os top 10 da plataforma, sendo que até hoje utilizo vários dos modelos e algoritmos que se destacaram naquele momento. Uma das vantagens dessa abordagem é que a IA pode ajudar e muito a tornar a transição de backtesting para conta demonstração, e depois real, muito mais precisa, algo que vejo em constante evolução no MT5, mudando o jogo de competição nessa área. Além disso, os inovadores testes em nuvem da plataforma permitem fazer testes cada vez mais em tempo real, o que me parece ser uma força competitiva que não deveria ser desprezada.

Talvez a unica forma da IA funcionar efetivamente, seja fazer o trinamento automático num período curto, 20 dias a cada 3 dias por exemplo, no entanto essa abordagem é complicada para se implementar de forma automática no META. Talvez com a API do Python já seja possível, mas está além de minha capacidade.

Como comentei anteriormente, isso depende da solução de IA, mas considerando modelos de aprendizado de máquina, me parece mais relevante a quantidade de trades, ordens, movimentos do book, etc., do que propriamente o período. O ideal é ter um ambiente onde se possa maximizar tudo, mas na vida real temos que fazer escolhas, e eu prefiro priorizar performance e quantidade de eventos, mais do que tempo passado, principalmente em maior frequência, que é típico em robôs traders e scalpers. Também prefiro contar com um código puro em MQL5, sem depender de APIs ou outras linguagens como Python e R, pois elas vão impactar vários pontos críticos da arquitetura, desde o backtesting até a performance dos robôs. Não por menos, os principais sistemas de IA de trading são portados para linguagens não interpretadas, como Java e C++, que justamente o MQL5 mais se aproxima. E, como já comentei, nesse caso você perde competitividade, passando a se voltar mais para estruturas com maior expertise e capacidade operacional.

Se alguém aqui do FORUM conhecer algum robô de IA que realmente funciona (não vale HTF e MM que manipulam o mercado em baixa volatilidade) gostaria que me indicasse para estuda-lo.

Sugiro começares voltando no tempo (10 anos atrás) analisando o EA abaixo, utilizando o modelo mais simples de rede neural artificial e aprendizado raso, que é o Perceptron, proposto por Frank Rosenblatt em 1957, em conjunto com outros gigantes na área, como Marvin Minsky do MIT. Note que ele também utiliza indicadores (RSI).

Simple Single Layer Perceptron EA - expert para MetaTrader 4
https://www.mql5.com/pt/code/18987

Antes que você diga que não acredita nesse código, vou contar uma pequena história. Participei de praticamente todos lendários campeonatos de trading da MetaQuotes, até o ano de 2009 quando pararam de fazer, justamente para ter mais tempo para criar o MT5, lançado em 2010. No campeonato de 2008, com mais de 500 participantes de todo mundo, meu EA, baseado nos mais variados indicadores, e fazendo presença entre somente mais três brasileiros participantes, teve a sorte de ficar em primeiro lugar no ranking durante as primeiras duas semanas do campeonato (que durava 3 meses, sem ser possível fazer ajustes nos robôs). Entretanto, com o agravamento da crise mundial, meu robô perdeu terreno e vi outro se destacar, e acabar em primeiro lugar no campeonato, se adaptando de forma impressionante, e sem ajustes de seu autor, às grandes mudanças abruptas daquele ano, no auge da crise do subprime.

Mais tarde, o autor desse EA vencedor revelou, gentilmente, o código fonte, que é basicamente o desse EA com Perceptron!

Talvez ele tenha tido sorte, mas prefiro considerar que ele foi mais competente, por endereçar com IA, talvez em sua forma mais primitiva e dentro de um EA, o problema de adaptação. Sorte teria tido eu, se não tivesse ocorrida a crise, e meu EA tivesse mantido a performance das duas primeiras semanas.

Sds.,
Rogério Figurelli

 
Rogerio Figurelli:

Olá Joao Luiz Sa Marchioro, obrigado por compartilhar sua visão nessa área. Sou bastante suspeito para responder você, por criar, a muitos anos, produtos de IA para as mais variadas aplicações, e considerar que esse é o estado da arte de robôs traders, mas seguem minhas observações.

Antes de mais nada, gostaria de dizer que é importante existirem críticas a todas novas tecnologias, e você traz para esse tópico algo muito relevante nesse sentido. Apenas para citar um exemplo, não faz muito tempo, eu via severas críticas ao uso de robôs no mercado de capitais brasileiro. Nem estou comentando de IA, mas de automação pura e simples, uma vez que robótica e IA são coisas distintas. Apesar de alguns desses críticos, mais tarde, terem até virado meus alunos de coaching, para operação com método e/ou desenvolvimento de robôs (alguns bem conhecidos), até hoje vejo contrapontos interessantes quando se compara a performance de pessoas e máquinas nessa área, uma vez que estamos tratando de um problema de tomada de decisão com infinitas variáveis, o que sabemos não é nada simples. Nesse cenário, você talvez tenha tanta razão como aqueles que ainda não acreditam, e não usam, robôs.

Seja como for, apenas citando um exemplo, o deep learning, a tecnologia de IA com mais cases de sucesso no mercado atual, abre as portas para criar modelos, e algoritmos, unicamente a partir de dados, e sem programação. Para mim, isso se apresenta como uma grande oportunidade, principalmente para cientistas de dados e arquitetos de sistemas, competirem nesse mercado, antes dominado essencialmente por matemáticos e estatísticos, desenhando modelos de forma braçal. Note que a IA também abre as portas para as próprias máquinas criarem modelos e algoritmos próprios, inclusive em tempo real, algo que considero fascinante e que não pode ser subestimado. Na verdade, minha opinião é que enquanto aqui no Brasil discutimos se vale a pena ou não entrar nessa área, nos países que dominam a tecnologia de trading, o uso de IA é cada vez mais um diferencial competitivo.

Em relação a encontrar algo eficiente usando IA, provavelmente isso aconteceu porque as melhores tecnologias estão reservadas para os grandes players, devido a diversos motivos, principalmente os custos de manter uma equipe especializada na área. Seja como for, penso que hoje já é possível criar robôs em MT5 tão ou mais competitivos que os sistemas corporativos baseados em linguagens, plataformas e protocolos dedicados.

Em relação aos resultados nos testes serem inferiores ao uso de indicadores, aqui me parece que você confunde um pouco os conceitos, pois um robô de IA pode utilizar indicadores também. O que acontece é que algumas tecnologias de IA mais avançadas podem optar por usar ou não. Como comentei anteriormente, se as próprias máquinas são capazes de criar modelos e algoritmos próprios, elas podem e criam cada vez mais indicadores próprios, tornando, no meu entender, os indicadores atuais, mesmo que menos populares, e grande parte dos robôs, usando esses indicadores e desenhados manualmente, absolutamente obsoletos, pois estão dependentes de movimentos gerados mais por pessoas do que por essa nova realidade da IA. Não por menos, a maior parte dos robôs atuais, realmente baseados em estratégias sistêmicas, a partir de indicadores conhecidos no mercado, não possuem consistência a médio e longo prazo. Outro ponto importante é que robôs mais complexos usam tipicamente muitos parâmetros e estão muito mais propensos a gerar overfitting, portanto cuidado com o que você chama de bem elaborados, pois pode ser apenas ilusão, e esse é o típico problema que um bom robô de IA irá ajudar a resolver.

Note que essa também é uma opção, pois IA pode utilizar os mais variados modelos. Talvez você esteja pensando em algo muito específico, como aprendizado de máquina supervisionado, que depende mais de dados rotulados, mas não esqueça que a IA é muito mais ampla, e inclusive o próprio machine learning tem diversos modelos de aprendizado não supervisionados, adaptativos, ativos, híbridos, genéticos, evolucionários, etc., etc.

Pessoalmente, prefiro utilizar arquiteturas cognitivas com competição de várias abordagens em tempo real, que podem ou não depender de backtesting. Em 2010, por exemplo, quando o sistema de sinais do MQL5 foi colocado no ar, fiz um teste dessa tecnologia, estando em vários momentos com 10 sinais entre os top 10 da plataforma, sendo que até hoje utilizo vários dos modelos e algoritmos que se destacaram naquele momento. Uma das vantagens dessa abordagem é que a IA pode ajudar e muito a tornar a transição de backtesting para conta demonstração, e depois real, muito mais precisa, algo que vejo em constante evolução no MT5, mudando o jogo de competição nessa área. Além disso, os inovadores testes em nuvem da plataforma permitem fazer testes cada vez mais em tempo real, o que me parece ser uma força competitiva que não deveria ser desprezada.

Como comentei anteriormente, isso depende da solução de IA, mas considerando modelos de aprendizado de máquina, me parece mais relevante a quantidade de trades, ordens, movimentos do book, etc., do que propriamente o período. O ideal é ter um ambiente onde se possa maximizar tudo, mas na vida real temos que fazer escolhas, e eu prefiro priorizar performance e quantidade de eventos, mais do que tempo passado, principalmente em maior frequência, que é típico em robôs traders e scalpers. Também prefiro contar com um código puro em MQL5, sem depender de APIs ou outras linguagens como Python e R, pois elas vão impactar vários pontos críticos da arquitetura, desde o backtesting até a performance dos robôs. Não por menos, os principais sistemas de IA de trading são portados para linguagens não interpretadas, como Java e C++, que justamente o MQL5 mais se aproxima. E, como já comentei, nesse caso você perde competitividade, passando a se voltar mais para estruturas com maior expertise e capacidade operacional.

Sugiro começares voltando no tempo (10 anos atrás) analisando o EA abaixo, utilizando o modelo mais simples de rede neural artificial e aprendizado raso, que é o Perceptron, proposto por Frank Rosenblatt em 1957, em conjunto com outros gigantes na área, como Marvin Minsky do MIT. Note que ele também utiliza indicadores (RSI).

Simple Single Layer Perceptron EA - expert para MetaTrader 4
https://www.mql5.com/pt/code/18987

Antes que você diga que não acredita nesse código, vou contar uma pequena história. Participei de praticamente todos lendários campeonatos de trading da MetaQuotes, até o ano de 2009 quando pararam de fazer, justamente para ter mais tempo para criar o MT5, lançado em 2010. No campeonato de 2008, com mais de 500 participantes de todo mundo, meu EA, baseado nos mais variados indicadores, e fazendo presença entre somente mais três brasileiros participantes, teve a sorte de ficar em primeiro lugar no ranking durante as primeiras duas semanas do campeonato (que durava 3 meses, sem ser possível fazer ajustes nos robôs). Entretanto, com o agravamento da crise mundial, meu robô perdeu terreno e vi outro se destacar, e acabar em primeiro lugar no campeonato, se adaptando de forma impressionante, e sem ajustes de seu autor, às grandes mudanças abruptas daquele ano, no auge da crise do subprime.

Mais tarde, o autor desse EA vencedor revelou, gentilmente, o código fonte, que é basicamente o desse EA com Perceptron!

Talvez ele tenha tido sorte, mas prefiro considerar que ele foi mais competente, por endereçar com IA, talvez em sua forma mais primitiva e dentro de um EA, o problema de adaptação. Sorte teria tido eu, se não tivesse ocorrida a crise, e meu EA tivesse mantido a performance das duas primeiras semanas.

Sds.,
Rogério Figurelli

Valeu pela explanação Rogério.

Infelizmente não sei responder por trecho como você fez, seria bem melhor.

Já passei por muitos problemas de overfiting, hoje sou quase especialista no assunto KKKKKK. Brincadeiras a parte, acho que hoje esse é um problema grande intrínseco no testador e parece piorar quando se trata do índice brasileiro, os resultados na maioria das vezes são 1000x melhores que o real deixando o programador iniciante em êxtase sem conhecer a realidade. Em muitos casos já tive overfiting em robôs que não faziam o menor sentido, principalmente se levar em consideração a formação dos ticks, mas isso já esta num passado que desisti de compreender. Agora faço robôs que entram e saem na abertura do candle durante os testes, assim atinjo valores que seriam reais se o robô estivesse operando em conta real. Foi a única forma que consegui para evitar testes superestimados.

Sobre a IA já tentei várias abordagens, inclusive muitas delas aprendidas em artigos do mql5, até agora não consegui nada concreto há longo prazo. todas as minhas abordagens foram em cima de indicadores, inclusive misturando 11 indicadores com seleção por pesos da IA em 1 camada e treinando em 3 anos (2015,16,17) selecionando resultado do teste em 2 anos, 1 dentro e 1 fora da otimização (2017,18) e testando no ano seguinte (2019). Conclusão, nada de concreto.

Ainda não desisti da abordagem, tenho outras idéias na cabeça, mas confesso que meio desanimado com a ideia de IA.

Sobre o código que você mostrou no link (obrigado)é bem próximo de outros que já usei, mas vou estuda-lo mais a fundo.

Pessoalmente ainda não vi um robô de IA realmente eficiente. Sobre a situação do concurso, acredito que o robô IA tenha ido bem devido a cotação pegar uma tendência longa, já percebi que a maioria dos robôs otimizados por nós, pega mais a consolidação do que a tendência, acho que se deve a própria característica dos dados que em sua maior parte estão em tendências curtas ou consolidação.

Por incrível que pareça, meus melhores robôs de indicadores tiveram grandes resultados virando a mão apenas 5x por ano (menos de 40 viradas em 8 anos), o problema é que essas viradas podem ser realmente certeiras ou apenas sorte, ou seja, o dia que errar a virada a pancada será grande, independente de apenas ter identificado ou não os pontos certos de reversão usando apenas indicadores, na abordagem RN eu não consegui nada nem minimamente perto usando IA nos resultados dos indicadores.

Pessoalmente, apesar de indicadores serem atrasados e em sua maioria inúteis para definir a entrada, como filtros acho que apresentam um grande efeito (na IA usei os indicadores como sinal de entrada). Ocorre que, se bem analisado, o indicador também é uma IA simplificada, alias os candles também são, pois analisam os dados passados e se ajusta pro futuro sempre dando uma boa noção do que poderá ocorrer, por isso são muito bons apenas como filtros. A maior questão seria como usa-los corretamente numa IA. Numa abordagem com pesos sobre os valores dos indicadores eu não tive resultados viáveis

Sobre o uso de IA por grandes investidores e corporações, acho que isso tem mais a ver com os gargalos do sistema informático financeiro e seus conceitos do que com o mercado propriamente dito. Qualquer um com muito dinheiro e em conexão com outros grandes manipuladores de mercado pode mover o mercado a fim de atingir exclusivamente o stop da maioria dos trades pequenos, então na prática a IA desses grupos não estuda o movimento de mercado e sim quando move-lo, eu mesmo já passei por isso aplicando num ativo sem liquidez, após algum tempo posicionado resolvi por o STOP pois iria sair, segundos depois a cotação andou quase 2% apenas para atingir meu stop e retornar ao ponto inicial apenas por estar num ativo sem liquidez nenhuma e de fácil manipulação, pura manipulação de mercado feito por algum HFT em conjunto com o Market Maker. Então o uso de IA por grandes investidores não serve como referência para o modelo de IA que abordamos como investidores analistas de mercado.

Sobre o uso de Python para fazer o treinamento, isso não atrapalharia a performance do robô, pois apenas iria trabalhar no aprendizado a cada 3 dias e trocar as configurações selecionadas no novo treinamento, além de rodar separadamente, essa abordagem apenas no código mql5 é inviável, pelo menos até os criadores adaptarem o MT5 para otimizações automatizadas orientadas dentro do código do EA. Alias, acho que andaram demitindo os programadores antigos do MT5, porque os novatos tem feito uma besteira atras da outra. Usar o testador tem sido um exercício de paciência.

Ainda vou perder mais algum tempo no desenvolvimento de IA, vou aproveitar o código do link que enviou pra estudos, mas pessoalmente já estou com essa abordagem de IA em final de linha. Vou continuar por teimosia mesmo. KKKKKKKKKK

Valeu pelas dicas. Obrigado. abraços.

Razão: