跳到主要內容

获取标的历史 K 线

该接口用于获取标的的历史 K 线数据。

信息

Request

Parameters

NameTypeRequiredDescription
symbolstring标的代码,使用 ticker.region 格式,例如:700.HK
periodint32k 线周期,例如:1000,详见 Period
adjust_typeint32复权类型,例如:0,详见 AdjustType
query_typeint32查询方式

可选值:
1 - 按偏移查询
2 - 按日期区间查询
date_requestobject按日期查询时必填
∟ start_datestring开始日期,格式为 YYYYMMDD,例如:20231016

参数说明:
1. start_date 和 end_date 均不填:返回最新的 1000 根 K 线;
2. 仅填 start_date:返回 start_date 与最新交易日区间内的 K 线。若此区间内 K 线超过 1000 根,则优先返回靠近 start_date 的 1000 根 K 线;
3. 仅填 end_date:返回 end_date 及以前的 1000 根 K 线;
4. start_date 和 end_date 均填:返回此区间内的 K 线数据。若此区间内 K 线超过 1000 根,则优先返回靠近 end_date 的 1000 根 K 线
∟ end_datestring结束日期,格式为 YYYYMMDD,例如:20231016
offset_requestobject按偏移查询时必填
∟ directionint32查询方向

可选值:
0 - 向历史数据方向查找
1 - 向最新数据方向查找
∟ datestring查询日期,格式为 YYYYMMDD,例如:20231016,为空时使用标的所在市场的最新交易日
∟ minutestring查询时间,格式为 HHMM,例如:09:35,仅在查询分钟级别 K 线时有效
∟ countint32查询数量,填写范围 [1,1000],为空时默认查询 10

Protobuf

message SecurityHistoryCandlestickRequest {

message OffsetQuery {
Direction direction = 1;
string date = 2;
string minute = 3;
int32 count = 4;
}

message DateQuery {
string start_date = 1;
string end_date = 2;
}

string symbol = 1;
Period period = 2;
AdjustType adjust_type = 3;
HistoryCandlestickQueryType query_type = 4;
OffsetQuery offset_request = 5;
DateQuery date_request = 6;
}

Request Example

# 获取标的历史 K 线
# https://open.longportapp.com/docs/quote/pull/history-candlestick
#
# 运行前请访问“开发者中心”确保账户有正确的行情权限。
# 如没有开通行情权限,可以通过“LongPort”手机客户端,并进入“我的 - 我的行情 - 行情商城”购买开通行情权限。
from datetime import date
from longport.openapi import QuoteContext, Config, Period, AdjustType

config = Config.from_env()
ctx = QuoteContext(config)

resp = ctx.history_candlesticks_by_offset("700.HK", Period.Day, AdjustType.NoAdjust, false, date(2023, 1, 1), 10)
print(resp)

Response

Response Properties

NameTypeDescription
symbolstring标的代码,例如:AAPL.US
candlesticksobject[]K 线数据
∟ closestring当前周期收盘价
∟ openstring当前周期开盘价
∟ lowstring当前周期最低价
∟ highstring当前周期最高价
∟ volumeint64当前周期成交量
∟ turnoverstring当前周期成交额
∟ timestampint64当前周期的时间戳

Protobuf

message SecurityCandlestickResponse {
string symbol = 1;
repeated Candlestick candlesticks = 2;
}

message Candlestick {
string close = 1;
string open = 2;
string low = 3;
string high = 4;
int64 volume = 5;
string turnover = 6;
int64 timestamp = 7;
}

Response JSON Example

{
"symbol": "700.HK",
"candlesticks": [
{
"close": "362.000",
"open": "364.600",
"low": "361.600",
"high": "368.800",
"volume": 10853604,
"turnover": "3954556819.000",
"timestamp": 1650384000
},
{
"close": "348.000",
"open": "352.000",
"low": "343.000",
"high": "356.200",
"volume": 25738562,
"turnover": "8981529950.000",
"timestamp": 1650470400
},
{
"close": "340.600",
"open": "334.800",
"low": "334.200",
"high": "343.000",
"volume": 28031299,
"turnover": "9492674293.000",
"timestamp": 1650556800
},
{
"close": "327.400",
"open": "332.200",
"low": "325.200",
"high": "338.600",
"volume": 25788422,
"turnover": "8541441823.000",
"timestamp": 1650816000
},
{
"close": "335.800",
"open": "332.200",
"low": "330.600",
"high": "341.600",
"volume": 27288328,
"turnover": "9166022626.000",
"timestamp": 1650902400
}
]
}

权限说明

依据用户的资产和交易情况,不同类型的用户每月可查询历史数据的标的数量如下表:

  • 额度按照自然月计算,每月初额度加满,上月剩余额度不累计到本月。一个自然月内重复请求同一只标的的历史 K 线,仅统计一次。
  • 新入金的账户,额度会在下个交易日自动生效;当账户的总资产或交易笔数增加、且达到更高等级时,额度会在下一个交易日生效。
  • 总资产:用户的港股、美股、A 股等证券账户的总资产,按照汇率换算成港元。取用户上个自然月最后一个交易日的总资产与最近一个完整交易日的总资产的较大值。
  • 月交易笔数:用户有成交的订单数量,一个订单部分成交、或多次全部成交、或一次全部成交均算 1 笔。取用户上个自然月的成交笔数与当前自然月的成交笔数的较大值。
用户类型每月可查询的标的数量上限(只)
用户开户
100
总资产达 1 万 HKD
400
总资产达 8 万 HKD
600
总资产达 40 万 HKD 或 月交易笔数大于 160 笔
1000
总资产达 400 万 HKD 或 月交易笔数大于 1600 笔
2000
总资产达 600 万 HKD 或 月交易笔数大于 2500 笔
3000

历史 K 线区间说明

市场日/周/月/年 K 线分钟 K 线说明
港股2004-6-1 至今2022-09-28 至今
美股2010-6-1 至今2023-12-4 至今
美股期权--美股期权历史数据目前暂不支持,待后续开放更长时段的数据
A 股1999-11-1 至今2022-08-25 至今

频次限制

警告
  • 每 30 秒内最多请求 60 次历史 K 线接口。

错误码

协议错误码业务错误码描述排查建议
3301600无效的请求请求参数有误或解包失败
3301606限流降低请求频次
7301602服务端内部错误请重试或联系技术人员处理
7301600请求数据非法检查请求的 symbolcountadjust_type, period 数据是否在正确范围
7301603标的无行情标的没有请求的行情数据
7301604无权限没有获取标的行情的权限
7301607接口限制超过当月能够查询的标的数量上限