Previsão de preços de ações com IA (aprendizado profundo em Python).

2019-03-13 None
Tópicos.: Indústria de TI.

Plataforma de cálculo numérico com IA: MATLAB para uso pessoal.
https://jp.mathworks.com/pricing-licensing.html?intendeduse=home&prodcode=ML&fbclid=IwAR0zonp3Hw92OG7K7gv_xNsfmUuq993uUwimw8D2P2FoUafKSbjT08mQ5fI
Não percebi que estava sendo vendido tão barato para uso pessoal... Se eu tivesse percebido antes... Como a edição Home apareceu? Antigamente, só existiam versões que custavam dezenas de milhares de ienes, então as pessoas usavam softwares gratuitos como "R". Mas se isso puder ser usado por cerca de 16.000 ienes, todos escolheriam este, é um software incrível. Embora seja bastante difícil se você quiser se aprofundar, parece que você pode experimentar gratuitamente por 30 dias, então vou verificar a usabilidade novamente, talvez fazendo uma análise simples de preços de ações como um tema curto.

■Ajuste (Fitting)
Executei uma amostra de aprendizado que eu criei há muito tempo e ela funcionou como esperado. Isso é bom. Como não me lembro muito, vou revisar o aprendizado. Aparentemente, esta é uma função que executa um processamento de "inferência" chamado "ajuste" para uma função periódica com ruído e exibe um gráfico. Os pontos são os dados originais e a forma de onda é o gráfico inferido. Ao ajustar dados para os quais a resposta é conhecida, a correção está confirmando a validade do método.

■ Estatísticas demográficas
Um exemplo que eu criei para fins de aprendizado. A partir das estatísticas demográficas, tento prever o futuro e exibir os resultados em gráficos.

■ Aproximação de preços de ações
Tentei aproximar e prever os dados de preços de ações de seis meses que encontrei na web, usando um gráfico simples. No entanto, como eu só brinquei com isso por cerca de uma hora, não é nada útil. Acho que preciso estudar mais a fundo. Seria ótimo se houvesse alguma "teoria" boa. Se for apenas para diversão, isso é bom como está, mas seria mais interessante se fosse útil.
Pontos azuis: preços reais das ações.
Linha vermelha: gráfico aproximado.
Dados: 6754 Anritsu Corporation.

Já passei algumas horas brincando e experimentando.
■ Pontos azuis: Preços reais de ações no passado.
■ Linha vermelha: Gráfico aproximado do preço das ações no passado (lado esquerdo) e gráfico de previsão futura (lado direito). A premissa é usar apenas os dados dos pontos azuis para fazer a previsão futura.
■ Amarelo: Resposta para o preço futuro das ações.
Se o gráfico vermelho futuro corresponder aos círculos amarelos, isso significa que a previsão é precisa, mas, obviamente, não será perfeito de imediato. Os dados originais têm movimentos estranhos (exceções), então o gráfico aproximado também apresenta "bigodes" estranhos que causam interferência.
Se fosse tão fácil prever o preço das ações, seria incrível... Esta área é difícil, mas, como é apenas uma brincadeira, este tema é desafiador e interessante. Talvez, se algo útil surgir (o que é improvável), isso pode ser usado.
Bem, de qualquer forma, é um bom material para a brincadeira e aprendizado da tarde de hoje.
Dados: 6754 Anritsu Corporation.

Começam a aparecer gráficos que parecem úteis para análise de preços de ações.
■ Gráfico roxo à direita: Preço de ação previsto.
■ Círculo amarelo à direita: Preço de ação futuro real.
De alguma forma, eles são semelhantes. A precisão varia dependendo dos parâmetros, às vezes funciona e às vezes erra, mas ficou muito melhor do que à noite. Se você consegue essa precisão com algo feito rapidamente, é bastante bom.
Faz um tempo que não uso matemática, então estava esquecido, mas estou me lembrando aos poucos através de tentativa e erro. No entanto, ainda não entendo a fórmula chamada "regressão de processos gaussianos" que gerou isso. Não sou eu quem é incrível, mas a documentação completa do MatLab é excelente. Bem, mesmo que você não entenda, pelo menos você consegue uma resposta, mas para aplicar, parece que você precisa estudar matemática novamente.
Se funcionar bem, talvez eu crie um site de previsão de preços de ações por diversão? (risos)

Não sei se vou realmente fazer isso, mas criei um site simples com apenas a página inicial para que o Google o reconheça mais rapidamente. Projetos como este geralmente levam meses ou anos, então é melhor criar o site e começar. Surpreendentemente, consegui registrar um domínio relativamente curto.
Previsão de preços de ações com IA - https://kabu2u.com
https://kabu2u.com

■ LSTM (rede de memória de longo prazo) da IA
Experimentei o LSTM.
O MatLab é incrível (embora eu ainda não entenda completamente o conteúdo matemático). É possível criar coisas assim de forma rápida. (Não experimentei com Python, então não posso comparar).
Acabei de voltar da aula de yoga e estava pensando em pesquisar e experimentar rapidamente nos 30 minutos antes de dormir, mas o MatLab é incrível porque permite criar coisas rapidamente sem hesitação.
Este LSTM é usado para realizar aprendizado profundo (deep learning). É o que chamamos de IA, mas não é uma IA incrível como o Atom dos mangás; na verdade, é algo como aprendizado de máquina.
O código foi retirado diretamente de um exemplo, mas a cada vez que executo, os resultados do aprendizado são diferentes, e às vezes obtenho uma IA "inteligente" e outras vezes uma IA "burra". A imagem anexada parece ser uma das que têm um bom desempenho. O que está atrás é a tela que aparece durante o aprendizado, e o gráfico na frente é a previsão. É incrível porque se parece com o gráfico real. Bem, às vezes também surgem IAs "burras", então o fato de que os resultados não são estáveis é tanto uma vantagem quanto uma desvantagem do aprendizado profundo (deep learning). Quando surge uma IA "boa", provavelmente ficarei surpreso. Vou analisar mais detalhadamente o que está acontecendo por dentro a partir de amanhã.

Vou tentar prever a segunda metade dos dados com base na primeira metade.
É claro que o erro é grande no final, mas a precisão é considerável na área de transição.
A inteligência artificial é incrível...
Parece que os humanos não podem vencer isso.

Na semana passada, o treinamento foi feito com apenas um conjunto de dados (apenas o preço de fechamento). Tentei usar uma combinação de preço de abertura, preço máximo, preço mínimo, preço de fechamento e volume em um modelo de aprendizado profundo, mas não houve muita diferença... Na verdade, é muito provável que eu esteja cometendo algum erro em algum lugar. Eu não entendo completamente. Mesmo que eu entenda a teoria básica do aprendizado profundo, tentar entender um algoritmo tão complexo como o LSTM (long short-term memory network) parece que vai me deixar com a cabeça a mil.

Eu tinha ouvido falar que o aprendizado profundo usa muito poder de processamento da CPU para o treinamento, então talvez eu precise comprar algum chip de hardware. Atualmente, estou usando um laptop, então vou procurar por algum chip USB... Não posso instalar uma placa gráfica.

ほほー. Meu "AIzinho" diz que a ação da empresa 1332 N está atualmente em 812 e que provavelmente ficará estável por um tempo. A parte vermelha no canto superior direito. A previsão de preço da ação daqui a duas semanas é de 822, o que representa um aumento de apenas 1%. Portanto, este não é um bom momento para comprar. Se você já possui essas ações, pode ser o momento de vendê-las e transformar em dinheiro. (Por favor, não acredite nisso. Estou escrevendo isso como uma brincadeira. É um programa de inteligência artificial recém-criado, apenas um hobby. Eu ficaria preocupado se alguém comprasse baseado nisso, e não posso assumir nenhuma responsabilidade.)

Desde ontem à noite, estou analisando todas as ações listadas na Bolsa de Tóquio. A análise dos últimos 360 dias (máximo) leva aproximadamente 1 minuto por ação. Estou usando um MacBook Pro com processador Intel Core i7. Atualmente, já analisei cerca de 1200 ações, mas ainda restam 2400. Ao analisar os dados, cerca de 10 ações parecem ter potencial de valorização de até 10%. A inteligência artificial estima que, em média, uma de cada 100 ações tende a subir. No entanto, as previsões da IA podem variar, e a mesma ação pode apresentar resultados diferentes em execuções repetidas. Ainda não confio totalmente na IA, pois não posso comprar ações cegamente com base apenas nesses resultados. No entanto, a IA pode revelar ações inesperadas, e seria impossível para mim verificar todas as ações da Bolsa de Tóquio manualmente, então usá-la para filtrar é uma opção válida. O objetivo é começar com cerca de 30 ações como candidatas, e depois refinar essa lista para menos de 10.

Câmbio (FX) também com análise de IA. No entanto, a análise é feita para cada moeda, então não está claro se é útil ou não. Por enquanto, vou apenas observar. O câmbio é muito complicado...

No meu computador, estou executando uma análise de preços de ações com IA (que leva tempo), e à tarde irei para o Monte Takao. As ações com maior potencial de alta identificadas até esta manhã tiveram um desempenho razoável (mas eu não as comprei), mas ainda há muita variação. Talvez exista uma estratégia de comprar todas as ações em unidades e vender rapidamente as que caem, mantendo apenas as que sobem. No final, é impossível saber quais ações vão subir.

No oráculo: "Boa sorte. Embora você tenha enfrentado muitas dificuldades até agora, a sorte finalmente está ao seu lado, as preocupações desaparecerão e você terá sucesso em tudo o que fizer."
Será que vai se concretizar?

Nos últimos sete dias, experimentei comprar ações selecionadas por inteligência artificial.
A inteligência artificial reduziu a lista para cerca de 30 ações, e eu verifiquei manualmente para reduzir para cerca de 10 ações, e comprei algumas delas que pareciam ter bons gráficos.
Na semana passada, o mercado estava bom, então essas ações tiveram um resultado "geralmente resiliente e não caíram muito. Algumas ações subiram", o que foi um resultado razoável. Não houve grandes aumentos, mas, desde que não perdi dinheiro, está tudo bem. No geral, aumentei alguns porcentos em uma semana. Como experimento, foi um resultado razoável.
No entanto, hoje (segunda-feira), o mercado de Nova York influenciou a Bolsa de Tóquio, que despencou, e algumas das minhas ações foram arrastadas para baixo, voltando ao ponto de partida. É claro que, mesmo com a inteligência artificial, você pode ser afetado por uma queda... É natural que o mercado geral seja mais forte.
Atualmente, estou analisando as ações individualmente com inteligência artificial, então não estou levando em consideração a relação com o mercado de Nova York. Acho que preciso ensinar isso à inteligência artificial.
Em vez de fazer com que ela aprenda as relações, talvez seja suficiente que ela preveja o mercado de Nova York individualmente e, se parecer que vai cair à noite, eu reduza ligeiramente a posição com antecedência.
(Esta imagem não tem relação com as ações que comprei.)

■Google TPU
Está escrito que o prazo de entrega é de 3 semanas, mas na realidade chegou em cerca de 10 dias. Chegou mais rápido do que o esperado. Não funciona com Matlab, então vou experimentar com Python mais tarde.

■Primeira experiência com Python
Como é a minha primeira vez usando Python, carreguei dados que já foram analisados no Matlab e tentei exibir um gráfico. Parece que pode ser uma alternativa ao Matlab. Talvez eu não precise comprar o Matlab? Se eu puder migrar para o Python durante o período de teste do Matlab, provavelmente não comprarei. No entanto, o Matlab é fácil de usar, então estou indeciso sobre comprá-lo ou não. Além disso, ele pode ser usado para outras coisas além de IA. Apenas o Python permite usar chips de IA da Google, que não podem ser usados no Matlab, então a conversão para Python é essencial de qualquer maneira.

A sintaxe do Python é estranha, ou talvez seja uma peculiaridade da linguagem que não se vê em outras linguagens, e isso é interessante ou, talvez, um pouco estranho, mas a vantagem de poder usar arrays compensa essas desvantagens. Bem, acho que é uma questão de se acostumar.

Além disso, é necessário substituir a parte principal da IA, mas isso ainda não foi feito.

Recentemente, implementei em Python uma análise de regressão de processos gaussianos (Gaussian Process, GP), que também fiz em Matlab. Desta vez, como estava ignorando, os resultados variam bastante dependendo dos parâmetros, então implementei com os parâmetros mais simples. Isso não é o tema principal, pois o tema principal é a inteligência artificial, então está tudo bem assim. Tenho usado por alguns dias e estou gradualmente me acostumando com o Python.

A única dificuldade é que a velocidade de execução do Python é mais lenta do que a do Matlab, e leva alguns segundos para realizar a análise. O Matlab é realmente excelente. Parece que é padrão que o Python seja lento, mas como comprei um chip de IA recentemente, a análise de IA deve ser rápida no Python, então não deve ser um problema. Como o chip é dedicado à IA, é inevitável que outros processos sejam lentos.

■TensorFlow
Hoje, tentei implementar inteligência artificial usando TensorFlow 2 + Python 3, mas a maioria das informações na internet são sobre TensorFlow 1, e há poucos exemplos para TensorFlow 2. Consegui chegar a um protótipo, mas os valores de saída são estranhos e não estão fornecendo a resposta correta. Quando usava Matlab, conseguia criar algo rapidamente em um dia, mas parece que isso vai levar um pouco mais de tempo. O Matlab é realmente fácil de usar, pois é um produto. Estou começando a me acostumar com o Python, então acho que consigo fazer funcionar, mas é inconveniente que cada biblioteca tenha suas próprias regras e conversões.

A propósito, o chip TPU para inteligência artificial que comprei parece funcionar melhor com o Raspberry Pi, então estou reconfigurando um Raspberry Pi que comprei e deixei de lado. Parece que vai ser útil de uma forma inesperada. O Raspberry Pi sempre esteve sem uma caixa, mas como vou usá-lo por muito tempo, comprei uma caixa. Quando liguei pela primeira vez depois de muito tempo, ele não funcionou, então tentei remover o cartão Micro SD, mas ele quebrou, então tive que comprar um novo. Também reconfigurei o sistema operacional. É inconveniente, mas não há nada que eu possa fazer.

■ Simulação de lucros e perdas para acionistas
Simulação simplificada de lucros e perdas de acionistas, com visualização em gráfico.
O gráfico superior mostra a evolução real do preço das ações e uma fórmula de aproximação. O gráfico do meio é o que foi adicionado desta vez, e mostra que valores acima de zero representam lucro, enquanto valores abaixo representam perdas. O gráfico indica que, em média, todos os acionistas estão obtendo lucro quando o gráfico está acima de zero, e estão com prejuízo quando está abaixo. Como não sabemos quem está comprando ou vendendo, assumimos que, em média, todos os acionistas estão realizando transações. Mesmo com essa suposição, um gráfico surpreendentemente relevante é gerado. Se o gráfico estiver abaixo de zero, significa que a maioria está com prejuízo, e se estiver acima, significa que a maioria obteve lucro.
Isso mostra que, por volta de novembro de 2018, o preço das ações caiu, aumentando o número de pessoas com prejuízo, e que a situação está agora mais estável. No entanto, isso não indica se é o momento certo para comprar. Pelo contrário, isso pode funcionar como um indicador de que não se deve comprar. Em abril de 2018, o preço das ações não variou muito, mas algumas pessoas obtiveram lucro com a recuperação, mas, fora isso, a maioria teve prejuízo.
Isso é apenas uma simulação, e não envolve inteligência artificial ou aprendizado de máquina. No entanto, isso pode ser útil de forma discreta.

■ Simulação do lucro não realizado dos acionistas
Análise adicional. Simulação do lucro não realizado dos acionistas e exibição em gráfico. Está ficando cada vez mais parecido com o que se espera.

Com este novo gráfico, por exemplo, podemos perceber o seguinte:
■ Mesmo que o preço das ações tenha aumentado várias vezes, o lucro não realizado (médio) de todos os acionistas não aumentou tanto quanto se esperaria (①).
■ Durante a última queda acentuada no preço das ações (②), o lucro não realizado não diminuiu tanto (③). Isso sugere que algumas pessoas estão realizando lucros.
■ Durante a última queda acentuada no preço das ações (④), o volume de negociação aumentou, e simultaneamente o lucro não realizado aumentou (⑤). Isso significa que grandes investidores podem estar comprando as ações vendidas por investidores menores e obtendo lucro com a recuperação.
Coisas que antes não eram visíveis agora se tornam claras. A análise é interessante.

Agora, vamos analisar esta ação. É uma empresa que estava causando grande alvoroço nas notícias, mas o preço das ações caiu drasticamente (1).
À medida que o preço das ações caía, os ganhos potenciais (estimados) também diminuíam (2). Finalmente, atingiu o fundo e houve uma recuperação (3). A recuperação aumentou os ganhos potenciais (4), mas, ao mesmo tempo, a perda ou ganho dos acionistas foi negativo (5. Abaixo da linha vermelha central está negativo), o que sugere que, embora os ganhos potenciais tenham aumentado temporariamente durante a recuperação, muitas pessoas não conseguiram realizar os lucros e acabaram cortando as perdas, apenas em simulação.
Embora esta única ação não represente tudo, pode sugerir que "a probabilidade de perder dinheiro ao tentar aproveitar a recuperação é maior". O gráfico mostra claramente que, mesmo com a recuperação, a maioria dos acionistas provavelmente perdeu dinheiro.
Considerando o que vemos aqui, talvez seja melhor não tentar aproveitar a recuperação de ações que estão com o preço em queda.
<Isto é apenas a minha interpretação pessoal e pode ser muito diferente da interpretação geral, portanto, tenha cuidado.> Eu não sou um especialista em ações, então.

■Média móvel
Adicionado sinais de compra e venda com base na posição acima e abaixo das médias móveis (9, 25 e 75 dias).
Este é um algoritmo que foi implementado diretamente de um material que parece um livro de referência chamado "Média móvel: a maneira definitiva de ler e usar".
As cores na parte superior dos sinais indicam o seguinte:
・Vermelho escuro: forte sinal de compra
・Verde escuro: forte sinal de venda
As cores intermediárias indicam o estado intermediário.

Embora seja como um livro didático, se você seguir os sinais imediatamente quando eles aparecem, provavelmente poderá obter algum lucro.
O básico é importante...

■MACD
Exibe o MACD (MACD propriamente dito + média do MACD + histograma). Além disso, exibe a fase atual com um rótulo. Também adiciona linhas para indicar quando a fase mudou.

■RCI
Adicionou-se um indicador de ações chamado RCI. O RCI normal possui duas linhas, uma de curto prazo e outra de longo prazo, mas foi adicionado um histograma (gráfico de barras) semelhante ao sinal do MACD para facilitar a visualização (o gráfico de barras verde na área do RCI é o que representa isso). É estranho que essa visualização não esteja presente nas ferramentas de ações convencionais, e parece muito bom.
Além disso, como é inconveniente comparar o RCI e o MACD, foi adicionado um ponto vermelho quando ambos são positivos e um ponto verde quando ambos são negativos para facilitar a visualização do sinal.
Ao comparar assim, é interessante ver a diferença entre o sinal da média móvel (acima do RCI) e o sinal adicionado (o sinal entre o RCI e o MACD).
Isso demonstra uma diferença entre a análise de longo prazo e a análise de curto prazo. É bastante interessante. O sinal adicionado hoje parece ser utilizável.

■ Gráfico de movimentos de curto prazo
O gráfico exibe apenas os movimentos de curto prazo, subtraindo o valor da média móvel (tendência) do preço original da ação. Isso torna mais fácil visualizar os movimentos de curto prazo, pois reduz a influência da tendência.
(O gráfico muda dependendo do período da média móvel, então ele tenta determinar automaticamente e exibir valores que estejam aproximadamente alinhados horizontalmente.)
Este é um exemplo de um gráfico que mostra a diferença entre o preço original da ação e o valor da média móvel de 89 dias.
Originalmente, eu estava tentando fazer uma análise de séries temporais, mas como não obtive características periódicas muito boas, exibi apenas o gráfico que obtive durante o processo. Este gráfico, por si só, parece ser surpreendentemente útil.

■ Regras de Donchians
Foi implementada uma visualização das "regras de Donchians", que consistem em "comprar quando o preço ultrapassa a máxima das últimas quatro semanas e vender quando o preço fica abaixo da mínima das últimas quatro semanas". Além disso, foi alterado o sistema para exibir um rótulo quando o preço de fechamento do último dia ultrapassa o valor limite. Isso tornou a visualização muito mais fácil de entender.
Embora muitas regras tenham sido criadas, é importante verificar quais regras são realmente eficazes, pois, caso contrário, pode haver muitos sinais e isso pode dificultar o uso.
Talvez eu faça uma simulação para verificar isso no futuro...

■Simulação
Simule e, se você comprasse pelo preço de fechamento daquele dia, mostre em vermelho/verde se você atingiria primeiro um valor 5% acima ou 5% abaixo.
Com isso, fica mais fácil ter uma ideia de "onde é melhor comprar" e "onde é melhor vender".
Parece que a histograma (gráfico de barras) do RCI pode ser usada como um sinal, dependendo de como ela "salta".
A propósito, esta é a empresa que eu tenho notado há algum tempo. É uma empresa que antes fabricava chips gráficos 3D e que foi adquirida por aquela famosa clínica de estética que todas as mulheres conhecem. As pessoas que conhecem a empresa sabem, mas o preço das ações está muito estranho. Tem uma receita de 50 bilhões de ienes, mas está com prejuízo operacional. A capitalização de mercado é de 3,4 bilhões de ienes. Mesmo que esteja com prejuízo, o fluxo de caixa é significativamente positivo, e o "prêmio de aquisição" da fusão e aquisição é um fardo contábil por 5 anos, mas isso acabará em alguns anos, e parece que terá um futuro promissor. Quando a receita de 50 bilhões de ienes se recuperar para um lucro de 50 bilhões de ienes, uma capitalização de mercado de 3,4 bilhões de ienes é impossível, e pelo menos deve subir para um número lucrativo. Normalmente, deveria ser aproximadamente igual à receita, então o limite seria uma capitalização de mercado de 500 bilhões de ienes, o que a torna uma possível ação com um retorno de 10 vezes. Mesmo que não chegue a esse ponto, se a lucratividade for visível, é possível esperar um aumento de duas vezes a partir de agora. Existe a possibilidade de que grandes investidores façam movimentos e a reduzam drasticamente. Como o preço das ações já está estranho, não me surpreenderia se caísse pela metade a partir de agora. Na verdade, tenho observado desde o final de março e entrei e saí algumas vezes, mas a queda após o recebimento dos benefícios (vouchers de estética) no final de março foi terrível (risos). Além disso, houve uma grande venda e o preço caiu 10% de uma vez. Pode cair novamente a partir de agora, mas haverá o relatório de resultados do próximo mês, e as empresas de estética são populares entre as mulheres no verão (elas querem ir porque mostram a pele), então este semestre parece ser interessante.
→ Mas, depois de pesquisar, descobri que a receita parece ser uma ilusão contábil. Os resultados são um pouco suspeitos.

■Alcançando o mesmo nível que o Matlab
Implementação de IA (aprendizado profundo) em Python + TensorFlow (Versão 2). É praticamente o mesmo processo que eu estava fazendo no Matlab.
O ponto verde no centro direito do gráfico representa o preço futuro das ações previsto pela IA. Os resultados são relativamente semelhantes aos do Matlab, então a base é a mesma.
No início, tive dificuldades para entender as peculiaridades da sintaxe específica do TensorFlow (Versão 2), o que dificultava a criação. Depois de encontrar alguns exemplos, consegui criar as implementações de forma mais suave. Ainda não estou usando os chips Google TPU, e executar no CPU do Mac é, obviamente, lento. Gostaria de saber quanto mais rápido seria se eu usasse os chips Google TPU. Falarei sobre isso em outro momento.
É algo bem simples, mas acho que agora posso me considerar um membro da comunidade de engenheiros de IA (risos).

■FX
Modifiquei o sistema para incluir a taxa de câmbio do dólar americano (USD) na previsão de preços de ações. Até ontem, o sistema considerava apenas o preço das ações da empresa em questão (uma variável), mas agora inclui o preço das ações e a taxa de câmbio do dólar americano (duas variáveis).
No entanto, a princípio, parece que não houve muita diferença nos resultados... Parece que é necessário fazer uma verificação. Talvez não haja muita correlação. Talvez isso seja diferente para grandes empresas listadas na Bolsa de Tóquio. Vou adicionar alguns outros fatores.

Continuando com a análise usando três variáveis: "preço das ações", "volume de negociação" e "taxa de câmbio em dólares americanos (FX)".
Como já é possível transformar uma variável em duas, adicionar uma terceira variável é muito rápido.
Bem, a aparência não muda muito.
Será que a precisão é boa?
Será que seria melhor incluir o índice Dow Jones?



■O Google TPU não é compatível com LSTM.
Estive tentando fazer o chip Google TPU (USB) funcionar no Raspberry Pi, mas descobri que não é compatível com o LSTM (RNN) que eu queria usar, e que só suporta classificação, entre outras coisas. Estou um pouco frustrado, mas aprendi algo, então acho que está tudo bem. É por isso que o chip é barato. É incrível como a Google consegue vender até mesmo algo tão incompleto. Parece ser bom para aplicações específicas, como reconhecimento de movimento.

・Demorou de 30 minutos a 1 hora para instalar a biblioteca do TensorFlow. O Raspberry Pi é muito lento.
・Por padrão, é o TensorFlow versão 1, e parece que a versão 2 precisa ser construída a partir do código fonte, então tentei criar um ambiente de construção, mas levou mais de 24 horas para construir uma ferramenta chamada Bazel, e no final, a versão mais recente do Bazel não era compatível, então tive que reconstruir uma versão mais antiga do Bazel, o que foi um trabalho repetido. Mesmo assim, o TensorFlow versão 2 não funcionou corretamente. Estou um pouco frustrado. Como falhei com o sistema operacional padrão do Raspberry Pi, tentei com o Ubuntu, mas o mesmo problema ocorreu. Foi um trabalho repetido, então voltei para o sistema operacional original.
・Como o Raspberry Pi tem uma CPU Arm, as bibliotecas e o Docker que são fornecidos como padrão no Google TPU não funcionam diretamente e só é possível usar as versões para Raspberry Pi, o que é inconveniente.
・O Python padrão do sistema operacional é a versão 3.5, então primeiro construí a versão 3.7 a partir do código fonte, mas parece que não é suportada pelo TensorFlow, então instalei a versão 3.6, mas não houve muita diferença, então voltei para a versão 3.5 padrão.
・Pensei que talvez o problema fosse com as bibliotecas, então construí algumas a partir do código fonte, mas mesmo assim não funcionou.
・No final, cheguei à conclusão de que, ao usar o TensorFlow através do Keras, não havia muita diferença entre a versão 1 e a versão 2, e confirmei que ambas as versões funcionam no Mac.
・O Google TPU não suporta "treinamento do zero", mas apenas "re-treinamento". Descobri que é necessário criar o modelo na CPU, aplicar uma transformação especial e, em seguida, aplicar outra transformação na página da nuvem para que ele possa ser usado, mas essa transformação não é compatível com o LSTM/RNN que eu quero usar. Estou um pouco frustrado.

Estou pensando se devo comprar um PC barato e um GPU da NVIDIA, ou se devo simplesmente me contentar com o PC que já tenho...

■ Criação de um site de análise de ações com IA
https://kabu2u.com
https://kabu2u.com
Atualizei o site de análise de ações com IA, de forma simples. Começarei a incluir gradualmente ações com alta volatilidade. Ainda não sei o quão detalhado devo ser, então, por enquanto, publicarei apenas dados antigos, com análise realizada há 2 semanas. Ainda não incluirei previsões futuras. Seria complicado lidar com reclamações se incluísse previsões futuras, e talvez possa considerar a cobrança por previsões futuras quando a precisão melhorar. De qualquer forma, a precisão ainda não é boa o suficiente, então acho que começar com isso é um bom ponto de partida.

■ Análise de ondas de Elliott
Estou tentando a análise de ondas de Elliott (pesquise no Google o que são ondas de Elliott).
Tentei fazer com que o sistema determinasse qual onda está em andamento, com base nas formas de onda reais, mas parece difícil, então estou mudando de direção.
Estou pensando em simular as ondas de Elliott, fazer com que a IA memorize os resultados da simulação e, em seguida, fazer previsões.
Primeiro, criei um gráfico mostrando a sequência de Fibonacci alternando sinais positivos e negativos, que está no canto superior esquerdo. Como está, valores negativos aparecem (não é possível ter valores negativos no preço das ações), então elevei linearmente o gráfico para que se tornasse totalmente positivo, como mostrado no canto superior direito. Hum... algo está um pouco diferente. Não apenas elevei linearmente, mas também usei uma curva quadrática para elevar o gráfico, que está no canto inferior esquerdo. Isso parece razoável, mas algo parece diferente. No entanto, como os movimentos reais das ações também são muito estranhos, talvez isso seja suficiente.
Criei um gráfico, então usarei isso como base para criar preços de ações falsos e, em seguida, farei uma análise de IA. O gráfico resultante está no canto inferior direito.
Agora que a IA memorizou isso, ainda preciso ver qual será a precisão ao usá-la para previsões reais.



■Construção de um PC dedicado para análise de IA
Instalei o Ubuntu Linux em um notebook (PC secundário). Originalmente, ele tinha o Windows, mas como ele travava a cada poucas horas durante a execução de análises de IA, o que impedia o progresso, eu instalei o Linux Ubuntu e ficou incrivelmente mais rápido. Parece que a era em que a velocidade do Linux começa a superar a do Windows está chegando. Os Windows recentes são instáveis e lentos, e parece que estou me prejudicando. Como preciso do WORD/Excel para tarefas de escritório, ainda preciso do Windows, mas, a partir de agora, o Windows pode se tornar desnecessário para tudo o mais. Se eu fosse construir um agora, torná-lo baseado na web e eliminar a necessidade de Word/Excel/PowerPoint, talvez eu pudesse me livrar do Windows. Eu gosto da Microsoft, mas ultimamente tenho sofrido muito com a instabilidade do Windows. Além disso, a velocidade de execução é mais rápida no Linux. Os chips Google TPU (USB) também funcionaram normalmente.

■ Extração e análise de características
Estou extraindo e analisando características que provavelmente são relevantes para as pessoas. Dependendo do título, às vezes consigo obter uma precisão razoável.
Como o aprendizado profundo é, em última análise, uma imitação do funcionamento dos neurônios do cérebro, é lógico que a precisão aumente ao decompor as características como entrada. No entanto, se você se especializar assim, a precisão pode cair drasticamente para títulos que não estão relacionados a essas características. A análise de preços de ações é inerentemente difícil, então talvez seja bom aceitar que, mesmo que existam condições utilizáveis, isso é o melhor que podemos fazer.
Se essas características tiverem significado, o erro diminuirá gradualmente durante o aprendizado profundo e convergirá. No entanto, se não convergir, pode haver um bug nos valores das características ou, talvez, essas características não tenham significado (!). Essa percepção é inovadora e pode ser que o aprendizado profundo esteja revelando que teorias que são geralmente consideradas "óbvias" no mundo das ações, na verdade, não têm significado. Por exemplo, diz-se que a cruzamento de médias móveis de curto e longo prazo é um sinal de compra (golden cross), e o mesmo é dito sobre o MACD. No entanto, na realidade, pode ser que não haja significado nisso (!). Esse é o resultado da análise de aprendizado profundo, "possivelmente". Continuarei amanhã.

■Acompanhamento de tendências
Como a análise técnica parece ter baixa precisão, decidi mudar de direção e criei uma IA que simplesmente acompanha as tendências. É inevitável que ela seja fraca em quedas e altas repentinas, mas obtive resultados relativamente bons no acompanhamento de tendências, então acho que isso é bom como está. A linha vermelha grossa representa a previsão da IA. Talvez, por ser uma máquina, esse tipo de uso seja mais adequado. Em vez de se cansar, como aconteceria com humanos, basta fazer a máquina realizar essa tarefa de forma constante.

Na análise técnica, processei os valores de entrada e tentei várias coisas, mas este acompanhamento de tendências é muito simples em termos de algoritmo. No entanto, se a combinação de parâmetros for sutil, ela pode não funcionar corretamente, então, embora o algoritmo seja simples, a dificuldade em encontrar o ponto ideal pode ser um problema que é adequado para o aprendizado profundo.

■Versão inicial do site de previsão de preços de ações com IA
Previsão de preços de ações - https://kabu2u.com
https://kabu2u.com
Versão inicial concluída. Embora seja possível revisar o modelo ou usar mais poder de processamento para analisar mais profundamente, considerando o custo-benefício, esta é uma linha de conclusão razoável por enquanto. Existem muitas outras ideias para testar, mas por enquanto. Comecei a usar o Matlab em meados de março e migrei para Python+Tensorflow, e considerando que foram dois meses e meio, é, no mínimo, satisfatório. Um mês foi dedicado a experimentos. O outro mês e meio foram dedicados à adaptação para o site e a várias modificações. A precisão ainda precisa melhorar, mas a análise está atualmente priorizando o tempo e é interrompida no meio, então veremos até onde a precisão pode aumentar com o tempo. Correções que levam muito tempo, como aumentar o tamanho do modelo se a precisão for insuficiente, serão feitas gradualmente no futuro, mas os aspectos básicos estão completos. Atualmente, a exibição é muito simples, então planejo adicionar gradualmente alguns elementos.

■Adição de linhas de suporte
Adicionei a exibição de linhas de suporte, assumindo que a compra é feita ao preço de abertura no dia seguinte à data prevista. Isso tornou a visualização um pouco mais fácil.

■Gráfico de velas
Alterado de um gráfico de linhas do preço de fechamento para um gráfico de velas normal. É assim mesmo que ele deve ser, senão não parece.



■ Air Trade
Coloquei os resultados do Air Trade. Ao ver isso, eu deveria estar ganhando muito mais, mas talvez não esteja tendo um bom desempenho porque não consigo fazer a negociação de forma mecânica e acabo me deixando levar pelas emoções...

■ Revisão do Algoritmo
Revisei o algoritmo do Air Trade. Publiquei os resultados do Air Trade para todas as ações na página inicial.

■ Air Trade com Ordem Perfeita
Tentei fazer um Air Trade com base em linhas de curto, médio e longo prazo, nas condições comumente chamadas de "ordem perfeita", e o resultado não foi bom. Talvez seja porque o mercado atual esteja ruim, ou talvez seja semelhante à análise técnica, e seja apenas uma justificativa posterior, ou talvez seja uma lenda urbana.
Lucro médio +0,5%, acumulado +0,6%.

■ Comparação de Algoritmos
Comparei em simulação dois algoritmos: um que compra quando a previsão da IA indica uma tendência de alta e o preço de abertura do dia seguinte está alguns pontos percentuais abaixo do fechamento do dia anterior, e outro que compra se o preço de abertura do dia seguinte estiver igual ou acima do fechamento do dia anterior. Intuitivamente, parece que o primeiro algoritmo, que "compra mais barato", tem um desempenho melhor, mas na verdade, o segundo algoritmo é o vencedor. Como os preços das ações tendem a continuar subindo depois de subirem e a continuar caindo depois de caírem, esse resultado é compreensível.
O lucro médio de cada um é de +2,0% e +0,9%, então pode ser apenas uma variação.

■ Erro no Cálculo do Air Trade
Havia um erro no cálculo do Air Trade. Sim. Eu estava pensando que os resultados estavam muito bons. Os novos resultados são os seguintes: aproximadamente -1%.
Apesar de o mercado estar muito ruim desde o início do ano, o fato de o lucro/prejuízo ser de aproximadamente -1% pode ser visto como um bom desempenho.
Eu gostaria de pensar que, se o mercado se recuperar, isso se tornará positivo...

Air Trade 1 [Média de todas as ações] Lucro: +0,1% (média ponderada, ênfase nos resultados mais recentes) -0,1% (média, período total) Acumulado -1,3% (período total)
Air Trade 2 [Média de todas as ações] Lucro: -0,8% (média ponderada, ênfase nos resultados mais recentes) -0,7% (média, período total) Acumulado -1,5% (período total)
Air Trade 3 [Média de todas as ações] Lucro: -0,8% (média ponderada, ênfase nos resultados mais recentes) -0,7% (média, período total) Acumulado -1,6% (período total)
Air Trade 4 [Média de todas as ações] Lucro: -0,8% (média ponderada, ênfase nos resultados mais recentes) -0,7% (média, período total) Acumulado -2,2% (período total)
Air Trade 5 [Média de todas as ações] Lucro: -0,1% (média ponderada, ênfase nos resultados mais recentes) -0,1% (média, período total) Acumulado -0,8% (período total)

■ O Sentimento do Mercado é Importante
Como o sentimento do mercado hoje foi bom, houve uma recuperação para o positivo. Preciso modificá-lo para que ele se torne positivo independentemente do sentimento do mercado.

AirTrade 1 [Média de todas as ações] Lucro/Prejuízo: +0.5% (média ponderada, priorizando o período recente) +0.1% (média, período total) Acumulado -0.0% (período total)
AirTrade 2 [Média de todas as ações] Lucro/Prejuízo: +0.4% (média ponderada, priorizando o período recente) +0.2% (média, período total) Acumulado -0.1% (período total)
AirTrade 3 [Média de todas as ações] Lucro/Prejuízo: +0.1% (média ponderada, priorizando o período recente) -0.0% (média, período total) Acumulado -0.5% (período total)
AirTrade 4 [Média de todas as ações] Lucro/Prejuízo: +0.4% (média ponderada, priorizando o período recente) +0.2% (média, período total) Acumulado -0.0% (período total)
AirTrade 5 [Média de todas as ações] Lucro/Prejuízo: -0.3% (média ponderada, priorizando o período recente) -0.4% (média, período total) Acumulado -1.4% (período total)

■ A IA ainda é uma caixa preta
Comecei a perceber previsões que parecem ter algum fundamento, mas também aparecem resultados obviamente estranhos. Mesmo que eu, como humano, ache que algo está errado, o preço real das ações é ainda mais incompreensível, então talvez seja algo que está além da minha compreensão. O problema da IA, ou aprendizado profundo, é que os resultados intermediários são uma "caixa preta" e não podemos saber. É difícil explicar por que esses resultados estão aparecendo. Existe uma lógica básica, então posso explicar até certo ponto, mas é difícil explicar em detalhes para a IA. Portanto, é importante comparar os resultados com a realidade para ver se estão corretos. Parece que a direção geral está mais ou menos correta, mas o "timing" de quando sobe e quando desce é fraco. Talvez seja melhor usar os resultados da IA para a direção geral e deixar que os humanos ajustem o timing.

Ainda assim, quando se cria algo assim, na empresa, sempre aparecem pessoas que dizem "isso não é apenas o seu trabalho", ou que querem uma parte dos resultados, ou que criticam e tentam diminuir minha contribuição, como parasitas. Sempre que eu trabalho sozinho, não há ninguém além de mim, e como não estou terceirizando para ninguém, é claro que tudo que eu criei foi feito por mim, então é tranquilo e bom não ter essas pessoas que tentam atrapalhar, roubar resultados ou pedir uma parte dos resultados. Na empresa, existe uma contradição em que, mesmo que uma pessoa crie algo sozinha, é mais valorizado quando 10 pessoas fazem a mesma coisa com muito alarde. Mesmo que seja muito mais eficiente em termos de custo-benefício se uma pessoa criar algo, é mais valorizado se 10 pessoas gastarem muito dinheiro para criar a mesma coisa. Os superiores que não entendem de TI não conseguem entender que algo pode ser feito por uma pessoa. Eles não entendem de TI, então tendem a acreditar facilmente em pessoas que espalham grandes ideias e são confiantes. Eles não entendem de TI, então julgam com base no número de pessoas, não nos resultados. Empresas assim podem ficar para trás na competição global. Os profissionais de TI não ficam muito tempo em empresas assim, certo? Eu gostaria de pensar que não são apenas empresas assim. No final, eles avaliam as pessoas com base no número, não no conhecimento ou nos resultados. A indústria de TI ainda é uma sociedade de "pessoas-mês", e o desenvolvimento sob encomenda é um mundo onde é mais lucrativo fazer um "ritual" grandioso para clientes que têm dinheiro, mesmo que não seja eficiente, do que criar algo de forma eficiente. É impossível ser pago com base nos resultados. É por isso que eu não gosto de desenvolvimento sob encomenda e basicamente só confio em empresas ou indivíduos que usam a TI para seus próprios negócios. Bem, talvez muitas pessoas percam seus empregos se apenas o sistema de mérito fosse usado, então a indústria de TI, que parece ser inútil, pode estar sustentando a vida das pessoas.



■ Monitorando o Air Trade
A média recente do Air Trade 4 aumentou para +4,3%. O número de ações monitoradas ultrapassou 300. Pode ser apenas uma variação ou resultado da sorte, então ainda estamos observando.
O treinamento do modelo de IA está em andamento, e estamos fazendo pequenos ajustes diariamente.

■ 5 vitórias e 1 derrota.
Com base nos resultados da análise dos últimos dias, as operações de negociação simulada (air trade) tiveram 5 vitórias e 1 derrota. Não é um resultado ruim. Como se trata de uma negociação simulada, eu não comprei nada de verdade.

No mesmo dia, a situação ficou ainda mais estranha. Uau. É um Air Tre, mas...

■OCR
Não vou comprar, mas a Sansan parece que vai se tornar uma IPO lendária. É uma empresa listada que está com prejuízo, com vendas baixas, mas com um valor de mercado de 12 bilhões de ienes, o que é inexplicável.
Cálculo simplificado do retorno do dividendo da Sansan, com base em premissas otimistas. Isso só se concretizará se a empresa realmente crescer como o presidente diz. Se entrar em uma era de competição acirrada, como no caso dos pagamentos móveis, o preço das ações provavelmente cairá continuamente. Tecnicamente, é fácil de imitar, e o problema é o marketing. Depende de como as grandes empresas vão agir. Olhando para essa margem de lucro, também entendo por que algumas pessoas querem investir.

Sansan, basicamente, usa OCR para ler informações de cartões de visita. É inacreditável que algo assim possa levar uma empresa a abrir capital e obter grandes lucros. A ideia de dominar o mercado através do marketing, como a Amazon fez, é semelhante. Talvez eu deva criar um aplicativo de leitura de texto usando IA, só por diversão. E a ideia de criar algo "compatível com Sansan" para roubar todos os clientes (risos) seria demais? De qualquer forma, vou começar criando um aplicativo que infere strings de fontes a partir de imagens.

Enfim, procurei por artigos sobre Sansan e descobri que, segundo uma fonte, a precisão de 100% é essencial para a popularização.
https://www.itmedia.co.jp/news/spv/1906/17/news042_2.html
Isso é algo típico do Japão. Parece complicado. Talvez seja isso que o diferencia, mas não tenho certeza se as pessoas em outros países esperam essa precisão.
Além disso, os cartões de visita podem até desaparecer um dia.

Acredito que o Google tenha OCR de código aberto, então talvez eu experimente isso no futuro.

■ Depois
O treinamento do modelo de IA continua diariamente, com ajustes finos constantes, e o site continua online. Não consigo superar a situação do mercado, então os resultados operacionais estão difíceis. Se o mercado estiver bom, fica em torno de 1%, mas se estiver ruim, fica negativo. Talvez seja melhor fazer isso apenas quando o mercado estiver bom. Não é possível usar isso diretamente, mas como é difícil analisar todas as ações manualmente, usar um método para fazer uma triagem inicial parece ser uma boa ideia.

Período de criação:
Meados de março de 2019: Baixei o Matlab e comecei os experimentos.
Início de abril: Primeira experiência com Python.
Final de abril: Versão inicial do site de análise de IA concluída.
Final de maio: O site de análise de IA está quase completo.
Desde então, o modelo é treinado continuamente em um PC dedicado, e os ajustes são feitos conforme necessário.