Интеграция AI-трейдинг-бота с Bybit API
Bybit — один из крупнейших деривативных криптобирж с фокусом на derivatives (USDT perpetuals, inverse contracts) и копитрейдингом. Хорошая документация и официальный Python SDK.
Python SDK интеграция
from pybit.unified_trading import HTTP, WebSocket
import pandas as pd
session = HTTP(
testnet=False, # True для тестирования
api_key="your_api_key",
api_secret="your_secret"
)
# Получение OHLCV
kline_data = session.get_kline(
category="linear", # USDT perpetual
symbol="BTCUSDT",
interval="60", # 60 минут
limit=200
)
df = pd.DataFrame(
kline_data['result']['list'],
columns=['start', 'open', 'high', 'low', 'close', 'volume', 'turnover']
).astype({'open': float, 'high': float, 'low': float, 'close': float, 'volume': float})
# Информация о позиции
position = session.get_positions(category="linear", symbol="BTCUSDT")
# Установка плеча
session.set_leverage(category="linear", symbol="BTCUSDT", buyLeverage="5", sellLeverage="5")
# Открытие позиции
order = session.place_order(
category="linear",
symbol="BTCUSDT",
side="Buy",
orderType="Limit",
qty="0.001",
price="65000",
timeInForce="GTC",
stopLoss="63000",
takeProfit="70000",
tpTriggerBy="LastPrice",
slTriggerBy="LastPrice"
)
print(f"Order ID: {order['result']['orderId']}")
WebSocket streaming
from pybit.unified_trading import WebSocket
import time
def handle_kline(message):
if message['data'][0]['confirm']: # Свеча закрыта
candle = message['data'][0]
signal = your_ml_model(float(candle['close']))
# execute_trade(signal)
ws = WebSocket(
testnet=False,
channel_type="linear"
)
ws.kline_stream(interval=1, symbol="BTCUSDT", callback=handle_kline)
while True:
time.sleep(1)
Bybit-специфичные функции
Unified Trading Account (UTA) позволяет использовать маржу между Spot и Derivatives. Одно обеспечение для всего портфеля.
Copy Trading API: Bybit предоставляет API для lead traders и followers. Можно построить собственный копитрейдинг-сервис.
Funding Rate Data: ключевой сигнал для perpetual стратегий.
funding = session.get_funding_rate_history(category="linear", symbol="BTCUSDT", limit=200)
Rate Limits: 120 запросов/секунду для REST. WebSocket: до 100 подписок на одно соединение.
Testnet доступен с отдельным регистрационным аккаунтом на testnet.bybit.com. Срок интеграции: 3–5 дней.







