Obtention de données cryptographiques historiques et en temps réel avec une programmation Web très simple PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Obtention de données cryptographiques historiques et en temps réel avec une programmation Web très simple

Luciano Abriata

En découvrant les crypto-monnaies, j’avais désespérément besoin de données que je pouvais manipuler moi-même pour réaliser mes propres tracés et analyses. Ici, je vous montre comment obtenir facilement des données cryptographiques historiques et en temps réel directement dans votre navigateur Web avec un minimum de compétences en programmation. Code source, liens et quelques tracés et analyses de base inclus.

Avertissement : vous ne trouverez aucun conseil financierce ici et je ne suis pas un expert en crypto-monnaie, cryptoart, NFT, leur trading, etc. Je distribue uniquement du code HTML+JavaScript gratuit pour obtenir des données via des appels API vers CryptoCompare.com ; et j'affiche quelques tracés dérivés de ces données avec certaines de mes propres opinions subjectives.

Je me suis récemment intéressé aux crypto-monnaies, au cryptoart, aux NFT, etc. Naturellement, en tant que scientifique travaillant constamment avec des données, l'une des premières choses que je voulais faire était de jouer moi-même avec les données de crypto-monnaie. J'ai vu des intrigues partout sur les sites Web, les actualités et les applications ; mais comment puis-je mettre la main sur des données réelles pour jouer avec elles et mener mes propres intrigues et enquêtes ? Et surtout, comment être sûr qu'il soit à jour à chaque fois que je le demande ?

Plus précisément, la première chose sur laquelle je voulais mettre la main était les taux de change entre les différentes devises crypto et Fiat. J'ai découvert que le site CryptoCompare.com propose une belle API, gratuite pour un petit nombre d'appels, qui permet un accès programmatique aux données de sa base. J'ai également trouvé en ligne divers morceaux de code JavaScript que j'ai rassemblés dans deux applications Web très simples : une pour obtenir des mises à jour des taux de change BTC-USD toutes les 10 secondes ; et un autre pour récupérer les taux de change historiques BTC-USD chaque minute, heure ou jour tout au long de l’histoire du Bitcoin. N'hésitez pas à copier le code que je présente et à l'adapter à vos propres objectifs.

Application Web 1 : obtenez n'importe quel échange en temps réel

Bien sûr, vous pouvez ouvrir n'importe quel site Web ou application de crypto-monnaie et obtenir ce numéro à partir de là, mais supposons que vous souhaitiez l'avoir toujours à portée de main et l'actualiser automatiquement, ou peut-être que vous souhaitiez qu'il soit transmis automatiquement à un système de calcul que vous développez.

Un simple accès à ce lien sur l'API de CryptoCompare renvoie le taux de change du Bitcoin (BTC) en USD au moment où vous effectuez l'appel :

https://min-api.cryptocompare.com/data/price?fsym=BTC&tsyms=USD

De même, cet autre exemple vous donne le taux de change de l’Ethereum (ETH) en EUR au moment du call :

https://min-api.cryptocompare.com/data/price?fsym=ETH&tsyms=EUR

Facile, n'est-ce pas ? Eh bien, sur cette base, le code suivant renvoie la conversion que vous demandez (dans cet exemple BTC en USD) toutes les 10 secondes, dans une petite page Web que vous pouvez rendre privée pour suivre vos tarifs préférés sur votre propre site Web :

Vous pouvez copier-coller ce code dans un fichier .html puis le charger avec votre navigateur pour le voir fonctionner. Ou si vous vous sentez paresseux, ouvrez simplement cet exemple de démonstration sur mon site :

https://lucianoabriata.altervista.org/tests/cryptogames/getBTC-realtime.html

Vous pouvez facilement développer cela dans une application Web qui assure le suivi en permanence des taux de change, et même le stocker dans un tracé pour une visualisation en déplacement ou dans une variable à télécharger.

Application Web 2 : obtenir des données historiques

Mais que se passe-t-il si vous souhaitez obtenir des données avant le démarrage de la page Web ? Eh bien, vous pouvez accéder à des sites Web spécialisés et télécharger ces données ; cependant, j’ai constaté que les sites Web faciles à utiliser ne fournissent que des données partielles. Par exemple, les données BTC chez Yahoo Finances commencent le 17 septembre 2014 et leurs enregistrements sont mensuels, hebdomadaires ou quotidiens, mais pas horaires ou minutes. De plus, si vous développez un système qui doit être automatiquement mis à jour, le téléchargement manuel des données est hors de question… vous avez besoin d'un accès par programmation.

Heureusement, l'API de CryptoCompare inclut des moyens de récupérer des données historiques chronométrées en minutes, heures ou jours. Non seulement les taux de change, mais aussi d’autres mesures telles que les volumes d’échange. Pour en savoir plus sur le API voir sa documentation et lisez ce qui suit.

Un appel API comme dans cet exemple vous permettra d'obtenir les données des 20 dernières heures, heure par heure :

https://min-api.cryptocompare.com/data/v2/histohour?fsym=ETH&tsym=USD&limit=20&toTs=-1&api_key=YOURKEYHERE

La sortie est analysable au format JSON. Cela ressemble à ceci :

Points à noter dans l'URL de l'appel API (que nous utiliserons ensuite dans une fonction javascript fetch()) :

  1. toTs=-1 signifie que vous voulez des données jusqu'au moment où l'appel est exécuté.
  2. limite est le nombre de lignes souhaité.
  3. Vous devez fournir une clé API.

Avec la clé API gratuite (à obtenir sur le page de documentation; et oui, vous pouvez acheter des clés avec des fonctionnalités plus avancées), vous êtes limité dans le nombre total d'appels que vous pouvez effectuer, et chaque appel ne vous donnera que 2000 2000 entrées maximum. Ainsi, par exemple, si vous demandez, par exemple, les taux de change horaires du BTC en USD, le maximum que vous obtiendrez est de 33 83.33 minutes en arrière de l'heure demandée, ce qui signifie environ 3 heures, soit un peu plus d'une journée. Ou si vous demandez des données horaires, vous obtiendrez au maximum des données sur 4000 jours consécutifs, soit un peu moins de 2021 mois. Cependant, ce n'est pas vraiment un gros problème, car vous pouvez répéter l'API en arrière autant de fois que nécessaire pour couvrir l'intervalle de temps qui vous intéresse. Par exemple, pour récupérer les données BTC quotidiennes jusqu'à leurs origines, vous avez besoin un peu plus de 3 98400 points (jours) en août 50, lorsque cette histoire a été écrite. Cela signifie que vous n'avez besoin que de XNUMX appels consécutifs. Et si vous souhaitez des données horaires pour la même période, vous recherchez environ XNUMX XNUMX points, qui sont couverts par XNUMX appels consécutifs.

Laissez-moi vous montrer cette application Web, avec laquelle vous pouvez demander des données historiques quotidiennes pour n'importe quel taux de change par rapport à l'USD :

Le code peut paraître un peu compliqué, mais il pourrait être beaucoup plus simple. Le problème ici est que j'ai créé toute une interface pour permettre à l'utilisateur de choisir dans quelle plage horaire obtenir les données, puis j'ai concaténé les résultats des appels suivants dans une zone de texte pour une copie facile :

Notez que vous devez appeler l'API deux fois : une fois dans la fonction qui appelle une liste d'entrées de données jusqu'au moment de l'exécution (getBtcData, exécuté lorsque l'utilisateur clique sur "Obtenir les dernières données" et également automatiquement au chargement) et une autre pour la fonction qui renvoie les données avant une heure donnée (getBtcDataPrevious). Notez également que les fonctions mettent automatiquement à jour les heures De et À, qui sont affichées au format série brut et également converties sous une forme lisible par l'homme par la fonction serialDateToNiceDate.

Après avoir chargé la page ou cliqué sur « Obtenir les dernières données », la zone de texte à droite est renseignée avec les 2000 2000 dernières entrées horaires et les heures de début et de fin sont mises à jour. Vous pourrez ensuite demander par la suite XNUMX blocs de données des périodes précédentes en cliquant sur « Obtenir la période précédente ». Les lignes entrantes seront ajoutées à la zone de texte, en conservant l'ordre historique.

En regardant quelques données historiques

Comme je l’ai dit en introduction, j’avais très hâte d’obtenir des données sur l’évolution temporelle des échanges BTC:USD depuis la création du Bitcoin. Avec une petite modification de l'application Web présentée ci-dessus (en changeant simplement « histohour » par « histoday »), vous obtenez une application qui renvoie des enregistrements quotidiens. Ensuite, en trois clics sur « Obtenir la période précédente », vous obtenez toutes les données quotidiennes pour Bitcoin, depuis juillet 2010 jusqu'à aujourd'hui.

Faisons quelques tracés de ces données. Tout d’abord, simplement le taux de change au fil du temps, un graphique que vous voyez dans la plupart des applications, sites et actualités :

Le graphique montre cinq temps de disponibilité clés : un vers la fin 2013, un plus fort vers la fin 2017 – début 2018, suivi d'un autre en 2019, puis d'un plus fort au cours du premier semestre 2021, suivi d'une nouvelle augmentation rapide qui se produit actuellement.

Il est intéressant de voir comment les maxima observés dans ce graphique correspondent à peu près à l'intérêt au fil du temps tel que mesuré par Google Trends :

Un autre graphique de nos données d'échange BTC:USD récupérées, plus intéressant que celui que nous avons fait ci-dessus, est celui-ci où le prix est traité sous forme logarithmique (ici log en base 10) :

Cette transformation de journal identifie plus clairement les phases ascendantes. Vérifiez que les hauteurs relatives des pics de la base au sommet sont assez différentes et semblent s'atténuer lentement : le premier pic principal entraîne un gain d'environ 1.5 ordres de grandeur (environ 30X) ; les deuxième, troisième et quatrième sont d'environ 1 ordre de grandeur (environ 10X), et le dernier d'environ 0.5 ordre de grandeur seulement (environ 3.2X). Ainsi, même si les maxima historiques deviennent très élevés, les chances de réaliser d’énormes profits diminuent progressivement pour les investisseurs ultérieurs. Bien qu’il soit alors trop tard pour devenir riche avec Bitcoin, la tendance générale du taux de change BTC:USD semble indiquer qu’il pourrait encore augmenter pendant un certain temps (sans vous dire d’acheter ici, mais simplement en extrapolant naïvement à partir de l’intrigue) :

Ces tracés log contiennent beaucoup plus de données, que d’autres ont analysées dans les articles de blog suivants. N'étant pas expert, je ne peux pas les juger, mais ils sont certainement très intéressants :

Conclusion et lectures complémentaires sélectionnées

J'espère que vous vous amuserez à utiliser ces scripts et leurs dérivés pour obtenir et jouer avec des données cryptographiques. Tout ce domaine est très intéressant, et en faisant mes recherches sur les crypto-monnaies au cours des deux dernières années, j'ai lu des tonnes d'articles, d'histoires et de messages, dont je les ai distillés pour que vous puissiez continuer à partir d'ici, principalement de Medium et ses publications associées :

Source : https://towardsdatascience.com/obtaining-historical-and-real-time-crypto-data-with-very-simple-web-programming-7b481f153630?source=rss——-8—————–crypto-monnaie

Horodatage:

Plus de Moyenne

MetaMask

Nœud source: 1096639
Horodatage: Le 7 octobre 2021