如何使用Bybit Python API或CCXT获取现货订单与价格数据
Bybit 官方SDK实现方案
首先升级到最新版官方SDK解决现货接口缺失问题:pip install bybit --upgrade
注意:如果调用
Spot模块提示属性不存在,卸载旧版本重装最新版即可解决。
现货相关接口统一在Spot模块下,而非永续合约使用的Market/Position等模块,调用示例如下:
- 现货BTCUSDT价格/订单簿查询
import bybit client = bybit.bybit( test=False, api_key="你的API_KEY", api_secret="你的API_SECRET" ) # 查询订单簿获取买卖盘价格,limit可自定义返回档位 orderbook = client.Spot.Spot_public_orderbook( symbol="BTCUSDT", limit=10 ).result() print(orderbook) # 也可以调用最新成交价格接口 latest_price = client.Spot.Spot_public_trading_records( symbol="BTCUSDT", limit=1 ).result() print(latest_price)
- 现货下单示例
# 市价单买0.001 BTC order = client.Spot.Spot_trade_order( symbol="BTCUSDT", side="Buy", type="Market", qty="0.001" ).result() print(order) # 限价单卖0.001 BTC,委托价27000 USDT order = client.Spot.Spot_trade_order( symbol="BTCUSDT", side="Sell", type="Limit", qty="0.001", price="27000", timeInForce="GTC" ).result() print(order)
CCXT库实现方案
如果不想适配官方SDK的版本差异,CCXT对Bybit现货的兼容更稳定,调用更统一,实现方案如下:
首先安装依赖:pip install ccxt --upgrade
代码示例:
import ccxt # 初始化Bybit实例 bybit_exchange = ccxt.bybit({ 'apiKey': '你的API_KEY', 'secret': '你的API_SECRET', 'enableRateLimit': True, # 开启自动限流避免接口被限制访问 }) # 1. 查询BTCUSDT现货最新价格 ticker = bybit_exchange.fetch_ticker('BTC/USDT') print(f"最新成交价: {ticker['last']}, 买一价: {ticker['bid']}, 卖一价: {ticker['ask']}") # 2. 现货下单示例 # 市价单买10 USDT等值的BTC market_order = bybit_exchange.create_order( symbol='BTC/USDT', type='market', side='buy', amount=10, # 市价单买入时amount传计价货币金额,也就是USDT的数量 params={'type': 'spot'} ) print(market_order) # 限价单卖0.001 BTC,委托价27000 USDT limit_order = bybit_exchange.create_order( symbol='BTC/USDT', type='limit', side='sell', amount=0.001, # 限价单传标的货币数量,也就是BTC的数量 price=27000, params={'type': 'spot'} ) print(limit_order)
提示:操作前请确认API已开通现货交易权限,调试阶段建议开启测试网模式验证逻辑,避免真实资金损失。
内容的提问来源于stack exchange,提问作者komandap
相关产品推荐
相关产品推荐

