Sådan importeres BitMEX-leaderboarddata automatisk til Excel

For et par dage siden, da jeg gennemser nogle mapper på mit skrivebord, stødte jeg på et par skærmbilleder af BitMEX-resultattavlen. Disse skærmbilleder dateres tilbage til omkring et år siden, og det var interessant at se udviklingen.

Ideen om at tage disse skærmbilleder kom faktisk fra en tråd af Glimmerycoin på Twitter. (Def værd at følge)

Jeg er en stærk troende på de oplysninger og den indsigt, du kan få fra data, men alligevel af en eller anden grund kom jeg aldrig rundt om automatisk at importere leaderboarddata. Jeg formoder, at vi alle er travlt i livet, og det er undertiden et spørgsmål om at prioritere.

Jeg regnede med, at andre måske også var interesseret i en måde at hente disse data på, og derfor har jeg også skrevet en hurtig måde at importere dataene til Excel via VBA på.

  1. Kontroller, at du har Excel, og at du har menuen Udvikler på båndet.
  2. Download denne GitHub-kode, og ekstraher .zip-filen til en mappe på din computer.
  3. Opret en ny Excel-fil (.xlsm) og gem den.
  4. Gå til fanebladet Udvikler på dit bånd, og klik på Visual Basic

5. Højreklik på skærmbilledet Visual Basic på VBAP-projektionsruden og vælg “Importer fil”

6. Gennemse til den mappe, du har udpakket tidligere, søg efter “JsonConverter.bas” og tilføj den. Du skal nu se et nyt modul vises kaldet “JsonConverter.

7. Gå til Værktøjer> Referencer, og søg efter "Microsoft Scripting Runtime", og sørg for, at feltet er markeret.

8. Højreklik på “Moduler”, og indsæt et nyt modul.

9. Indsæt nedenstående kode i det nye modul:

'BitMEX Leaderboard-import
'Bemærk:' Baseret på kode skrevet af BitMEX-bruger 'cengel' 'Ændret af Cryptoc_XBT' Kræver JSONConverter.bas
Sub getLeaderboardNotional () Dim url, postdata, repltext, nonceStr Som streng, i som heltal
url = “/ api / v1 / leaderboard” postdata = “method = notional” replytext = GetDataFromURL (“https://www.bitmex.com” & url & “?” & postdata, “GET”) 'httpObject.ResponseText Set JSON = ParseJson (svartekst)
i = 2
For hvert element i JSON-ark (1) .Celler (i, 1). Værdi = Element (“navn”) ark (1). Celler (i, 2) .Value = Element (“isRealName”) Ark (1). Celler (i, 3). Værdi = Element ("overskud") / 100000000 i = i + 1 Næste
MsgBox (“komplet”) slutund
Sub getLeaderboardROE () Dim url, postdata, repltext, nonceStr Som streng, i som heltal
url = “/ api / v1 / leaderboard” postdata = “metode = ROE” replik = GetDataFromURL (“https://www.bitmex.com” & url & “?” & postdata, “GET”) 'httpObject.ResponseText Set JSON = ParseJson (svartekst)
i = 2
For hvert element i JSON-ark (2) .Celler (i, 1). Værdi = Element (“navn”) ark (2). Celler (i, 2) .Value = Element (“isRealName”) Ark (2). Celler (i, 3) .Værdi = Element ("overskud") * 100 i = i + 1
Næste
MsgBox (“komplet”) slutund
Funktion GetDataFromURL (strURL som streng, strMethod som streng, valgfri strPostData som streng) som streng
Indstil objHTTP = CreateObject (“WinHttp.WinHttpRequest.5.1”) 'Ved fejl Genoptag Næste objHTTP.Open “GET”, strURL objHTTP.Send Hvis Err.Number = 0 Så hvis objHTTP.Status = “200” Derefter objHTTP.WaitForRespL = Get objHTTP.responseText Else GetDataFromURL = Erstat (Erstat (ErrResp, "ERR_NR", objHTTP.Status), "ERR_TXT", "HTTP-" & objHTTP.StatusText) Afslut Hvis andet 'Ukendt fejl, sandsynligvis ingen internetforbindelse, svar i JSOND = Erstat (Erstat (ErrResp, "ERR_NR", Err.Number), "ERR_TXT", "VBA-" & Err.Source & "" & Err.Description) Ende Hvis
Indstil objHTTP = Intet
Slut Funktion

10. Næsten der. Gem og luk VB-editorvinduet, og vend tilbage til din Excel-projektmappe. Sørg for, at du har 2 ark i din projektmappe. Det første ark bruges til lagring af Notional data, det andet til ROE-data.

11. Nu tilføjer vi en knap på hver fane for at køre makrokoden. Indsæt en form (hvilken som helst form), og sørg for at placere den i kolonne D eller nyere, højreklik på den og vælg “Tildel makro”. På den første fane skal du vælge getLeaderboardNotional-makroen og trykke på “ok”. Gør det samme på den anden fane med “getLeaderboardROE”.

12. Når du klikker på din makroknap, vil du se dataene vises.

Overskrifter importeres ikke, men du kan hurtigt navngive dem selv ... Data importeres altid fra 2. række ned. Slutresultatet kan se sådan ud:

Hvis du forstår VBA-kode, vil du se koden er ganske enkel. Du kan også ændre koden, så den passer til dine egne behov (automatisk oprette en ny fane osv.), Men det er noget, jeg overlader dig at finde ud af.

Hav en god dag!

PS: Tilmeldinger på BitMEX via mit ref-link værdsættes altid.