Używanie API Binance do handlu pozwala na automatyzację kupna/sprzedaży kryptowalut, pobieranie danych w czasie rzeczywistym/historycznych, zarządzanie zamówieniami, sprawdzanie sald oraz budowanie botów handlowych lub strategii — wszystko programowo bez ręcznego korzystania ze strony/aplikacji Binance. Oto praktyczny przewodnik krok po kroku (skoncentrowany na handlu spot, najczęściej stosowanym punkcie wyjścia; futures/margin podążają podobnymi wzorcami, ale używają różnych punktów końcowych). 1. Utwórz konto Binance i wygeneruj klucze API

  • Zarejestruj się/zaloguj na binance.com.

  • Przejdź do profilu → Zarządzanie API (lub bezpośrednio: https://www.binance.com/en/my/settings/api-management).

  • Kliknij Utwórz API.

  • Nazwij to (np. "Bot handlowy").

  • Włącz uprawnienia:

    • Włącz odczyt (zawsze potrzebny)

    • Włącz handel spot i margin (do składania/anulowania zleceń)

    • Nie włączaj wypłat, chyba że to absolutnie konieczne (ryzyko bezpieczeństwa!)

  • Opcjonalnie ogranicz do zaufanych adresów IP.

  • Natychmiast skopiuj swój klucz API i klucz tajny - sekret wyświetla się tylko raz.

Wskazówka dotycząca bezpieczeństwa: Nigdy nie udostępniaj kluczy, nigdy nie dodawaj ich do GitHub, przechowuj je bezpiecznie (np. zmienne środowiskowe).2. Wybierz swoje podejście

  • Najłatwiejsze dla początkujących: Użyj oficjalnej biblioteki python-binance.

  • Zainstaluj ją:

    bash

    pip install python-binance

  • Alternatywy: CCXT (obsługuje ponad 100 giełd), oficjalne konektory w Node.js, Java itp.

3. Podstawowe połączenie i przykłady (Python)

python

from binance.client import Client
from binance.enums import *

# Użyj swoich prawdziwych kluczy (nigdy nie twardo koduj w produkcji!)
api_key = "your_api_key_here"
api_secret = "your_api_secret_here"

client = Client(api_key, api_secret)

# Testuj połączenie: Pobierz stan konta
balance = client.get_account()
print(balance) # Wyświetla wszystkie twoje salda

# Pobierz bieżącą cenę BTC/USDT
ticker = client.get_symbol_ticker(symbol="BTCUSDT")
print(ticker) # {'symbol': 'BTCUSDT', 'price': '62345.67'}

4. Składanie zleceń (Kluczowa część handlu)Zlecenie rynkowe (kup/sprzedaj natychmiast po bieżącej cenie)

python

# Kup 0.001 BTC za USDT (zakup rynkowy)
order = client.create_order(
symbol='BTCUSDT',
side=SIDE_BUY,
type=ORDER_TYPE_MARKET,
quoteOrderQty=50 # Wydaj 50 USDT (lub użyj quantity=0.001 dla kwoty BTC)
)

print(order)

Zlecenie limitowane (kup/sprzedaj po określonej cenie)

python

# Sprzedaj 0.001 BTC po 65,000 USD
order = client.create_order(
symbol='BTCUSDT',
side=SIDE_SELL,
type=ORDER_TYPE_LIMIT,
timeInForce=TIME_IN_FORCE_GTC, # Ważne do anulowania
quantity=0.001,
price=65000.00
)

Sprawdź / Anuluj zamówienia

python

# Pobierz otwarte zamówienia
open_orders = client.get_open_orders(symbol='BTCUSDT')

# Anuluj zamówienie
client.cancel_order(symbol='BTCUSDT', orderId=12345678)

5. Uzyskaj dane rynkowe (istotne dla strategii)

  • Historyczne świece (do TA, np. średnie kroczące):

python

klines = client.get_historical_klines("BTCUSDT", Client.KLINE_INTERVAL_1HOUR, "30 dni temu UTC")
# Zwraca listę [open_time, open, high, low, close, volume, ...]

  • Aktualizacje w czasie rzeczywistym za pomocą WebSockets (zalecane dla botów na żywo):

python

from binance.websockets import BinanceSocketManager

def process_message(msg):
print(msg) # np. aktualizacje bieżącej ceny

bm = BinanceSocketManager(client)
bm.start_symbol_ticker_socket('BTCUSDT', process_message)
bm.start() # Działa w nieskończoność, aż zostanie zatrzymane

6. Ważne najlepsze praktyki i ostrzeżenia

  • Zacznij na Testnecie → Użyj https://testnet.binance.vision/ (utwórz osobne klucze API testnet) aby uniknąć utraty prawdziwych pieniędzy.

  • Szanuj limity zapytań (Binance egzekwuje je surowo - np. 1200 zapytań/minutę).

  • Obsługuj błędy (np. niewystarczający stan konta, błędy API) za pomocą try/except.

  • Używaj handlu papierowego / testowania wstecznego przed przejściem do trybu na żywo.

  • Boty handlowe mogą szybko tracić pieniądze - nigdy nie ryzykuj więcej, niż możesz sobie pozwolić.

  • Dla kontraktów terminowych/opcji → Użyj metod client.futures_* lub osobnego klienta futures.

Oficjalne zasoby

Zacznij od małych kroków, przetestuj wszystko na testnecie i stopniowo buduj swoją strategię!#BinanceAPI #binanceDev #CryptoTrading #TradingBot