Robos baseados em inteligência artificial



  • Olá Cohen, tudo bem?

    Gostaria de iniciar este tópico com a experiência que estou tendo na criação de robôs no Metatrader 5.

    Atualmente, estou desenvolvendo algumas estratégias não só baseando em tomadas de decisão tipo IF...ELSE, mas utilizando redes neurais e fazendo a máquina “aprender” em cima de um conjunto de dados.

    Estou usando a linguagem Python para modelar as redes e depois devolvendo na linguagem do Metatrader, ficando parecido com isto:

    BAR_V[1]=(BAR_V[1]- -1.49)/4.11;

    BAR_V[2]=(BAR_V[2]- -1.5)/4.29;

    BAR_V[3]=(BAR_V[3]- -1.285)/4.985;

    double Syndrome1_1=Sigmoid1( 0.04545518BAR_V[1]-0.02287051BAR_V[2]-0.1085284*BAR_V[3] );

    double Syndrome1_2=Sigmoid1( 0.0241491BAR_V[1]-0.0205941BAR_V[2]+0.03662095*BAR_V[3]+0.1014109 );

    Isto é somente uma parte do código de uma rede contendo uma camada de entrada, três camadas escondidas e uma de saída, em cima de uma estratégia em VWAP para o mini índice.

    Gostaria de saber se alguém também desenvolve desta forma, e se usa outros métodos de aprendizagem, como Machine Learning, Support Vector Machine, FFT, etc...

    Obrigado.

    Mazzutti.



  • Xará!!

    Estudei redes neurais na faculdade e nunca mais tive oportunidade de ver.

    Adoro esse assunto e tenho muita vontade de aprender mais.

    Terá um curso de finanças quantitativas online pela Fitch baseado no curso de Financias Quantitativas (CQF), mas achei o valor muito alto (em torno de 3500 euros pra 2 dias de curso). E ele começa com Python que eu também nunca precisei aprender e não aprendi... :D

    Se alguém mais puder contribuir ou você mesmo, Rodrigo, puder continuar o assunto, seremos muito gratos!

    Abs.



  • Para aqueles que querem começar a entender o que é fazer a maquina "aprender", e quem gosta de Super Mario (rs), segue este vídeo.http://youtu.be/qv6UVOQ0F44Este é um exemplo de uma rede que faz a maquina aprender por tentativa e erro como chegar até o fim da fase.Vou postar aqui durante os dias mais matérias sobre o assunto aplicado ao mercado.Bom feriado!Mazzutti



  • Muito bom o video Mazutti,o Machine Learning é incrível,uma vez vi um programa no TED falando que após o aprendizado de alguns softwares os programadores nem imaginam como poderiam escrever aquele codigo na mão. :)

    obrigado por compartilhar



  • Olá Rodrigo. Gostei de sua iniciativa. Você acha que podemos criar um setup tendo o hilo como rastreador e um outro como filtro para evitar falsas entradas em mercado lateral, tendo por base seu conhecimento de redes neurais? Se achar factível, tenho interesse desenvolver isso . abraços

    Enviado do meu dispositivo Samsung



  • Bem legal Rodrigo!
    Realmente esse caminho é muito superior ao nosso cérebro limitado.

    No exemplo do MarI/O, me pareceu que existe sempre uma repetição. Isso é mais simples.

    No mercado já é diferente, mas mesmo assim acredito ser possível fazermos algo tão "inteligente".



  • Bom dia Rodrigo.
    Sim, usei este exemplo só para ilustrar como uma rede treinada pode atuar. Neste caso os obstáculos já são pré definidos e sempre se repetem. A técnica usada para treinar esta rede é por tentativa e erro.
    Para o mercado realmente fica impossível desta forma, mas é possível treinar uma rede usando dados passados.
    Aproveitando o email do jcmarcuschi, sim é possível criar a estratégia que você sugeriu. Talvez o filtro seja possível medindo a volatilidade a cada momento. Vamos ver vou tentar modelar algo do tipo.
    Atualmente estou desenvolvendo um robô participativo, baseado no vwap. Ele não agride ao mercado, e sim lança ordens limitadas no mercado baseando neste indicador e outras variáveis (volatilidade, máximas e mínimas de 5 a 30 minutos e probabilidades). Resumindo estou tentando reproduzir um dos robôs da link...rs.

    Vou inserir durante os dias aqui neste tópico e compartilhar os avanços desta estratégia e como estou modelando a rede.

    Abraços.

    Mazzutti



  • Bom dia Mazzuti e demais amigos.

    Atualmente utilizo um Ea desenvolvido pela Profit Factor com 2 indicadores parametrizaveis:

    1-profit line: que estabelece direção da tendência dentro do time frame escolhido.

    2-estocastico:obedecendo a direção dispara o gatilho .

    Tem oferecido bons resultados. Ele é pago.

    Entretanto o hilo parece ser mais ágil como gatilho. Estou a disposição para trocar idéias sobre inserir um rastreador de tendências confiável para filtrar o movimento lateral. Posso dizer-lhe que dentre todos que usei na conta real o melhor foi o Profit line , mas seu código é fechado.



  • Amigos,

    Aproveitando o assundo, o Coursera está oferecendo um curso sobre Aprendizagem Automática (Machine Learning), pela Universidade de Stanford, a se iniciar em 15 de setembro. Para quem tiver interesse, ele é gratuito (a menos que o aluno deseje o certificado).

    Acho que é um assunto relevante para quem quer aprender um pouco mais sobre Inteligência Artificial.

    Segue o link: https://www.coursera.org/learn/machine-learning/

    Espero que seja útil.

    Abs.,

    Finon



  • Bom dia Filipe.
    Obrigado pelo link, ajuda muito para quem quer aprimorar o assunto.
    Machine learning é um dos métodos de aprendizagem muito usado em robótica. Amigos meus que estão fazendo doutorado lá na FEI estão usando Machine Learning para ensinar um robô andar no gramado, que é um piso irregular. Ele fica extrapolando n cálculos até achar um vetor através de regressão linear (isso é só o básico).
    Quero contribuir mais aqui na comunidade. Vou montar uma apresentação básica sobre redes neurais aplicado ao Metatrader e compartilhar aqui.
    Abraços.
    Mazzutti



  • Muito legal, Mazzutti!
    Excelente iniciativa!


  • TNT

    Eu já fiz esse curso do Coursera Filipe, e recomendo (o curso é em inglês).

    Mazzuti, o curso é uma introdução a Machine Learning de forma geral, isso engloba várias técnicas de IA: Regressão Linear, Redes Neurais, Clustering, etc).

    Att,

    hugo



  • Muito bacana, Hugo! Estou realmente interessado em aprender mais sobre o assunto! Qualquer coisa interessante que for aprendendo, trago para cá!

    Abs.



  • Que demais pessoal!!!

    Vou pegar informações desse curso se ainda der tempo.

    Rodrigo, vamos agendar um webinar seu sobre o assunto! O que acha?!



  • Boa noite Rodrigo Mazzutti,Também estou tentando desenvolver um EA baseado em rede neural. Inicialmente estou fazendo testes com a toolbox de redes neurais do matlab. A ideia é: i) exporto os dados do gráfico para um arquivo txt com valores dos indicadores (por exemplo, RSI, OBV, Bandas de Bollinger, etc.) e os preços mínimo, abertura, fechamento e máximo;ii) leio este arquivo no matlab, faço o tratamento dos dados e os utilizo para treinar a rede neural;iiii) uma vez que a rede neural foi treinada, exporto os pesos e bias da rede para um arquivo CSV;iv) finalmente, leio o arquivo CSV no EA.Inicialmente penso em utilizar a rede neural para identificar os padrões de tendência do mercado.Também penso utilizar o histórico de preços (mínimo, abertura, fechamento e máximo) para levantar as distribuições de probabilidade empíricas dos desvios, por exemplo, (Abertura - Mínimo) e (Máximo - Abertura), para definir os pontos de entrada, proteção (stop loss) e saída com lucro (stop gain) das operações, tendo como parâmetro: i) probabilidade de iniciar a operação; ii) risco do stop loss ser atingido e probabilidade do stop gain ser atingido.Assim que tiver algo mais concreto, posto no grupo.



  • Warlley,

    O mais importante na criação de uma RNA é o tratamento dos dados antes de enviar as instâncias de treinamento. Tenho visto muita gente enviando valores absolutos para a rede (preço de fechamento, valor do IFR, etc.). A RNA faz a interpretação dos dados em uma única dimensão, ou seja, linha a linha de treinamento. Para ela, o valor de fechamento, por exemplo, não tem nenhum significado isoladamente. Ou seja, enviar uma linha com os valores de fechamento e volume " 35.43; 1650" para a rede não trará nenhum efeito!

    O que é valioso, para a rede, é a semântica do dado. Por exemplo, enviar valores:

    Preço de Fechamento

    Valor 1) Se o preço de fechamento está acima da média e subindo

    Valor 2) Se o preço de fechamento está acima da média e caindo

    Valor 3) Se o preço de fechamento está abaixo da média e subindo

    Valor 4) Se o preço de fechamento está abaixo da média e caindo

    Volume de negócios

    Valor 1) Se o volume está acima da média e subindo

    Valor 2) Se o volume está acima da média e caindo

    Valor 3) Se o volume está abaixo da média e subindo

    Valor 4) Se o volume está abaixo da média e caindo

    Resultado (Previsão da Rede)

    Valor 1) Se o ativo subiu acima de 5% nos próximos três dias

    Valor 2) Se o ativo caiu abaixo de 5% nos próximos três dias

    Valor 3) Se o ativo se manteve estável ente +5% e -5% nos próximos três dias

    Agora sim, enviar uma linha de treinamento " 2, 2, 1 " fornece à rede uma semântica importante. Essa linha irá treinar a rede com a informação de que em uma ocasião onde os preços vinham de cima da média para baixo com o volume caindo, houve uma valorização futura do ativo!

    Roberto.



  • Bom dia a todos!
    Cohen, vamos sim. Vou montar um material básico sobre redes neurais e aplicação ao mercado e podemos fazer um webinar sobre o assunto.Warlley, podemos testar sua estratégia, acredito que tenha bons resultados. Mas bem lembrado pelo Roberto, a rede não aprende com valores absolutos. Mesmo usando outras técnicas de aprendizagem
    Gostaria de compartilhar com vocês um gráfico que obtive ontem colhendo os dados do WINV15 em um arquivo CSV. A linha em laranja é a cotação TICK a TICK (não uso gráfico M1, M5, etc). A linha em azul claro é o Vwap e em cinza são os valores de saída da minha rede. Eixo X são os números de ticks, eixo Y a esquerda cotação do índice e a direita a graduação da saída da rede.
    Minha estratégia é em criar um robô participativo (no estilo do da Link, Credit) que coloca ordens limitadas no mercado. Em cima do valores de saída da rede e intensidade eu calculo quantas ordens de venda ou compra disparo no mercado. Tem outros valores que não estão neste gráfico (valores de disparo, probabilidades, amplitudes) que estão no EA.
    Estou na parte mais "chata e braçal" do EA que é codificar os disparos.
    Aceito sugestões.
    Mazzutti

    https://groups.google.com/group/mt5-portaldotrader/attach/aed4d26df039e/estratégia.jpg?part=0.1&authuser=0&view=1



  • Aproveitando, outro curso de IA: https://www.udacity.com/course/intro-to-artificial-intelligence--cs271 O kra q fez o curso (Peter Norvig) eh o papa da inteligência artificial Mazzutti



  • Opa!

    Eu sei que eu to um pouco atrasado, kkkkkk 3 anos pra ser exato.

    Mas eu tive algumas experiencias entre python e MT5. Caso tenham interesse vamos trocar figurinhas.

    Abraço



  • @warlleysales disse:

    matlab

     Obteve êxito com o Matlab?


Entre para responder
 


O Portal do Trader não se responsabiliza pelas informações e opiniões veiculadas neste fórum, sendo elas de autoria individual de cada participante. Vale ainda ressaltar que investimentos em mercado de renda variável possuem riscos, ganhos passados não garantem ganhos futuros, e a decisão final e responsabilidade sobre cada operação é de cada investidor, devendo ser tomada individualmente.
© 2018 Portal do Trader. Todos os direitos reservados.

Parece que sua conexão com Fórum Portal do Trader caiu, por favor aguarde enquanto tentamos reconectar.