Інтеграція бота з API Kraken
Kraken — одна з найстаріших та найбільш регульованих криптобірж. API добре задокументовано, стабільне, з підтримкою вдосконалених ордерів. Ключова особливість: нестандартні назви пар (XXBTZUSD замість BTC/USDT) та специфічна вимога nonce для REST запитів.
Особливості Kraken API
Аутентифікація: кожен приватний запит підписується HMAC-SHA512. Kraken вимагає nonce — монотонно зростаюче число (зазвичай timestamp у мілісекундах). Важливо: nonce має бути строго більше попереднього, інакше EAPI:Invalid nonce.
import ccxt
exchange = ccxt.kraken({
'apiKey': API_KEY,
'secret': API_SECRET,
})
# CCXT обробляє nonce та підпис автоматично
ticker = exchange.fetch_ticker('BTC/USD')
print(f"Last price: {ticker['last']}")
# Розміщення limit ордера
order = exchange.create_order(
symbol='BTC/USD',
type='limit',
side='buy',
amount=0.001,
price=60000,
params={'oflags': 'post'} # post-only флаг
)
WebSocket API v2
Kraken має WebSocket API v2 для даних у реальному часі:
import websockets
import json
async def subscribe_kraken():
async with websockets.connect('wss://ws.kraken.com/v2') as ws:
await ws.send(json.dumps({
"method": "subscribe",
"params": {
"channel": "ticker",
"symbol": ["BTC/USD", "ETH/USD"]
}
}))
async for message in ws:
data = json.loads(message)
if data.get('channel') == 'ticker':
process_ticker(data['data'])
Обмеження швидкості
Kraken використовує tier-based rate limiting. Базовий tier: 15 одиниць, відновлення 0.33/сек. Різні виклики коштують різні одиниці (розміщення ордера = 1, скасування = 0). При перевищенні — EAPI:Rate limit exceeded.
Пом'якшення: вбудований rate limiter CCXT, плюс окрема логіка для критичних операцій.
Інтеграція з API Kraken для торговельного бота: 1–2 тижні з урахуванням тестування на sandbox та обробки специфічних помилок біржі.







