# 获取历史 K 线

# request_history_kline

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)

  • 介绍

    获取历史 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 是否允许美股盘前盘后数据
    • 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 股票代码
      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('HK.00700', start='2019-09-11', end='2019-09-18', max_count=5)  # 每页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('HK.00700', start='2019-09-11', end='2019-09-18', max_count=5, page_req_key=page_req_key) # 请求翻页后的数据
    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             time_key   open  close   high    low  pe_ratio  turnover_rate    volume      turnover  change_rate  last_close
0   HK.00700  2019-09-11 00:00:00  341.0  346.0  347.8  339.4    36.405        0.00165  15794903  5.437023e+09     1.466276       340.2
..       ...                  ...    ...    ...    ...    ...       ...            ...       ...           ...          ...         ...
4   HK.00700  2019-09-17 00:00:00  343.2  343.6  345.4  340.6    36.153        0.00097   9225687  3.165508e+09    -0.865551       346.6

[5 rows x 12 columns]
HK.00700
[346.0, 349.4, 349.6, 346.6, 343.6]
*************************************
    code             time_key   open  close   high    low  pe_ratio  turnover_rate   volume      turnover  change_rate  last_close
0  HK.00700  2019-09-18 00:00:00  344.0  343.0  345.6  341.6     36.09        0.00077  7335407  2.516701e+09    -0.290698       343.6
All pages are finished!
1
2
3
4
5
6
7
8
9
10
11
12

接口限制

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