Dando uma capacidade de Twitter para predizer o valor bitcoin com base em dados históricos

Há algum tempo, mostrei interesse em criptografia e, acima de tudo, prevejo seu aumento e queda nos próximos dias. Eu tentei alguns algoritmos, mas no final do dia, acho que ninguém pode realmente com certeza reivindicar seu aumento ou queda. Eu tentei me concentrar apenas em uma moeda, e bitcoin sendo o líder, eu decidi ir com ela.

Disclaimer: Este artigo se concentrará para explicar o algoritmo usado para prever o valor.

Eu vi que a maneira mais rápida de obter a informação relacionada ao bitcoin está no twitter, então eu decidi criar um bot, que a cada 2 horas tweetar as previsões do valor bitcoin nos próximos N dias. N sendo o número de dias que as pessoas solicitam mais. Então, por exemplo, se 3 pessoas pedissem que o bot predisse o valor nos próximos 5 dias e 7 pessoas solicitaram que o bot predisse o valor nos próximos 2 dias, o bot twitaria a previsão por 2 dias, porque quanto mais pessoas pedissem essa previsão.

Eu criei rapidamente um aplicativo de nó e depois de algum tempo de busca e tentando descobrir a melhor maneira de consultar dados históricos, gráficos de bitcoin e extrair dados úteis que poderiam ser úteis para futuros aumentos e quedas, decidi que os vizinhos mais próximos de K em combinação com alguns outros algoritmos é o caminho a seguir.

Este algoritmo de previsão é construído a partir das próximas etapas:

  1. Recolher todos os tweets do usuário (solicitações)
  2. Obtenha o dia mais solicitado para prever
  3. Obter o valor atual do bitcoin
  4. Encontre as datas mais próximas de K (10) nos últimos 2 meses, nas quais o valor da bitcoína foi mais parecido com o valor atual
  5. Para cada data encontrada (ligue para PAST_DATE), encontre o valor de BTC após os próximos N dias (ligue para N_DAYS_AFTER_PAST_DATE)
  6. Para cada data, calcule a diferença entre os valores em N_DAYS_AFTER_PAST_DATE e PAST_DATE
  7. Soma todas essas diferenças e divide-a por K
  8. O resultado é o quanto o bitcoin cresceu no intervalo de tempo entre todos os PAST_DATES e N_DAYS_AFTER_PAST_DATES

Se isso o confundir, tentarei tornar isso um pouco mais claro agora.

Primeiro passo: colete todos os tweets do usuário (solicitações)

Usando o módulo Twit , busco o twitter api para tweets que contêm "@coin_instinct Predict for <number> days" extrair apenas os números dos tweets e criar a matriz de números.

Segundo passo: obtenha o dia mais solicitado

Quando uma previsão é tweetada, o número de dias no futuro para prever é armazenado em uma matriz de lista negra. A lista de lista negra contém o número de dias das últimas 4 previsões, que ajudam a resolver problemas de redundância e twitteando a mesma previsão que já foi tweetada nas últimas 8 horas.

Esta função é bastante simples, apenas obtém o número mais solicitado na matriz de números. Se esse número já existe no blackListArr, então ele retorna o segundo mais solicitado, e assim por diante. Se todos os números solicitados estiverem no BlackListArr, o bot prevê para n dias aleatórios no futuro.

Terceira etapa: obtenha o valor atual do bitcoin

Usando a API blockchain.info, podemos obter o valor atual do bitcoin e armazená-lo em uma variável

Esta função será executada 2 minutos após o algoritmo começar o trabalho.

Quarto passo: encontrar os vizinhos mais próximos

Aqui não incluirei todas as funções, que estão sendo chamadas, como a consulta do coindesk api, para PAST_DATES e N_DAYS_AFTER_PAST_DATE, vou simplesmente extrapolar a localização dos vizinhos mais próximos com base nas semelhanças que obtemos. Todo o projeto poderia ser encontrado na minha página do Github, que eu coloquei no final deste artigo.

À medida que calculamos as diferenças entre todos os valores de bitcoína nos últimos 2 meses e o valor atual do bitcoin, precisamos encontrar as datas que têm os valores de diferença mais próximos de 0. Então, chamamos a Math.Abs ??em matrizes de semelhanças inteiras e, em seguida, classifique a matriz em ordem crescente.

A partir daqui, podemos obter as 10 melhores datas em que o valor do bitcoin foi o mais próximo do valor agora.

Quinto passo: obter matrizes de resultados finais

Aqui vamos obter a matriz de objetos, cada um contendo propriedades de início e final. A propriedade Start representará o valor do bitcoin no dia específico do histórico, e a propriedade End representará o valor da bitcoína N dias após esse dia específico. A partir desses dados, podemos obter a visão de crescimento ou perda de valor.

O código é bastante direto, passamos por todos os kNearest e obtemos dados para datas específicas. Armazene esses resultados em uma matriz finalResults e retorne-o.

Sexto passo: cálculo da previsão

Tudo o que resta é calcular a previsão, e fazemos isso com a próxima chamada de função.

E é isso mesmo! Nós também precisamos criar o texto legal com todos os emojis nele e tweet a previsão, é claro.

Conclusão

Se você ainda está coçando sua cabeça sobre algo que é bom, lembre-se de que estas são apenas funções brutas, extraídas de um código completo que você pode encontrar no meu pagamento de github: https://github.com/ognjengt/coin-instinct -bot . Por favor, verifique isso, tudo isso terá muito mais sentido.

Além disso, esta é apenas minha abordagem para de alguma forma prever o valor do bitcoin nos próximos dias, e eu gostaria de ouvir opiniões sobre essa abordagem. As previsões nem sempre correspondem ao valor correto, mas percebi que, na maioria das vezes, as previsões são apenas 100 ou 200 $ off. Então, você poderia dizer que não é uma grande falta, especialmente neste mundo de criptografia, onde os gráficos estão voando para cima e para baixo como um louco.

O problema com este algoritmo é que ele apenas analisa os dados históricos de bitcoin, e faz a predição fora disso, então não há nenhuma maneira de detectar se o valor vai cair. Estou trabalhando na inserção de um fator humano, onde eu rasparia os sites para possíveis artigos que estão insinuando o impacto no bitcoin e adicionei isso à equação.

E, claro, a coisa sobre este artigo. Para ver o Twitter Bot em ação, você pode visitar este link aqui: https://twitter.com/coin_instinct . Experimente e tweet para ele! Solicite uma previsão!

Obrigado por ler este artigo, se você tiver dúvidas, sinta-se à vontade para publicá-lo nos comentários ou encontre-me no twitter https://twitter.com/ognjengt