You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Bybit API接口获取最近200根K线(蜡烛图)数据

解决Bybit获取最近200根K线的问题

1. 特殊语法说明

你看到的**{'from': 1581231260}是Python的关键字参数解包语法,之所以用这种写法是因为from是Python的保留关键字,不能直接作为参数名写from=xxx,所以用字典包装后解包传参,效果和直接传参完全一致。

2. 现有代码的隐藏错误

你当前的客户端初始化代码有逻辑问题:

# 错误写法:把变量名加了引号,实际传的是字符串"api_key_i"而非你设置的密钥值
client = bybit.bybit(test=True, api_key="api_key_i", api_secret="api_secret_i")
# 修正写法:去掉引号直接传变量
client = bybit.bybit(test=True, api_key=api_key_i, api_secret=api_secret_i)

3. 调整参数实现需求

要获取最新的200根5分钟K线,只需要计算200根K线对应的起始时间戳即可:

  • 每根K线间隔是5分钟,200根总时长为 200 * 5 * 60 = 60000秒
  • 用当前时间戳减去这个总时长,就是from参数需要的起始时间值

接口参数中文说明(翻译自官方文档):

  • symbol:交易对名称,示例用的是DOTUSDT
  • interval:K线周期,单位为分钟,可选值:1、3、5、15、30、60、120、240、360、720、1440
  • from:起始时间戳,单位为秒
  • limit:返回K线数量,最大值为200

4. 完整可运行代码

import bybit
import pprint
import time

api_key_i = "你的实际API Key"
api_secret_i = "你的实际API Secret"

client = bybit.bybit(test=True, api_key=api_key_i, api_secret=api_secret_i)
# 计算200根5分钟K线对应的起始时间戳
start_timestamp = int(time.time()) - 200 * 5 * 60
x = client.LinearKline.LinearKline_get(symbol="DOTUSDT", interval="5", limit=200, **{'from': start_timestamp}).result()
# 打印返回的K线数量,正常为200
print(len(x[0]['result']))
pprint.pprint(x[0]['result'])

内容的提问来源于stack exchange,提问作者Tatenda Taj Zhou

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 02:06:03