Não, na verdade não. Você provavelmente não ficará rico a menos que trabalhe muito... Por melhor que seja, você não pode prever o preço de uma ação apenas com base no ML, mas agora tenho sua atenção!
Continuando a minha postagem anterior no blog sobre como é incrível e fácil desenvolver aplicativos baseados na Web apoiados pelo Cloudera Operational Database (COD), iniciei um pequeno projeto para integrar o COD com outra experiência de nuvem CDP, Cloudera Machine Learning (CML).
Nesta demonstração, tentarei prever o comportamento do preço de abertura das ações com base em seus dados históricos, ou seja, se o preço de abertura de uma ação aumentará ou diminuirá. Não sou um cientista de dados, mas há muitos exemplos online sobre como fazer isso (peguei algumas amostras de código, corrigi-as e ajustei-as para trabalhar com COD). Para isso, utilizarei o algoritmo LSTM (Long Short-term memory). RNN em geral (redes neurais recorrentes) e LSTM especificamente funcionam muito bem com dados de séries temporais
Para evitar dúvidas, não pretendemos ser especialistas no mercado de ações e nada neste post do blog deve ser considerado como aconselhamento financeiro de forma alguma. Este é apenas um exemplo de como desenvolver uma solução usando o software da Cloudera.
Principais componentes usados nesta demonstração:
- Cloudera Operational Database (COD), conforme mencionado no meu post anterior, é uma solução dbPaaS gerenciada disponível como uma experiência na Cloudera Data Platform (CDP)
- CML foi desenvolvido para cientistas de dados e engenheiros de ML, permitindo que eles criem e gerenciem projetos de ML do código à produção. Principais recursos da CML:
- Ambiente de desenvolvimento para cientistas de dados, isolado, em contêiner e elástico
- Kit de ferramentas de ML de produção – implantação, veiculação, monitoramento e governança de modelos de ML
- Serviço de aplicativos – Crie e atenda aplicativos personalizados para casos de uso de ML
- Aplicativos pré-empacotados para insights para usuários de negócios
- Criação simples de painéis e aplicativos com arrastar e soltar com o Cloudera Data Visualization
- Aplicativos de modelo como kits iniciais para seus casos de uso
- Dados de estoque – para puxar os dados de estoque, usei o serviço alpha vantage (versão gratuita). Basicamente, é um serviço que permite obter um resumo diário das estatísticas de ações (abertura, fechamento, baixo, alto volume)
Crie o aplicativo
A primeira coisa que precisamos fazer é criar um banco de dados em COD.
1. Faça login no plano de controle Cloudera Data Platform Public Cloud
2. Escolha Banco de Dados Operacional e clique em “Criar Banco de Dados”
3. Escolha seu ambiente e nomeie seu banco de dados
4. Quando o banco de dados estiver funcionando, alterne para a guia JDBC
5. Defina sua senha de carga de trabalho do CDP
6. Agora vamos para CML - Volte para o plano de controle e clique em "Machine learning" e depois em "Provision workspace" Dê um nome ao seu workspace e selecione o ambiente que deseja usar
7. Depois que o espaço de trabalho for provisionado, crie um novo projeto, dê um nome a ele e use git para o código-fonte. Todo o código fonte pode ser encontrado aqui.
8. Assim que o projeto for criado, você verá todos os arquivos no diretório do projeto:
9. Poucas logísticas adicionais – precisamos criar variáveis de ambiente para o projeto, que irão armazenar o acesso ao nosso banco de dados, e chave de API alpha vantage. Para fazer isso, vá para a guia “configurações do projeto -> avançado”
10. Agora, vamos começar a executar o projeto - clique em "nova sessão", dê um nome à sua sessão, escolha "python 3" e o perfil do recurso
11. No terminal ou na CLI na parte inferior, instale todas as bibliotecas necessárias executando “pip3 install -r requirements.txt”
12. O próximo passo é criar nossa tabela na qual os dados serão armazenados em nosso banco de dados. para isso, execute o script de configuração:
13. Agora, vamos começar a testar nosso modelo! Vá para runner.py e execute-o. Basicamente, este script faz o seguinte:
a) Obtém os dados diários de ações da vantagem alfa
b) Transformação básica de dados
c) Armazenar os dados no Banco de Dados Operacional Cloudera
d) Execute o modelo e crie o arquivo de modelo (tech_ind_model.py)
e) Executar a previsão para os últimos 120 dias
f) Calcule os lucros previstos se comprarmos e vendermos ações às taxas exatas
14. Enquanto o programa estiver em execução, você verá que ele está coletando dados para cada ação, enviando-os para o COD, realizando a previsão e traçando um gráfico exibindo o preço previsto versus o preço atual. Embora o gráfico mostre que a tendência na maioria dos casos é muito semelhante, mesmo uma pequena diferença pode afetar a receita total dessas recomendações. A saída da execução inclui as informações abaixo mencionadas para cada estoque:
a) recomendação:manter/comprar/vender
b) última previsão:último preço previsto
c) preço:último preço
d) previsto:previsão para o próximo preço de abertura
e) sinal:alto/baixo – a recomendação é forte/não
15. Com base na última vez que executei o programa, eu perderia dinheiro na maioria das ações com base nas recomendações, mas ao mesmo tempo, havia algumas que previam um lucro de até 20%!!!
Agora, negociação algorítmica em geral e previsão de preços de ações são tópicos que existem há muitos anos. Para operacionalizar casos de uso de aprendizado de máquina como esse, você precisa de ferramentas poderosas que sejam fáceis de usar, escaláveis e prontas para empresas.
O Cloudera Operational Database fornece latência de menos de um segundo para leitura/gravação aleatória e é exatamente o que é necessário para aplicativos em tempo real, como os usados no setor de serviços financeiros.
Para começar com CML e COD…
Espero que você ache útil,
Boa codificação!!