# 获取历史 K 线

request_history_kline(code, start=None, end=None, ktype=KLType.K_DAY, autype=AuType.QFQ, fields=[KL_FIELD.ALL], max_count=1000, page_req_key=None, extended_time=False, session=Session.NONE)

  • 介绍

    获取历史 K 线

  • 参数

    参数 类型 说明
    code str 股票代码
    start str 开始时间
    end str 结束时间
    ktype KLType K 线类型
    autype AuType 复权类型
    fields KLFields 需返回的字段列表
    max_count int 本次请求最大返回的 K 线根数
    page_req_key bytes 分页请求
    extended_time bool 是否允许美股盘前盘后数据
    session Session 获取美股分时段历史K线
    • start 和 end 的组合如下
      Start 类型 End 类型 说明
      str str start 和 end 分别为指定的日期
      None str start 为 end 往前 365 天
      str None end 为 start 往后 365 天
      None None end 为当前日期,start 往前 365 天
  • 返回

    参数 类型 说明
    ret RET_CODE 接口调用结果
    data pd.DataFrame 当 ret == RET_OK,返回历史 K 线数据
    str 当 ret != RET_OK,返回错误描述
    page_req_key bytes 下一页请求的 key
    • 历史 K 线数据格式如下:
      字段 类型 说明
      code str 股票代码
      name str 股票名称
      time_key str K 线时间
      open float 开盘价
      close float 收盘价
      high float 最高价
      low float 最低价
      pe_ratio float 市盈率
      turnover_rate float 换手率
      volume int 成交量
      turnover float 成交额
      change_rate float 涨跌幅
      last_close float 昨收价
  • Example

from futu import *
quote_ctx = OpenQuoteContext(host='127.0.0.1', port=11111)
ret, data, page_req_key = quote_ctx.request_history_kline('US.AAPL', start='2019-09-11', end='2019-09-18', max_count=5, session=Session.ALL)  # 每页5个,请求第一页
if ret == RET_OK:
    print(data)
    print(data['code'][0])    # 取第一条的股票代码
    print(data['close'].values.tolist())   # 第一页收盘价转为 list
else:
    print('error:', data)
while page_req_key != None:  # 请求后面的所有结果
    print('*************************************')
    ret, data, page_req_key = quote_ctx.request_history_kline('US.AAPL', start='2019-09-11', end='2019-09-18', max_count=5, page_req_key=page_req_key, session=Session.ALL) # 请求翻页后的数据
    if ret == RET_OK:
        print(data)
    else:
        print('error:', data)
print('All pages are finished!')
quote_ctx.close() # 结束后记得关闭当条连接,防止连接条数用尽
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  • Output
code  name             time_key       open      close       high        low  pe_ratio  turnover_rate    volume      turnover  change_rate  last_close
0  US.AAPL   苹果  2019-09-11 00:00:00  52.631194  53.963447  53.992409  52.549135    18.773        0.01039  177158584  9.808562e+09     3.179511   52.300545
..       ...   ...                  ...        ...        ...        ...        ...       ...            ...       ...           ...          ...         ...
4  US.AAPL   苹果  2019-09-17 00:00:00  53.087346  53.265945  53.294907  52.884612    18.530        0.00432   73545872  4.046314e+09     0.363802   53.072865

[5 rows x 13 columns]
US.AAPL
[53.9634465, 53.84156475, 52.7953125, 53.072865, 53.265945]
*************************************
       code  name             time_key       open      close       high        low  pe_ratio  turnover_rate   volume      turnover  change_rate  last_close
0  US.AAPL   苹果  2019-09-18 00:00:00  53.352831  53.76554  53.784847  52.961844    18.704        0.00602  102572372  5.682068e+09     0.937925   53.265945
All pages are finished!
1
2
3
4
5
6
7
8
9
10
11
12

接口限制

  • 分 K 提供最近 8 年数据,日 K 及以上提供最近 10 年的数据。
  • 我们会根据您账户的资产和交易的情况,下发历史 K 线额度。因此,30 天内您只能获取有限只股票的历史 K 线数据。具体规则参见 订阅额度 & 历史 K 线额度。您当日消耗的历史 K 线额度,会在 30 天后自动释放。
  • 每 30 秒内最多请求 60 次历史 K 线接口。注意:如果您是分页获取数据,此限频规则仅适用于每只股票的首页,后续页请求不受限频规则的限制。
  • 换手率,仅提供日 K 及以上级别。
  • 期权,仅提供日K, 1分K,5分K,15分K,60分K。
  • 美股 盘前、盘后、夜盘 K 线,仅支持 60 分钟及以下级别。由于美股盘前盘后和夜盘时段为非常规交易时段,此时段的 K 线数据可能不足 2 年。
  • 美股的 成交额,仅提供 2015-10-12 之后的数据。