Dando una habilidad bot de twitter para predecir el valor de bitcoin basado en datos históricos

Desde hace un tiempo, he mostrado interés en las criptomonedas y, sobre todo, estoy prediciendo su aumento y disminución en los próximos días. Probé algunos algoritmos, pero al final del día, creo que nadie puede afirmar con certeza si están subiendo o bajando. Intenté enfocarme solo en una moneda, y bitcoin siendo el líder, decidí ir con eso.

Descargo de responsabilidad: este artículo se concentrará para explicar el algoritmo utilizado para predecir el valor.

He visto que la forma más rápida de obtener la información relacionada con bitcoin es en twitter, así que decidí crear un bot, que cada 2 horas twittearía las predicciones del valor de bitcoin en los próximos N días. N es el número de días que las personas solicitan más. Entonces, por ejemplo, si 3 personas pidieron que el robot prediga el valor en los próximos 5 días, y 7 personas solicitaron que el bot prediga el valor en los próximos 2 días, el bot tuiteó la predicción durante 2 días, porque la gente solicitó más esa predicción.

Rápidamente creé una aplicación de nodos y después de un tiempo de buscar e intentar averiguar la mejor manera de consultar datos históricos, gráficos de bitcoin y extraer datos útiles que pudieran ser útiles para futuros levantamientos y caídas, decidí que los vecinos más cercanos de K en combinación con algunos otros algoritmos es el camino a seguir.

Este algoritmo de predicción se construye a partir de los siguientes pasos:

  1. Recopila todos los tweets de usuario (solicitudes)
  2. Obtenga el día más solicitado para predecir
  3. Obtenga el valor actual de bitcoin
  4. Encuentre K (10) fechas más cercanas en los últimos 2 meses, en las cuales el valor de bitcoin fue más similar al valor actual
  5. Para cada fecha encontrada (llame a este PAST_DATE), encuentre el valor de BTC después de los próximos N días (llame a este N_DAYS_AFTER_PAST_DATE)
  6. Para cada fecha, calcule la diferencia entre los valores en N_DAYS_AFTER_PAST_DATE y PAST_DATE
  7. Sume todas esas diferencias y divídalas por K
  8. El resultado es cuánto creció Bitcoin en el intervalo de tiempo entre todos los PAST_DATES y N_DAYS_AFTER_PAST_DATES

Si esto te confunde, trataré de hacerlo un poco más claro ahora.

Primer paso: recopilar todos los tweets de usuario (solicitudes)

Usando el módulo Twit , busco en la API de Twitter tweets que contengan "@coin_instinct Predict for <number> days", extraiga solo los números de los tweets y cree la matriz de números.

Segundo paso: obtener el día más solicitado

Cuando se twittea una predicción, el número de días en el futuro para predecir se almacena en una matriz de lista negra. El conjunto de la lista negra contiene la cantidad de días de las 4 predicciones anteriores, lo que ayuda a resolver problemas de redundancia y tuitear la misma predicción que ya se ha tuiteado en las últimas 8 horas.

Esta función es bastante simple, solo obtiene el número más solicitado en la matriz numérica. Si ese número ya existe en blackListArr, devuelve el segundo más solicitado, y así sucesivamente. Si todos los números solicitados están en blackListArr, entonces el bot predice n días aleatorios en el futuro.

Tercer paso: obtener el valor actual de bitcoin

Usando la API blockchain.info, podemos obtener el valor actual de bitcoin y almacenarlo en una variable

Esta función se ejecutará 2 minutos después de que el algoritmo comience el trabajo.

Cuarto paso: Encontrar los vecinos más cercanos de K

Aquí no incluiré todas las funciones que se están convocando, como consultar la api de coindesk, para PAST_DATES y N_DAYS_AFTER_PAST_DATE, solo extrapolaré el hallazgo de los vecinos más cercanos en base a las similitudes que obtenemos. Todo el proyecto se puede encontrar en mi página github, que puse al final de este artículo.

A medida que calculamos las diferencias entre todos los valores de bitcoin en los últimos 2 meses y el valor de bitcoin actual, necesitamos encontrar las fechas que tienen los valores de diferencia más cercanos a 0. Así que primero llamamos a Math.Abs ??en una matriz de similitudes completa y luego, ordenar la matriz en orden ascendente.

Desde aquí, podemos obtener fácilmente las 10 fechas principales en las que el valor de bitcoin era el más cercano al valor actual.

Quinto paso: obtener matriz de resultados finales

Aquí obtendremos la matriz de objetos, cada uno con propiedades de inicio y fin. La propiedad de inicio representará el valor de bitcoin en el día específico de la historia, y la propiedad End representará el valor de bitcoin N días después de ese día específico. A partir de estos datos, podemos obtener información sobre el crecimiento o la pérdida de valor.

El código es bastante sencillo, pasamos por todos los kNearest y obtenemos los datos para las fechas específicas. Almacene esos resultados en una matriz finalResults y devuélvala.

Sexto paso: calcular la predicción

Todo lo que queda es calcular la predicción, y lo hacemos con la próxima llamada a la función.

¡Y eso es todo! También necesitamos crear el texto genial con todos los emojis y twittear la predicción, por supuesto.

Conclusión

Si todavía estás rascando la cabeza por algo que está bien, ten en cuenta que estas son solo funciones en bruto, extraídas de un código completo que puedes encontrar en mi repositorio github: https://github.com/ognjengt/coin-instinct -bot . Por favor, compruébalo, todo esto tendrá mucho más sentido.

Además, este es solo mi enfoque para predecir de alguna manera el valor de bitcoin en los próximos días, y me gustaría escuchar opiniones sobre este enfoque. Las predicciones no siempre coinciden con el valor correcto, pero me he dado cuenta de que la mayoría de las veces, las predicciones son solo 100 o 200 $ de descuento. Por lo tanto, podría decirse que no es algo que se pierda, especialmente en este mundo criptográfico, donde las listas de éxitos están subiendo y bajando como locos.

El problema con este algoritmo es que solo analiza los datos históricos de bitcoin, y hace predicciones a partir de eso, por lo que no hay forma de detectar si el valor va a caer. Estoy trabajando en la inserción de un factor humano, donde buscaría en los sitios web posibles artículos que insinúen el colapso del valor de Bitcoin, y lo agregaré a la ecuación.

Y, por supuesto, de lo que se trata este artículo. Para ver el bot de twitter en vivo, puede visitar este enlace aquí: https://twitter.com/coin_instinct . Pruébelo y twittee con él! ¡Solicite una predicción!

Gracias por leer este artículo, si tiene alguna pregunta, no dude en publicarla en los comentarios o en encontrarme en twitter https://twitter.com/ognjengt