Uzyskiwanie danych historycznych i kryptograficznych w czasie rzeczywistym za pomocą bardzo prostego programowania internetowego PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Uzyskiwanie historycznych danych kryptograficznych w czasie rzeczywistym za pomocą bardzo prostego programowania internetowego

Luciano Abriatę

Ucząc się o kryptowalutach, desperacko potrzebowałem danych, którymi mógłbym manipulować, aby wykonać własne wykresy i analizy. Tutaj pokażę Ci, jak łatwo uzyskać aktualne i historyczne dane kryptograficzne bezpośrednio w przeglądarce internetowej przy minimalnych umiejętnościach programowania. Zawiera kod źródłowy, linki oraz kilka podstawowych wykresów i analiz.

Zastrzeżenie: Nie znajdziesz żadnych porad finansowychctutaj i nie jestem ekspertem w dziedzinie kryptowalut, kryptowalut, NFT, handlu nimi itp. Rozdaję tylko darmowy kod HTML+JavaScript w celu uzyskania danych poprzez wywołania API do CryptoCompare.com; i przedstawiam niektóre wykresy wyprowadzone z tych danych wraz z moimi własnymi subiektywnymi opiniami.

Niedawno zainteresowałem się kryptowalutami, kryptowalutą, NFT itp. Naturalnie, jako naukowiec pracujący cały czas z danymi, jedną z pierwszych rzeczy, które chciałem zrobić, była sama zabawa z danymi kryptowalut. Wszędzie widziałem wątki na stronach internetowych, w wiadomościach i aplikacjach; ale jak mógłbym zdobyć rzeczywiste dane, aby się nimi bawić i prowadzić własne wątki i badania? A zwłaszcza, skąd mogę mieć pewność, że jest on aktualny za każdym razem, gdy o to poproszę?

Konkretnie, pierwszą rzeczą, którą chciałem położyć w swoje ręce, były kursy wymiany pomiędzy różnymi kryptowalutami i walutami Fiat. Odkryłem, że witryna CryptoCompare.com oferuje ładne API, bezpłatne dla niewielkiej liczby połączeń, które umożliwia programowy dostęp do danych z jej bazy. Znalazłem także w Internecie różne fragmenty kodu JavaScript, które złożyłem w dwie bardzo proste aplikacje internetowe: jedną, która co 10 sekund pobiera aktualizacje kursów wymiany BTC-USD; a drugi do pobierania historycznych kursów wymiany BTC-USD co minutę, godzinę lub dzień w całej historii Bitcoin. Zapraszam do kopiowania prezentowanego przeze mnie kodu i dostosowywania go do własnych celów.

Aplikacja internetowa 1: uzyskaj dowolną wymianę w czasie rzeczywistym

Oczywiście możesz otworzyć dowolną witrynę lub aplikację dotyczącą kryptowalut i pobrać stamtąd ten numer, ale załóżmy, że chcesz mieć go zawsze pod ręką i automatycznie odświeżać, lub może chcesz, aby był on automatycznie wprowadzany do rozwijanego systemu obliczeniowego.

Prosty dostęp do tego linku w API CryptoCompare zwraca kurs wymiany Bitcoin (BTC) w USD w momencie wykonania połączenia:

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

Podobnie, ten drugi przykład podaje kurs wymiany Ethereum (ETH) w EUR w momencie połączenia:

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

Łatwe, prawda? Cóż, bazując na tym, poniższy kod zwraca dowolną konwersję, o którą prosisz (w tym przykładzie BTC w USD) co ​​10 sekund na małej stronie internetowej, którą możesz ustawić jako prywatną, aby śledzić ulubione stawki we własnej witrynie:

Możesz skopiować i wkleić ten kod do pliku .html, a następnie załadować go za pomocą przeglądarki, aby zobaczyć, jak działa. Lub jeśli czujesz się leniwy, po prostu otwórz ten przykład demonstracyjny na mojej stronie:

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

Można to łatwo rozwinąć w aplikację internetową, która stale śledzi kursy wymiany, a nawet przechowuje je na wykresie do wizualizacji w podróży lub w zmiennej do pobrania.

Aplikacja internetowa 2: uzyskaj dane historyczne

Ale co, jeśli chcesz uzyskać dane przed uruchomieniem strony internetowej? Cóż, możesz odwiedzić wyspecjalizowane strony internetowe i pobrać te dane; odkryłem jednak, że łatwe w obsłudze witryny internetowe dostarczają jedynie częściowych danych. Na przykład dane dotyczące BTC w Yahoo Finances rozpoczynają się 17 września 2014 r. i są rejestrowane w trybie miesięcznym, tygodniowym lub dziennym, ale nie godzinowym ani minutowym. Poza tym, jeśli tworzysz system, który wymaga automatycznej aktualizacji, ręczne pobieranie danych nie wchodzi w grę… potrzebujesz dostępu programowego.

Na szczęście interfejs API CryptoCompare umożliwia pobieranie danych historycznych w minutach, godzinach lub dniach. Nie tylko kursy wymiany, ale także inne wskaźniki, takie jak wolumen wymiany. Aby dowiedzieć się więcej na temat API zobacz jego dokumentację i przeczytaj co następuje.

Wywołanie API, jak w tym przykładzie, wyświetli dane z ostatnich 20 godzin, godzina po godzinie:

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

Dane wyjściowe można analizować w formacie JSON. To wygląda tak:

Na co warto zwrócić uwagę w adresie URL wywołania API (którego następnie użyjemy w funkcji javascript fetch()):

  1. toTs=-1 oznacza, że ​​chcesz danych aż do momentu wykonania połączenia.
  2. ograniczenie to liczba żądanych linii.
  3. Musisz podać klucz API.

Dzięki darmowemu kluczowi API (pobierz go na stronie strona dokumentacji; i tak, możesz kupić klucze z bardziej zaawansowanymi funkcjami), całkowita liczba połączeń, które możesz wykonać, jest ograniczona, a każde połączenie daje tylko do 2000 wpisów. Na przykład, jeśli poprosisz o godzinny kurs wymiany BTC w USD, maksymalnie otrzymasz 2000 minut wstecz od podanego czasu, co oznacza około 33 godziny, czyli nieco ponad jeden dzień. Lub jeśli poprosisz o dane godzinowe, otrzymasz co najwyżej dane za 83.33 kolejnych dni, czyli niecałe 3 miesiące. Nie jest to jednak naprawdę duży problem, ponieważ możesz powtarzać API wstecz tyle razy, ile potrzebujesz, aby pokryć interesującą Cię lukę czasową. Na przykład, aby uzyskać codzienne dane BTC z powrotem do momentu ich powstania, potrzebujesz nieco ponad 4000 punktów (dni) według stanu na sierpień 2021 r., kiedy pisano tę historię. Oznacza to, że potrzebujesz tylko 3 kolejnych połączeń. A jeśli chcesz dane godzinowe za ten sam okres, to szukasz około 98400 punktów, które pokrywane są przez 50 kolejnych połączeń.

Pokażę Ci tę aplikację internetową, za pomocą której możesz poprosić o codzienne dane historyczne dla dowolnego kursu wymiany na USD:

Kod może wyglądać na nieco skomplikowany, ale mógłby być znacznie prostszy. Chodzi o to, że stworzyłem cały interfejs, aby użytkownik mógł wybrać, w jakim przedziale czasu chce pobrać dane, a następnie połączyć wyniki z kolejnych wywołań w polu tekstowym w celu łatwego kopiowania:

Pamiętaj, że musisz wywołać API dwa razy: raz w funkcji, która wywołuje listę wpisów danych do momentu wykonania (getBtcData, uruchamia się, gdy użytkownik kliknie „Pobierz najnowsze dane”, a także automatycznie przy ładowaniu) i drugi raz dla funkcja zwracająca dane przed zadanym czasem (getBtcDataPrevious). Należy również zauważyć, że funkcje automatycznie aktualizują czasy Od i Do, które są wyświetlane w nieprzetworzonym formacie szeregowym, a także konwertowane do postaci czytelnej dla człowieka za pomocą funkcji serialDateToNiceDate.

Po załadowaniu strony lub kliknięciu „Pobierz najnowsze dane” pole tekstowe po prawej stronie zostanie wypełnione ostatnimi 2000 wpisami godzinowymi, a czasy Od i Do zostaną zaktualizowane. Następnie możesz zażądać 2000 bloków wierszy danych z poprzednich okresów, klikając „Pobierz poprzedni okres”. Przychodzące linie zostaną dodane do pola tekstowego, zachowując porządek historyczny.

Patrząc na niektóre dane historyczne

Jak powiedziałem we wstępie, bardzo chciałem uzyskać dane na temat ewolucji czasowej giełd BTC:USD od czasu powstania Bitcoina. Dzięki niewielkiej edycji aplikacji internetowej pokazanej powyżej (po prostu zmieniając „histohour” na „histoday”) otrzymujesz aplikację, która zwraca dzienne zapisy. Następnie trzema kliknięciami „Pobierz poprzedni okres” otrzymasz wszystkie dzienne dane dotyczące Bitcoina, począwszy od lipca 2010 r. aż do chwili obecnej.

Zróbmy kilka wykresów tych danych. Najpierw po prostu kurs wymiany w czasie, wykres widoczny w większości aplikacji, witryn i wiadomości:

Wykres pokazuje pięć kluczowych okresów wzrostu wydajności: jeden pod koniec 2013 r., silniejszy pod koniec 2017 r. – na początku 2018 r., kolejny w 2019 r., a następnie silniejszy w pierwszej połowie 2021 r., po którym następuje nowy szybki wzrost mający miejsce obecnie.

Interesujące jest to, jak maksima zaobserwowane na tym wykresie w przybliżeniu odpowiadają oprocentowaniu w czasie mierzonemu za pomocą Trendów Google:

Innym wykresem uzyskanych przez nas danych dotyczących wymiany BTC:USD, bardziej interesującym niż ten, który zrobiliśmy powyżej, jest ten, w którym cena jest traktowana w formie logarytmicznej (tutaj zaloguj się o podstawie 10):

Ta transformacja logu pozwala wyraźniej dostrzec fazy wzrostu. Sprawdź, czy względne wysokości pików od podstawy do szczytu są całkiem różne i wydają się powoli tłumić: pierwszy główny pik pociąga za sobą wzmocnienie o około 1.5 rzędu wielkości (około 30X); drugi, trzeci i czwarty mają około 1 rząd wielkości (około 10X), a ostatni tylko około 0.5 rzędu wielkości (około 3.2X). Tym samym pomimo bardzo wysokich historycznych maksimów, szanse na ogromne zyski dla osób inwestujących później stopniowo maleją. Chociaż wtedy jest już za późno na wzbogacenie się na Bitcoinie, ogólny trend kursu wymiany BTC:USD wydaje się wskazywać, że może on jeszcze rosnąć przez jakiś czas (nie mówię Ci, żebyś tutaj kupował, po prostu naiwnie ekstrapoluję z fabuły):

Te wykresy dziennika zawierają znacznie więcej danych, które inni przeanalizowali w kolejnych artykułach na blogu. Nie będąc ekspertem, nie mogę ich ocenić, ale z pewnością są bardzo interesujące:

Podsumowanie i wybrane dalsze lektury

Mam nadzieję, że będziesz się dobrze bawić używając tych i pochodnych skryptów do pobierania i zabawy z danymi kryptograficznymi. Cała ta dziedzina jest bardzo interesująca, a podczas moich badań na temat kryptowalut w ciągu ostatnich dwóch lat przeczytałem mnóstwo artykułów, historii i postów, z których wydestylowałem je, abyście mogli dalej kontynuować, głównie z Medium i powiązane publikacje:

Źródło: https://towardsdatascience.com/obtaining-historical-and-real-time-crypto-data-with-very-simple-web-programming-7b481f153630?source=rss——-8—————–kryptowaluta

Znak czasu:

Więcej z Średni