Интеграция AI-трейдинг-бота с CCXT унифицированный API криптобирж
CCXT (CryptoCurrency eXchange Trading Library) — унифицированный Python/JavaScript/PHP интерфейс для 100+ криптобирж. Один код — работает на Binance, Bybit, OKX, KuCoin и других.
Базовый паттерн использования
import ccxt
import pandas as pd
# Инициализация биржи
exchange = ccxt.binance({
'apiKey': 'your_api_key',
'secret': 'your_secret',
'options': {
'defaultType': 'future', # spot, future, margin
'adjustForTimeDifference': True,
}
})
# Получение OHLCV данных
ohlcv = exchange.fetch_ohlcv('BTC/USDT', '1h', limit=500)
df = pd.DataFrame(ohlcv, columns=['timestamp', 'open', 'high', 'low', 'close', 'volume'])
df['timestamp'] = pd.to_datetime(df['timestamp'], unit='ms')
# ML предсказание
signal = predict_signal(df)
# Стакан ордеров
orderbook = exchange.fetch_order_book('BTC/USDT', limit=20)
best_ask = orderbook['asks'][0][0]
best_bid = orderbook['bids'][0][0]
# Размещение ордера
if signal == 'buy':
order = exchange.create_order(
symbol='BTC/USDT',
type='limit',
side='buy',
amount=0.001,
price=best_ask,
params={'timeInForce': 'GTC', 'reduceOnly': False}
)
# Получение баланса
balance = exchange.fetch_balance()
usdt_balance = balance['USDT']['free']
# Позиции (для фьючерсов)
positions = exchange.fetch_positions(['BTC/USDT'])
btc_position = next((p for p in positions if p['symbol'] == 'BTC/USDT'), None)
Switching между биржами
Главное преимущество CCXT: одна строка для смены биржи.
# Автоматический выбор биржи с лучшей ценой
def get_best_exchange(symbol, side, amount):
exchanges = [ccxt.binance(), ccxt.bybit(), ccxt.okx()]
prices = {}
for ex in exchanges:
try:
ob = ex.fetch_order_book(symbol, limit=5)
if side == 'buy':
prices[ex.id] = ob['asks'][0][0]
else:
prices[ex.id] = ob['bids'][0][0]
except:
pass
if side == 'buy':
return min(prices, key=prices.get)
else:
return max(prices, key=prices.get)
Sandbox/Testnet режим
exchange = ccxt.binance({
'apiKey': 'testnet_key',
'secret': 'testnet_secret',
})
exchange.set_sandbox_mode(True) # Testnet для большинства бирж
Срок интеграции: 1–2 дня для базовой работы с одной биржей, неделя для multi-exchange системы с error handling.







