AmazingData
概述
AmazingData是中国银河证券提供的金融数据接口包,拥有丰富的数据内容,包括股票、债券、基金、期货、期权、港股通等行情数据,以及公司财务、股东股本等基本面数据。通过API方式提供金融数据服务,以帮助用户简洁、轻量的使用相关数据。
快速上手
- 安装python运行环境(推荐python3.8/3.9/3.10/3.11/3.12/3.13环境),并安装AmazingData依赖包。 从https://gitee.com/cgs2026/xysz/tree/master/xysz/xysz_tools下载tgw和AmazingData的安装包. 先clone整个项目,再用wheel文件安装tgw和AmazingData。
pip install tgw>=1.0.8.7
pip install AmazingData>=1.1.4
- 联系开户营业部申请账号、密码、服务器IP。
- 设置环境变量:
# Windows CMD
set AD_USERNAME=your_username
set AD_PASSWORD=your_password
set AD_HOST=server_ip
set AD_PORT=8600
# Windows PowerShell
$env:AD_USERNAME="your_username"
$env:AD_PASSWORD="your_password"
$env:AD_HOST="server_ip"
$env:AD_PORT="8600"
- 配置登录信息并初始化。
import os
import AmazingData as ad
ad.login(
username=os.environ['AD_USERNAME'],
password=os.environ['AD_PASSWORD'],
host=os.environ['AD_HOST'],
port=int(os.environ['AD_PORT'])
)
- 查询AmazingData接口文档,找到对应的接口。
- 根据接口文档,使用python代码获取数据。
参数格式说明
- 日期:8位整型格式,如 20241231
- 股票代码:交易所代码格式(如 000***.SZ, 600***.SH)
- 返回格式:pandas DataFrame 或 dict(key为代码,value为DataFrame)
数据接口调用模式
AmazingData有三个核心数据对象:
| 对象 | 实例化方式 | 用途 |
|------|------|------|
| BaseData | ad.BaseData() | 基础数据(代码表、交易日历、复权因子、ETF申赎清单等) |
| MarketData | ad.MarketData(calendar) | 历史行情数据(K线、快照),需传入交易日历 |
| InfoData | ad.InfoData() | 信息数据(财务、股东、融资融券、龙虎榜、可转债、ETF份额/IOPV、期权、指数等) |
数据缓存方案
支持两种数据获取方式(二选一,不可混用):
方案1:本地缓存(推荐,速度快)
- 参数:
local_path(绝对路径) +is_local(True/False) - is_local=True:优先从本地取数据;本地无数据时从服务端获取并缓存
- is_local=False:从服务端获取数据并更新本地缓存
- 文件格式:HDF5,建议本地存储空间500GB以上
方案2:指定日期范围(不缓存)
- 参数:
begin_date+end_date - 仅从服务器获取数据,不本地缓存
python脚本示例
核心功能模块
1. 基础数据(BaseData)
- 每日最新证券信息(get_code_info)
- 代码表查询:沪深北(get_code_list)、期货(get_future_code_list)、期权(get_option_code_list)
- 复权因子:后复权因子(get_backward_factor)、单次复权因子(get_adj_factor)
- 历史代码表(get_hist_code_list)
- 交易日历(get_calendar)
- ETF每日最新申赎数据(get_etf_pcf)
1.1 基础信息数据(InfoData)
- 证券基础信息(get_stock_basic)
- 历史证券信息(get_history_stock_status)
- 北交所新旧代码对照(get_bj_code_mapping)
2. 历史行情数据(MarketData)
- 历史快照数据(query_snapshot)
- 历史K线数据(query_kline),支持1m/3m/5m/10m/15m/30m/60m/120m/日/周/月/季/年
3. 财务数据(InfoData)
- 资产负债表(get_balance_sheet)
- 现金流量表(get_cash_flow)
- 利润表(get_income)
- 业绩快报(get_profit_express)
- 业绩预告(get_profit_notice)
4. 股东股本数据(InfoData)
- 十大股东数据(get_share_holder)
- 股东户数(get_holder_num)
- 股本结构(get_equity_structure)
- 股权冻结/质押(get_equity_pledge_freeze)
- 限售股解禁(get_equity_restricted)
5. 股东权益数据(InfoData)
- 分红数据(get_dividend)
- 配股数据(get_right_issue)
6. 融资融券数据(InfoData)
- 融资融券成交汇总(get_margin_summary)
- 融资融券交易明细(get_margin_detail)
7. 交易异动数据(InfoData)
- 龙虎榜(get_long_hu_bang)
- 大宗交易(get_block_trading)
8. 期权数据(InfoData)
- 期权基本资料(get_option_basic_info)
- 期权标准合约属性(get_option_std_ctr_specs)
- 期权月合约属性变动(get_option_mon_ctr_specs)
9. ETF数据(InfoData / BaseData)
- ETF每日最新申赎数据(BaseData.get_etf_pcf)
- ETF基金份额(get_fund_share)
- ETF每日收盘IOPV(get_fund_iopv)
10. 交易所指数数据(InfoData)
- 交易所指数成分股(get_index_constituent)
- 交易所指数成分股日权重(get_index_weight)
11. 行业指数数据(InfoData)
- 行业指数基本信息(get_industry_base_info)
- 行业指数成分股(get_industry_constituent)
- 行业指数成分股日权重(get_industry_weight)
- 行业指数日行情(get_industry_daily)
12. 可转债数据(InfoData)
- 可转债发行(get_kzz_issuance)
- 可转债份额(get_kzz_share)
- 可转债转股(get_kzz_conv)
- 可转债转股变动(get_kzz_conv_change)
- 可转债修正(get_kzz_corr)
- 可转债赎回(get_kzz_call)
- 可转债回售(get_kzz_put)
- 可转债回售赎回条款(get_kzz_put_call_item)
- 可转债回售条款执行说明(get_kzz_put_explanation)
- 可转债赎回条款执行说明(get_kzz_call_explanation)
- 可转债停复牌(get_kzz_suspend)
13. 债券数据(InfoData)
- 国债收益率(get_treasury_yield)
数据接口列表
| 分类 | 接口 | 函数名 | 说明 | |------|------|------|------| | 基础数据 | 每日最新代码表 | get_code_list | 获取最新证券代码列表 | | 基础数据 | 每日最新证券信息 | get_code_info | 获取证券基本信息 | | 基础数据 | 证券基础信息 | InfoData.get_stock_basic | 获取证券详细信息 | | 基础数据 | 交易日历 | get_calendar | 获取交易日历 | | 基础数据 | 复权因子 | get_backward_factor / get_adj_factor | 获取后复权/单次复权因子 | | 基础数据 | 历史代码表 | get_hist_code_list | 获取历史代码表 | | 基础数据 | 期货代码表 | get_future_code_list | 获取期货代码表 | | 基础数据 | 期权代码表 | get_option_code_list | 获取期权代码表 | | 基础数据 | 历史证券信息 | InfoData.get_history_stock_status | 获取历史证券信息 | | 基础数据 | 北交所代码对照 | InfoData.get_bj_code_mapping | 获取北交所新旧代码对照 | | 行情数据 | 历史K线 | query_kline | 获取历史K线数据 | | 行情数据 | 历史快照 | query_snapshot | 获取历史快照数据 | | 财务数据 | 资产负债表 | get_balance_sheet | 获取资产负债表 | | 财务数据 | 现金流量表 | get_cash_flow | 获取现金流量表 | | 财务数据 | 利润表 | get_income | 获取利润表 | | 财务数据 | 业绩快报 | get_profit_express | 获取业绩快报 | | 财务数据 | 业绩预告 | get_profit_notice | 获取业绩预告 | | 股东数据 | 十大股东 | get_share_holder | 获取十大股东数据 | | 股东数据 | 股东户数 | get_holder_num | 获取股东户数 | | 股东数据 | 股本结构 | get_equity_structure | 获取股本结构 | | 股东数据 | 分红数据 | get_dividend | 获取分红数据 | | 股东数据 | 配股数据 | get_right_issue | 获取配股数据 | | 股东数据 | 股权冻结质押 | get_equity_pledge_freeze | 获取股权冻结质押 | | 股东数据 | 限售股解禁 | get_equity_restricted | 获取限售股解禁 | | 融资融券 | 融资融券汇总 | get_margin_summary | 获取融资融券汇总 | | 融资融券 | 融资融券明细 | get_margin_detail | 获取融资融券明细 | | 交易数据 | 龙虎榜 | get_long_hu_bang | 获取龙虎榜数据 | | 交易数据 | 大宗交易 | get_block_trading | 获取大宗交易数据 | | 期权数据 | 期权基本资料 | get_option_basic_info | 获取期权基本资料 | | 期权数据 | 期权标准合约属性 | get_option_std_ctr_specs | 获取期权标准合约属性 | | 期权数据 | 期权月合约属性变动 | get_option_mon_ctr_specs | 获取期权月合约属性变动 | | ETF数据 | ETF申赎清单 | BaseData.get_etf_pcf | 获取ETF申赎清单 | | ETF数据 | ETF基金份额 | get_fund_share | 获取ETF基金份额 | | ETF数据 | ETF每日收盘IOPV | get_fund_iopv | 获取ETF每日收盘IOPV | | 交易所指数 | 交易所指数成分股 | get_index_constituent | 获取交易所指数成分股 | | 交易所指数 | 交易所指数成分股日权重 | get_index_weight | 获取交易所指数成分股日权重 | | 行业指数 | 行业指数基本信息 | get_industry_base_info | 获取行业指数基本信息 | | 行业指数 | 行业指数成分股 | get_industry_constituent | 获取行业指数成分股 | | 行业指数 | 行业指数成分股日权重 | get_industry_weight | 获取行业指数成分股日权重 | | 行业指数 | 行业指数日行情 | get_industry_daily | 获取行业指数日行情 | | 可转债数据 | 可转债发行 | get_kzz_issuance | 获取可转债发行数据 | | 可转债数据 | 可转债份额 | get_kzz_share | 获取可转债份额 | | 可转债数据 | 可转债转股 | get_kzz_conv | 获取可转债转股数据 | | 可转债数据 | 可转债转股变动 | get_kzz_conv_change | 获取转股变动数据 | | 可转债数据 | 可转债修正 | get_kzz_corr | 获取可转债修正 | | 可转债数据 | 可转债赎回 | get_kzz_call | 获取可转债赎回 | | 可转债数据 | 可转债回售 | get_kzz_put | 获取可转债回售 | | 可转债数据 | 可转债回售赎回条款 | get_kzz_put_call_item | 获取回售赎回条款 | | 可转债数据 | 可转债赎回条款执行说明 | get_kzz_call_explanation | 获取赎回条款执行说明 | | 可转债数据 | 可转债回售条款执行说明 | get_kzz_put_explanation | 获取回售条款执行说明 | | 可转债数据 | 可转债停复牌 | get_kzz_suspend | 获取可转债停复牌 | | 债券数据 | 国债收益率 | get_treasury_yield | 获取国债收益率 |
数据类型代码
详见 附录
security_type(沪深北)
EXTRA_STOCK_A: A股(上交所、深交所、北交所)EXTRA_STOCK_A_SH_SZ: 沪深A股SH_A/SZ_A/BJ_A: 单市场A股EXTRA_ETF: ETF基金EXTRA_KZZ: 可转债EXTRA_INDEX_A: 指数(沪深北)EXTRA_HKT: 港股通EXTRA_GLRA: 逆回购
security_type(期货)
ZJ_FUTURE: 中金所期货EXTRA_FUTURE: 所有期货
security_type(期权)
EXTRA_ETF_OP: ETF期权(上交所、深交所)
周期类型 Period
Period.min1.value~Period.min120.value: 分钟线Period.day.value: 日线Period.week.value: 周线Period.month.value: 月线Period.season.value: 季度线Period.year.value: 年线
使用示例
获取股票代码列表
import os
import AmazingData as ad
ad.login(
username=os.environ['AMAZINGDATA_USER'],
password=os.environ['AMAZINGDATA_PASSWORD'],
host=os.environ['AMAZINGDATA_HOST'],
port=int(os.environ['AMAZINGDATA_PORT'])
)
base_data = ad.BaseData()
code_list = base_data.get_code_list(security_type='EXTRA_STOCK_A')
获取历史K线数据
calendar = base_data.get_calendar()
market_data = ad.MarketData(calendar)
kline = market_data.query_kline(
code_list=['000001.SZ'],
begin_date=20240101,
end_date=20241231,
period=ad.constant.Period.day.value
)
获取财务数据
info_data = ad.InfoData()
calendar = base_data.get_calendar()
today = calendar[-1]
all_code_list = base_data.get_hist_code_list(
security_type='EXTRA_STOCK_A_SH_SZ',
start_date=20130101,
end_date=today
)
balance_sheet = info_data.get_balance_sheet(all_code_list)
获取ETF申赎数据
etf_code_list = base_data.get_code_list(security_type='EXTRA_ETF')
etf_pcf_info, etf_pcf_constituent = base_data.get_etf_pcf(etf_code_list)
获取可转债数据
kzz_code_list = base_data.get_code_list(security_type='EXTRA_KZZ')
kzz_issuance = info_data.get_kzz_issuance(kzz_code_list, is_local=False)
获取国债收益率
treasury_yield = info_data.get_treasury_yield(['m3', 'm6', 'y1', 'y2', 'y3', 'y5', 'y7', 'y10', 'y30'])
注意事项
- 所有数据接口调用前必须先通过环境变量配置认证信息,然后调用
ad.login()登录 - 必须设置以下4个环境变量:
AD_USER、AD_PASSWORD、AD_HOST、AD_PORT - 账号、密码、IP和端口需联系开户营业部申请
MarketData实例化时必须传入交易日历:ad.MarketData(base_data.get_calendar())- 支持本地数据缓存(local_path + is_local)和指定日期范围(begin_date + end_date)两种模式,二选一
- 股票数据最早可追溯至2013年,期货数据至2010年,期权数据至2015年
- ETF申赎清单(get_etf_pcf)属于BaseData对象,其余ETF数据属于InfoData
Python环境要求
- Python版本: 3.8-3.13
- 操作系统: Linux/Windows
- 依赖包: tgw>=1.0.8.5, AmazingData>=1.0.24
Scan to join WeChat group