tradingview

JSON

JSON (ang. JavaScript Object Notation) to tekstowy format zapisu i wymiany danych oparty na parach klucz–wartość. Jest czytelny dla człowieka i łatwy do przetworzenia przez program w każdym popularnym języku. Choć wywodzi się ze składni JavaScriptu, nie zależy od żadnego języka programowania.

Jeśli korzystasz z API giełdy, bota tradingowego, TradingView z alertami przez webhook albo własnego węzła blockchaina, to prawie na pewno masz do czynienia z JSON-em. Większość publicznych API kryptogiełd i brokerów zwraca dane właśnie w tym formacie.

Budowa JSON-a

JSON ma tylko dwie struktury: obiekt w nawiasach klamrowych {}, czyli zbiór par „klucz”: wartość, oraz tablicę w nawiasach kwadratowych [], czyli uporządkowaną listę wartości. Struktury można zagnieżdżać.

Typ Zapis Przykład w danych giełdowych
Tekst (string) w cudzysłowie "symbol": "BTCUSDT"
Liczba bez cudzysłowu, kropka dziesiętna "leverage": 5
Wartość logiczna true / false "reduceOnly": true
Brak wartości null "stopPrice": null
Obiekt { } jedno zlecenie z polami
Tablica [ ] lista zleceń albo poziomy arkusza zleceń

Typowa odpowiedź API z najlepszymi ofertami kupna i sprzedaży wygląda tak: {"symbol": "BTCUSDT", "bidPrice": "64250.10", "askPrice": "64250.20"}. Zwróć uwagę, że ceny są podane jako tekst, a nie liczby. Giełdy robią tak celowo – o tym niżej.

Gdzie trader spotyka JSON

  • REST API giełd – saldo, otwarte pozycje, historia transakcji, parametry kontraktów (minimalna wielkość, krok ceny i ilości).
  • WebSocket – strumień notowań i zmian w arkuszu zleceń; każda wiadomość to obiekt JSON.
  • JSON-RPC węzłów – Bitcoin Core i węzły Ethereum przyjmują zapytania i zwracają odpowiedzi w JSON-ie, np. o bloki, transakcje czy stawki opłat.
  • Webhooki – alert z platformy wykresowej wysyła do bota treść w JSON-ie, np. kierunek, instrument i wielkość.
  • Konfiguracja botów – parametry strategii, klucze, limity ryzyka często trzyma się w pliku JSON.
  • Eksport historii – dane do rozliczenia podatku bywają dostępne jako JSON obok CSV.

Przykład: od odpowiedzi API do poprawnego zlecenia

Załóżmy, że chcesz kupić BTC za 1 000 USDT. API zwraca "askPrice": "64250.20", a w parametrach instrumentu "stepSize": "0.001", czyli ilość musi być wielokrotnością 0,001 BTC.

  1. Surowa ilość: 1 000 / 64 250,20 ≈ 0,015564 BTC.
  2. Zaokrąglenie w dół do kroku 0,001: 0,015 BTC. Zaokrąglenie w górę dałoby zlecenie większe niż budżet.
  3. Faktyczna wartość zlecenia: 0,015 × 64 250,20 ≈ 963,75 USDT.

Jeśli wyślesz 0,015564, giełda odrzuci zlecenie z błędem – również w JSON-ie, z kodem i opisem. Drugi haczyk to arytmetyka zmiennoprzecinkowa: w wielu językach 0,1 + 0,2 daje 0,30000000000000004. Dlatego giełdy podają ceny jako tekst, a rozsądny skrypt zamienia je na typ dziesiętny o stałej precyzji, a nie na zwykłą liczbę zmiennoprzecinkową.

Najczęstsze błędy

  • Traktowanie cen i ilości jako liczb zmiennoprzecinkowych i wysyłanie ich z „ogonem” cyfr.
  • Brak obsługi błędów – skrypt zakłada, że odpowiedź zawsze ma oczekiwane pole, i przestaje działać przy komunikacie o błędzie lub limicie zapytań.
  • Mylenie jednostek: ilość w monecie bazowej, w kontraktach albo w USDT – każda giełda opisuje to inaczej.
  • Znaczniki czasu w milisekundach czytane jak sekundy (lub odwrotnie).
  • Klucze API zapisane w pliku konfiguracyjnym JSON, który trafia do publicznego repozytorium.
  • Niepoprawna składnia: pojedyncze cudzysłowy, przecinek po ostatnim elemencie, komentarze – standard JSON ich nie dopuszcza.

Perspektywa tradera

Nie musisz programować, ale jeśli używasz bota albo alertów przez webhook, umiejętność przeczytania JSON-a oszczędza nerwów. Gdy bot złożył złe zlecenie, pierwsze pytanie brzmi: co dokładnie wysłał i co giełda odpowiedziała. Odpowiedź jest w logu, w JSON-ie. Przed uruchomieniem automatu sprawdź w danych instrumentu minimalną wartość zlecenia, krok ceny i ilości oraz sposób podawania wielkości pozycji. Wielkość pozycji licz od ryzyka, a nie od „ile się zmieści” – do tego przyda się kalkulator wielkości pozycji. W pliku konfiguracyjnym ustaw twardy limit wielkości zlecenia – literówka w webhooku nie powinna otworzyć pozycji dziesięć razy większej.

Najczęstsze pytania

Czym różni się JSON od CSV?

CSV to płaska tabela: wiersze i kolumny. JSON pozwala zagnieżdżać dane, np. zlecenie z listą częściowych realizacji. Do arkusza kalkulacyjnego wygodniejszy jest CSV, do komunikacji programów – JSON.

Czy JSON jest bezpieczny?

To tylko format zapisu, nie ma w nim szyfrowania. Bezpieczeństwo zapewnia połączenie HTTPS i podpisywanie zapytań kluczem API. Pliku JSON z kluczami nie udostępniaj nikomu.

Dlaczego giełdy podają ceny w cudzysłowie?

Żeby uniknąć błędów zaokrągleń przy konwersji na liczby zmiennoprzecinkowe. Tekst zachowuje dokładnie tyle cyfr, ile podała giełda.

Czym jest JSON-RPC?

To protokół wywoływania funkcji zdalnych, w którym zapytanie i odpowiedź są zapisane w JSON-ie. Używają go m.in. węzły Bitcoina i Ethereum.

Jak czytelnie podejrzeć długą odpowiedź JSON?

Użyj narzędzia do formatowania, np. wbudowanego podglądu w przeglądarce albo programu jq w wierszu poleceń. Wcięcia pokazują strukturę danych.

Tekst ma charakter edukacyjny i nie stanowi rekomendacji inwestycyjnej.

Zaktualizowano: