Appearance
中国银河证券星耀数智AmazingData开发手册
1. 版本说明
1.1 文档管理信息表
| 主题 | 中国银河证券星耀数智AmazingData 开发手册 |
|---|---|
| 文档版本 | V1.0.24 |
| Python SDK 版本 | V1.0.24 |
| 创建时间 | 2025 年7 月10 日 |
| 最新发布日期 | 2025 年12 月16 日 |
2. 功能介绍
本文档是tgw 的SDK 开发指南,包含了对API 接口的说明以及示例,用于指引开发人员通过tgw 金融数据功能接口进行数据接收和查询的开发,如需参考或使用本项目,需要提前联系官方获取权限。
2.1 金融数据服务
金融数据功能,是指用户使用C++、Python 以及其他本功能可支持的程序设计语言或用户端页面,获取公司通过对证券交易所等渠道的公开信息加工而成的行情数据、金融资讯数据等金融数据的功能。
2.2 数据详情
1) 行情数据
| 品种 | 数据类型 | 数据起点 | 说明 | 是否支持实时订阅 |
|---|---|---|---|---|
| 股票 | Level-1 快照、K 线数据 | 2013 年至今 | 上交所、深交所、北交所 | 是 |
| 指数 | Level-1 快照、K 线数据 | 上交所、深交所、北交所 | - | 是 |
| 债券 | Level-1 快照、K 线数据 | 上交所、深交所 | - | 是 |
| 场内基金 | Level-1 快照、K 线数据 | 上交所、深交所 | - | 是 |
| 期权 | Level-1 快照、K 线数据 | 2015 年至今 | 深交所ETF 期权、上交所ETF 期权 | 是 |
| 港股通 | 港股通行情快照 | 2023 年至今 | 上交所、深交所 | 是 |
| 期货 | Level-1 快照、K 线数据 | 2010 年4 月至今 | 中金所 | 是 |
2) 基础数据
每日最新证券信息(交易日早上9 点前更新)、复权因子、每日最新代码表(交易日早上9 点前更新)、历史代码表、交易日历
3) 财务数据
资产负债表、现金流量表、利润表、业绩快报、业绩预告
4) 股东股本数据
十大股东数据、股东户数、股本结构、股权冻结/质押、限售股解禁
5) 股东权益数据
分红数据、配股数据
6) 融资融券数据
融资融券成交汇总、融资融券交易明细
7) 交易异动数据
龙虎榜、大宗交易
3. Python 开发指南
3.1 SDK 版本与下载
3.1.1 wheel 文件版本
| wheel 文件名 | 操作系统 | Python 版本 |
|---|---|---|
| tgw-1.*.*-py3-none-any.whl | Linux/ Windows | Python 3.8、3.9、3.10、3.11、3.12、3.13 |
| AmazingData-1.*.*-cp38-none-any.whl | Linux/ Windows | Python 3.8、3.9、3.10、3.11、3.12、3.13 |
3.1.2 wheel 文件下载路径
1. 银河网盘:https://cloud.chinastock.com.cn/p/DSG36jYQx2IY_Y8CIAA
2. 公众号“中国银河证券星耀数智”:路径为“业务介绍”——“安装包下载”
3.2 SDK 运行环境
3.2.1 Linux 推荐运行环境配置
| 类型 | 最低配置 | 推荐配置 |
|---|---|---|
| 处理器 | 2.10GHz,4 核 | 2.10GHz,8 核 |
| 内存 | DDR4 4GB | DDR4 4GB |
| 硬盘 | 200G 机械硬盘 /SSD | 480G 机械硬盘 /SSD |
| 网卡 | 普通网卡 | 普通万兆网卡 |
| 操作系统 | REDHAT 7.2/7.4/7.6 | REDHAT 7.2/7.4/7.6 |
3.2.2 Windows 推荐运行环境配置
| 类型 | 最低配置 | 推荐配置 |
|---|---|---|
| 处理器 | 2.60GHz , 4 核 | 2.60GHz , 8 核 |
| 内存 | DDR4 4GB | DDR4 4GB |
| 硬盘 | 200G 机械硬盘 /SSD | 480G 机械硬盘 /SSD |
| 网卡 | 普通网卡 | 普通万兆网卡 |
| 操作系统 | Windows 10(64 位 ) | Windows 10(64 位 ) |
3.3 SDK 安装
3.3.1 tgw 安装
python
pip install tgw-1.7.1-py3-none-any.whl3.3.2 AmazingData 安装
选择对应的python 版本
python
pip install AmazingData-1.0.0-cp312-none-any.whl3.4 Python 开发步骤
登录AmazingData 之后,实现数据获取。
3.4.1 登录AmazingData
(1)所有数据接口调用前,必须登录
(2)import AmazingData 库,填写账号、密码、ip/port 等信息,调用登录api。
python
import AmazingData as ad
ad.login(username='username', password='password',host='***.***.***.***',port=****)3.4.2 调用数据接口
3.4.2.1 查询接口调用
(1)登录api;
(2)实例化对应的数据查询类;
(3)调用查询数据接口,获取数据;
python
# 第一步 登录api
import AmazingData as ad
ad.login(username='username', password='password',host='***.***.***.***',port=****)
# 第二步 实例化对应的数据查询类
base_data_object = ad.BaseData()
# 第三步,调用查询数据接口,获取数据
code_list = base_data_object.get_code_list(security_type='EXTRA_ETF')3.4.2.2 订阅接口调用
(1)登录api;
(2)实例化对应的数据查询类;
(3)实例化数据订阅类;
(4)用装饰器装饰回调函数,接收订阅数据;
(5)订阅数据执行;
python
# 第一步 登录api
import AmazingData as ad
ad.login(username='username', password='password',host='***.***.***.***',port=****)
# 第二步 输入标的代码列表
base_data_object = ad.BaseData()
etf_code_list = base_data_object.get_code_list(security_type='EXTRA_ETF')
# 第三步 实例化数据订阅类
sub_data = ad.SubscribeData()
# 第四步 用装饰器装饰回调函数,接收订阅数据
@sub_data.register(code_list=etf_code_list, period=ad.constant.Period.snapshot.value)
def onSnapshot(data: Union[ad.constant.Snapshot, ad.constant.SnapshotIndex], period):
print(period, data)
# 第五步 订阅数据执行
sub_data.run()3.5 数据接口详细
3.5.1 基础接口
3.5.1.1 登录
调用任何数据接口之前,必须先调用登录接口。SDK 的账号、密码、ip 和端口号需联系您的开户营业部申请开通权限之后获取。
函数接口:login
功能描述:api 登陆
输入参数
| 参数 | 数据类型 | 必选 | 解释 |
|---|---|---|---|
| username | str | 是 | 账号 |
| password | str | 是 | 密码 |
| ip | str | 是 | 服务器 ip |
| host | int | 是 | 服务器端口号 |
python
# 第一步 登录api
import AmazingData as ad
ad.login(username='username', password='password',host='***.***.***.***',port=****)3.5.1.2 登出
函数接口:logout
功能描述:api 退出登录链接,必须在登录状态下才可使用;正常使用情况下无需使用此接口
| 名称 | 类型 | 说明 |
|---|---|---|
| username | str | 用户名 |
3.5.1.3 更新密码
函数接口:update_password
功能描述:更新密码接口,必须先登录才能修改密码
| 名称 | 类型 | 说明 |
|---|---|---|
| username | str | 用户名 |
| old_password | str | 旧密码 |
| new_password | str | 新密码 |
3.5.2 基础数据
3.5.2.1 每日最新证券信息
函数接口:get_code_info
功能描述:获取每日最新证券信息,交易日早上9 点前更新当日最新数据
输入参数
| 参数 | 数据类型 | 必选 | 解释 |
|---|---|---|---|
| security_type | str | 否 | 代码类型 security_type (见附录) |
输出参数
| 参数 | 数据类型 | 解释 |
|---|---|---|
| code_info | dataframe | index 为股票代码,包含symbol(证券简称)、high_limited(涨停价)、low_limited(跌停价)、price_tick(最小价格变动单位)等字段 |
python
# 第一步 登录api
import AmazingData as ad
ad.login(username='username', password='password',host='***.***.***.***',port=****)
base_data_object = ad.BaseData()
code_info = base_data_object.get_code_info(security_type='EXTRA_ETF')3.5.2.2 每日最新代码表(沪深北)
交易日早上9 点前更新
函数接口:get_code_list
功能描述:获取代码表(每日最新),此接口无法获取历史代码表
输入参数
| 参数 | 数据类型 | 必选 | 解释 |
|---|---|---|---|
| security_type | str | 否 | 代码类型 security_type (见附录),默认为 EXTRA_STOCK_A(上交所A股、深交所A股和北交所股票列表) |
输出参数
| 返回值 | 数据类型 | 解释 |
|---|---|---|
| code_list | list | 证券代码 |
python
# 第一步 登录api
import AmazingData as ad
ad.login(username='username', password='password',host='***.***.***.***',port=****)
base_data_object = ad.BaseData()
code_list = base_data_object.get_code_list(security_type='EXTRA_STOCK_A')3.5.2.3 每日最新代码表(期货交易所)
交易日早上9 点前更新
函数接口:get_future_code_list
功能描述:获取期货代码表(每日最新),无法获取历史代码表
输入参数
| 参数 | 数据类型 | 必选 | 解释 |
|---|---|---|---|
| security_type | str | 是 | 期货交易所代码类型(见附录),默认ZJ_FUTURE(中金所期货) |
输出参数
| 返回值 | 数据类型 | 解释 |
|---|---|---|
| code_list | list | 证券代码 |
python
# 第一步 登录api
import AmazingData as ad
ad.login(username='username', password='password',host='***.***.***.***',port=****)
base_data_object = ad.BaseData()
code_list = base_data_object.get_future_code_list(security_type='EXTRA_FUTURE')3.5.2.4 每日最新代码表(期权)
交易日早上9 点前更新
函数接口:get_option_code_list
功能描述:获取期权代码表(每日最新),无法获取历史代码表
输入参数
| 参数 | 数据类型 | 必选 | 解释 |
|---|---|---|---|
| security_type | str | 是 | 期权代码类型(见附录),默认EXTRA_ETF_OP(沪深交易所ETF期权) |
输出参数
| 返回值 | 数据类型 | 解释 |
|---|---|---|
| code_list | list | 证券代码 |
python
# 第一步 登录api
import AmazingData as ad
ad.login(username='username', password='password',host='***.***.***.***',port=****)
base_data_object = ad.BaseData()
code_list = base_data_object.get_option_code_list(security_type='EXTRA_ETF_OP')3.5.2.5 复权因子(后复权因子)
函数接口:BaseData.get_backward_factor
功能描述:获取后复权因子数据并本地存储,因子由交易所行情数据计算生成
输入参数
| 参数 | 数据类型 | 必选 | 解释 |
|---|---|---|---|
| code_list | lis[str] | 是 | 代码列表,支持股票、ETF |
| local_path | str | 是 | 本地存储文件夹绝对路径 |
| is_local | Bool | 是 | 是否读取本地数据,默认True |
参数说明:
1. local_path:格式示例'D://AmazingData_local_data//',仅填写文件夹绝对路径
2. is_local:True为优先读取本地数据(无本地数据则拉取服务端数据并缓存);False为强制拉取服务端最新数据并更新本地缓存
输出参数
| 参数 | 数据类型 | 解释 |
|---|---|---|
| backward_factor | dataframe | index为交易日期,列名为股票代码 |
python
# 第一步 登录api
import AmazingData as ad
ad.login(username='username', password='password',host='***.***.***.***',port=****)
base_data_object = ad.BaseData()
code_list = base_data_object.get_code_list(security_type='EXTRA_STOCK_A')
backward_factor = base_data_object.get_backward_factor(code_list, local_path='D://AmazingData_local_data//',
is_local=False)3.5.2.6 复权因子(单次复权因子)
函数接口:BaseData.get_adj_factor
功能描述:获取单次复权因子数据并本地存储
输入参数
| 参数 | 数据类型 | 必选 | 解释 |
|---|---|---|---|
| code_list | lis[str] | 是 | 代码列表,支持股票、ETF |
| local_path | str | 是 | 本地存储文件夹绝对路径 |
| is_local | Bool | 是 | 是否读取本地数据,默认True |
参数说明:同后复权因子参数规则
输出参数
| 参数 | 数据类型 | 解释 |
|---|---|---|
| adj_factor | dataframe | index为交易日期,列名为股票代码 |
python
# 第一步 登录api
import AmazingData as ad
ad.login(username='username', password='password',host='***.***.***.***',port=****)
base_data_object = ad.BaseData()
code_list = base_data_object.get_code_list(security_type='EXTRA_STOCK_A')
adj_factor = base_data_object.get_adj_factor(code_list, local_path='D://AmazingData_local_data//',
is_local=False)3.5.2.7 历史代码表
功能描述:获取历史任意日期的全市场标的代码清单,解决标的更名、退市、合并、代码变更导致的历史数据匹配问题,适配跨周期历史回测、复盘分析场景。
函数接口:get_history_code_list
输入参数
| 参数 | 数据类型 | 必选 | 解释 |
|---|---|---|---|
| trade_date | str | 是 | 指定查询的历史日期,格式YYYY-MM-DD |
| security_type | str | 否 | 标的类型筛选,不传默认全类型 |
输出参数:返回指定日期的证券代码、证券名称、市场、标的类型、当日交易状态等历史快照数据。
python
# 历史代码表查询示例
import AmazingData as ad
ad.login(username='username', password='password',host='***.***.***.***',port=****)
base_data = ad.BaseData()
# 查询2023年1月1日全市场股票代码
history_code = base_data.get_history_code_list(trade_date='2023-01-01', security_type='STOCK')
print("2023年A股标的数量:", len(history_code))3.5.2.8 交易日历
功能描述:获取A股、期货、期权全市场交易日历数据,支持查询指定时间段内的交易日、节假日、休市日期,包含是否交易日、是否周末、是否节假日等标记,是时序数据筛选、回测时间匹配的基础依赖。
函数接口:get_trade_calendar
输入参数
| 参数 | 数据类型 | 必选 | 解释 |
|---|---|---|---|
| start_date | str | 是 | 起始日期 YYYY-MM-DD |
| end_date | str | 是 | 结束日期 YYYY-MM-DD |
输出参数:返回交易日期、是否交易日(1是/0否)、日期类型、节假日名称、市场休市标记等字段。
python
# 交易日历查询示例
import AmazingData as ad
ad.login(username='username', password='password',host='***.***.***.***',port=****)
base_data = ad.BaseData()
# 查询2025年全年交易日历
calendar = base_data.get_trade_calendar(start_date='2025-01-01', end_date='2025-12-31')
# 筛选2025年所有交易日
trade_day = calendar[calendar['is_trade_day']==1]
print("2025年交易日总数:", len(trade_day))3.5.2.9 证券基础信息
功能描述:查询单只/批量标的详细静态基础信息,包含公司简介、所属行业、主营业务、注册地址、上市板块、发行规模等深度基础属性数据,支持全品类标的精准查询。
函数接口:get_security_basic_info
输入参数
| 参数 | 数据类型 | 必选 | 解释 |
|---|---|---|---|
| code_list | list[str] | 是 | 批量标的代码列表 |
输出参数:返回证券代码、证券名称、一级行业、二级行业、主营业务、上市日期、注册资本、发行价、企业性质等完整基础信息字段。
python
# 证券基础信息查询示例
import AmazingData as ad
ad.login(username='username', password='password',host='***.***.***.***',port=****)
base_data = ad.BaseData()
code_list = ['600001.SH', '000001.SZ']
basic_info = base_data.get_security_basic_info(code_list=code_list)
print(basic_info[['security_code','security_name','industry_name','main_business']])3.5.2.10 历史证券信息
功能描述:获取指定历史日期的标的完整基础信息快照,适配标的行业变更、名称变更、主营业务调整等历史属性变动场景,解决历史数据属性匹配偏差问题。
函数接口:get_history_security_info
输入参数
| 参数 | 数据类型 | 必选 | 解释 |
|---|---|---|---|
| code_list | list[str] | 是 | 标的代码列表 |
| trade_date | str | 是 | 指定历史查询日期 YYYY-MM-DD |
输出参数:返回指定历史日期下标的证券全量基础属性数据,包含当日行业分类、企业信息、交易状态等快照内容。
python
# 历史证券信息查询示例
import AmazingData as ad
ad.login(username='username', password='password',host='***.***.***.***',port=****)
base_data = ad.BaseData()
code_list = ['600001.SH']
# 查询2022年年末标的基础信息
history_info = base_data.get_history_security_info(code_list=code_list, trade_date='2022-12-30')
print(history_info)3.5.2.11 北交所新旧代码对照表
功能描述:获取北交所标的新旧代码映射关系,覆盖北交所成立后由原新三板挂牌企业平移、代码变更的全部标的,解决历史数据代码不统一、匹配失败问题。
函数接口:get_bj_code_mapping
输入参数:无入参,直接调用即可获取北交所标的全量新旧代码映射数据
输出参数
| 参数 | 数据类型 | 解释 |
|---|---|---|
| old_code | str | 北交所标的变更前旧代码 |
| new_code | str | 北交所标的变更后新代码 |
| security_name | str | 证券标的名称 |
| change_date | str | 代码正式变更日期,格式YYYY-MM-DD |
| change_reason | str | 代码变更原因(新三板平移、标的更名、代码调整等) |
python
# 北交所新旧代码对照表查询示例
import AmazingData as ad
ad.login(username='username', password='password',host='***.***.***.***',port=****)
base_data = ad.BaseData()
# 获取北交所全量新旧代码映射数据
bj_code_mapping = base_data.get_bj_code_mapping()
# 打印映射数据字段及数量
print("北交所代码变更标的总数:", len(bj_code_mapping))
print(bj_code_mapping[['old_code','new_code','security_name','change_date','change_reason']])(注:文档部分内容可能由 AI 生成)