Интеграция AI-трейдинг-бота с Binance API
Binance — крупнейшая криптобиржа по объёму. Официальная Python библиотека python-binance, REST + WebSocket API, низкие комиссии (0.1% spot, 0.02%/0.04% futures при BNB холде).
Spot и Futures API
from binance.client import Client
from binance.streams import BinanceSocketManager
import pandas as pd
client = Client(api_key='your_key', api_secret='your_secret')
# Исторические klines
klines = client.get_historical_klines(
"BTCUSDT", Client.KLINE_INTERVAL_1HOUR, "1 Jan 2024", "1 Feb 2024"
)
df = pd.DataFrame(klines, columns=[
'open_time', 'open', 'high', 'low', 'close', 'volume',
'close_time', 'quote_volume', 'trades', 'taker_buy_base', 'taker_buy_quote', '_'
])
df[['open','high','low','close','volume']] = df[['open','high','low','close','volume']].astype(float)
# Текущий баланс
account = client.get_account()
btc_balance = next(b for b in account['balances'] if b['asset'] == 'USDT')
# Spot лимитный ордер
order = client.order_limit_buy(
symbol='BTCUSDT',
quantity='0.001',
price='65000.00'
)
# Futures API
from binance.futures import Futures
f_client = Futures(key='your_key', secret='your_secret')
# Установка плеча
f_client.change_leverage(symbol='BTCUSDT', leverage=3)
# Futures ордер
f_order = f_client.new_order(
symbol='BTCUSDT',
side='BUY',
type='LIMIT',
quantity='0.001',
price='65000',
timeInForce='GTC'
)
WebSocket для real-time
import asyncio
from binance import AsyncClient, BinanceSocketManager
async def run_bot():
client = await AsyncClient.create('api_key', 'api_secret')
bsm = BinanceSocketManager(client)
# Kline stream
async with bsm.kline_socket('BTCUSDT', interval='1m') as stream:
while True:
res = await stream.recv()
candle = res['k']
if candle['x']: # Свеча закрыта
signal = predict_from_candle(candle)
if signal:
await execute_trade(client, signal)
asyncio.run(run_bot())
Testnet
# Binance Futures Testnet
client = Client(
api_key='testnet_api_key',
api_secret='testnet_secret',
testnet=True # Автоматически переключает endpoints
)
Rate Limits: 1200 запросов/минута (REST), 10 orders/second. Управление через response headers X-MBX-USED-WEIGHT-1M. Имплементация backoff при 429 ошибках.
Комиссии: 0.1% spot без BNB. С BNB: -25% = 0.075%. Futures: maker 0.02%, taker 0.04%. Учитывать в backtest.
Срок интеграции: 3–7 дней для production-ready integration с error handling и reconnection logic.







