Obținerea datelor cripto istorice și în timp real cu o programare web foarte simplă PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Obținerea datelor cripto istorice și în timp real cu o programare web foarte simplă

Luciano Abriata

În timp ce învățam despre criptomonede, aveam nevoie cu disperare de date pe care să le pot manipula singur pentru a-mi face propriile comploturi și analize. Aici vă arăt cum să obțineți cu ușurință date cripto în timp real și istorice chiar în browserul dvs. web, cu abilități minime de programare. Cod sursă, link-uri și câteva diagrame și analize de bază incluse.

Disclaimer: Nu veți găsi niciun sfat financiarcSunt aici și nu sunt expert în criptomonede, criptoart, NFT, tranzacționarea acestora etc. Dau doar cod HTML+JavaScript gratuit pentru a obține date prin apeluri API către CryptoCompare.com; și afișez niște diagrame derivate din acele date cu unele dintre propriile mele opinii subiective.

De curând m-am interesat de criptomonede, criptoart, NFT-uri etc. Desigur, ca om de știință care lucrează cu date tot timpul, unul dintre primele lucruri pe care mi-am dorit să le fac a fost să mă joc cu datele criptomonedelor. Am văzut diagrame peste tot în site-uri web, știri și aplicații; dar cum aș putea pune mâna pe date reale pentru a mă juca cu ele și a-mi face propriile comploturi și investigații? Și mai ales, cum aș putea să fiu sigur că este la zi de fiecare dată când l-am solicitat?

Mai exact, primul lucru pe care am vrut să-mi pun mâna au fost cursurile de schimb dintre diversele cripto și monede Fiat. Am descoperit că site-ul CryptoCompare.com oferă un API frumos, gratuit pentru un număr mic de apeluri, care permite accesul programatic la datele de la baza sa. De asemenea, am găsit online diverse bucăți de cod JavaScript pe care le-am pus împreună în două aplicații web foarte simple: una pentru a obține actualizări ale ratelor de schimb BTC-USD la fiecare 10 secunde; și altul pentru a prelua ratele de schimb istorice BTC-USD în fiecare minut, oră sau zi de-a lungul întregii istorii a Bitcoin. Simțiți-vă liber să copiați codul pe care îl prezint și să îl adaptați la propriile obiective.

Aplicația web 1: obțineți orice schimb în timp real

Desigur, puteți deschide orice site web sau aplicație de criptomonedă și puteți obține acest număr de acolo, dar să presupunem că doriți să îl aveți întotdeauna la îndemână și să se reîmprospăteze automat sau poate doriți să îl alimentați automat unui sistem de calcul pe care îl dezvoltați.

Accesul simplu la acest link la API-ul CryptoCompare returnează cursul de schimb al Bitcoin (BTC) în USD chiar în momentul în care efectuați apelul:

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

De asemenea, acest alt exemplu vă oferă cursul de schimb al Ethereum (ETH) în EUR în momentul apelului:

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

Ușor, nu-i așa? Ei bine, pornind de la asta, următorul cod returnează orice conversie pe care o cereți (în acest exemplu, BTC în USD) la fiecare 10 secunde, într-o pagină web mică pe care o puteți face privată pentru a urmări tarifele preferate pe propriul site web:

Puteți să copiați și să inserați acest cod într-un fișier .html și apoi să îl încărcați cu browserul dvs., pentru a vedea cum rulează. Sau dacă vă simțiți leneș, deschideți acest exemplu demonstrativ pe site-ul meu:

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

Puteți dezvolta cu ușurință acest lucru în continuare într-o aplicație web care ține în mod constant evidența oricăror cursuri de schimb, chiar și să o stocați într-un complot pentru vizualizare din mers sau într-o variabilă pentru descărcare.

Aplicația web 2: obțineți date istorice

Dar ce se întâmplă dacă doriți să obțineți date înainte ca pagina web să fie începută? Ei bine, ai putea să mergi pe site-uri web specializate și să descarci aceste date; cu toate acestea, am descoperit că site-urile web ușor de utilizat oferă doar date parțiale. De exemplu, datele BTC de la Yahoo Finances încep pe 17 septembrie 2014, iar înregistrările sale sunt lunare, săptămânale sau zilnice, dar nu spun la oră sau pe minut. În plus, dacă dezvoltați un sistem care trebuie actualizat automat, descărcarea manuală a datelor nu este discutată... aveți nevoie de acces programatic.

Din fericire, API-ul CryptoCompare include modalități de a prelua datele istorice cronometrate în minute, ore sau zile. Nu numai ratele de schimb, ci și alte valori, cum ar fi volumele de schimb. Pentru a afla mai multe despre API vezi documentația sa și citește următoarele.

Un apel API ca în acest exemplu vă va obține date pentru ultimele 20 de ore, oră de oră:

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

Ieșirea este analizabilă în format JSON. Arata cam asa:

Indicații de observat în adresa URL pentru apelul API (pe care îl vom folosi în continuare într-o funcție javascript fetch()):

  1. toTs=-1 înseamnă că doriți date până în momentul în care apelul este executat.
  2. limita este numărul de linii dorite.
  3. Trebuie să furnizați o cheie API.

Cu cheia API gratuită (obțineți-o la pagina de documentare; și da, puteți achiziționa chei cu funcții mai avansate) sunteți limitat în numărul total de apeluri pe care le puteți efectua și fiecare apel vă va oferi doar până la 2000 de intrări. Deci, de exemplu, dacă cereți, să zicem, cursurile de schimb orare pentru BTC în USD, maximul pe care îl veți obține este de 2000 de minute înapoi de la ora solicitată, ceea ce înseamnă aproximativ 33 de ore, adică puțin peste o zi. Sau dacă cereți date orare, veți primi cel mult date pentru 83.33 zile consecutive, puțin sub 3 luni. Cu toate acestea, aceasta nu este cu adevărat o problemă mare, deoarece puteți repeta API-ul înapoi în timp de câte ori este nevoie pentru a acoperi intervalul de timp care vă interesează. De exemplu, pentru a obține datele BTC zilnice înapoi până la origine, aveți nevoie puțin peste 4000 de puncte (zile) din august 2021 când a fost scrisă această poveste. Aceasta înseamnă că aveți nevoie de doar 3 apeluri consecutive. Iar dacă vrei date orare pentru aceeași perioadă, ești după aproximativ 98400 de puncte, care sunt acoperite de 50 de apeluri consecutive.

Permiteți-mi să vă arăt această aplicație web, cu care puteți solicita date istorice zilnice pentru orice curs de schimb în USD:

Codul poate părea puțin complicat, dar ar putea fi mult mai simplu. Chestia aici este că am creat o interfață întreagă pentru a permite utilizatorului să aleagă în ce interval de timp să obțină datele și apoi să concateneze rezultatele de la apelurile ulterioare într-o casetă de text pentru o copiere ușoară:

Rețineți că trebuie să apelați API-ul de două ori: o dată în interiorul funcției care solicită o listă de intrări de date până în momentul execuției (getBtcData, rulați când utilizatorul face clic pe „Obțineți ultimele date” și, de asemenea, automat la încărcare) și alta pentru funcția care returnează date înainte de un anumit moment (getBtcDataPrevious). Observați, de asemenea, că funcțiile actualizează automat orele De la și Până, care sunt afișate în format serial brut și, de asemenea, convertite într-o formă care poate fi citită de om de către funcția serialDateToNiceDate.

După încărcarea paginii sau făcând clic pe „Obțineți cele mai recente date”, caseta de text din dreapta este populată cu ultimele 2000 de intrări pe oră, iar orele De la și Până sunt actualizate. Apoi, puteți solicita 2000 de blocuri de linii de date din perioadele precedente făcând clic pe „Obțineți perioada anterioară”. Liniile de intrare vor fi adăugate în caseta de text, păstrând ordinea istorică.

Privind câteva date istorice

După cum am spus în introducere, am fost foarte dornic să obțin date despre evoluția în timp a schimburilor BTC:USD de la crearea Bitcoin. Cu o mică modificare a aplicației web afișată mai sus (pur și simplu schimbând „histohour” cu „histoday”), obțineți o aplicație care returnează înregistrările zilnice. Apoi, cu trei clicuri pe „Obțineți perioada anterioară”, obțineți toate datele zilnice pentru Bitcoin, începând din iulie 2010 până acum.

Să facem câteva grafice ale acestor date. În primul rând pur și simplu cursul de schimb în timp, un complot pe care îl vedeți în majoritatea aplicațiilor, site-urilor și știrilor:

The plot shows five key up-times: one around late 2013, a stronger one around late 2017 – early 2018 followed by another in 2019, and then a stronger one during the first half of 2021 followed by a new rapid increase happening right now.

Este interesant cum maximele observate în acea diagramă se potrivesc aproximativ cu interesul în timp măsurat de Google Trends:

Un alt grafic al datelor noastre de schimb BTC:USD recuperat, mai interesant decât cel pe care l-am făcut mai sus, este acesta în care prețul este tratat în formă logaritmică (aici log în baza 10):

Această transformare a jurnalului identifică mai clar fazele ascendente. Verificați dacă înălțimile relative ale vârfurilor de la bază la vârf sunt destul de diferite și par să se atenueze încet: primul vârf principal implică un câștig de aproximativ 1.5 ordine de mărime (aproximativ 30X); al doilea, al treilea și al patrulea sunt în jur de 1 ordin de mărime (în jur de 10X), iar ultimul în jur de doar 0.5 ordine de mărime (în jur de 3.2X). Astfel, deși maximele istorice devin foarte mari, șansele de profituri uriașe scad treptat pentru oamenii care investesc mai târziu. Deși atunci este prea târziu pentru a vă îmbogăți cu Bitcoin, tendința generală a cursului de schimb BTC:USD pare să indice că acesta poate crește încă de ceva timp (nu vă spun să cumpărați aici, doar extrapolând naiv din complot):

Aceste diagrame de jurnal conțin mult mai multe date, pe care alții le-au analizat în următoarele articole de blog. Nefiind un expert, nu le pot judeca, dar cu siguranță sunt foarte interesante:

Concluzie și lectură ulterioară selectată

Sper că vă veți distra folosind aceste scripturi și scripturi derivate pentru a obține și a juca cu date cripto. Întregul domeniu este foarte interesant și, făcându-mi cercetările despre criptomonede în ultimii doi ani, am citit tone de articole, povești și postări, dintre care le-am distilat pentru ca tu să continui de aici, în principal de la Medium și publicațiile asociate acesteia:

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

Timestamp-ul:

Mai mult de la Mediu