with one click
tdx-stock-query
// 基于TDX API的股票数据查询技能,提供全面的A股市场数据查询功能,包括实时行情、K线数据、分时数据、分时成交、股票搜索、指数数据、ETF数据、市场统计、个股新闻、股票公告等31个API接口。当用户询问股票相关信息时调用。
// 基于TDX API的股票数据查询技能,提供全面的A股市场数据查询功能,包括实时行情、K线数据、分时数据、分时成交、股票搜索、指数数据、ETF数据、市场统计、个股新闻、股票公告等31个API接口。当用户询问股票相关信息时调用。
[HINT] Download the complete skill directory including SKILL.md and all related files
| name | tdx-stock-query |
| description | 基于TDX API的股票数据查询技能,提供全面的A股市场数据查询功能,包括实时行情、K线数据、分时数据、分时成交、股票搜索、指数数据、ETF数据、市场统计、个股新闻、股票公告等31个API接口。当用户询问股票相关信息时调用。 |
本技能基于TDX股票数据API,提供以下全面功能:
重要:使用本技能前,必须先配置API地址!
本技能需要用户自行提供TDX API的服务地址,通过环境变量 TDX_API_URL 进行配置。
环境变量名称: TDX_API_URL
配置方法:
环境变量方式:
export TDX_API_URL=http://your-api-domain.com
.env文件方式:
TDX_API_URL=http://your-api-domain.com
如果需要使用个股新闻查询功能,还需要配置akshare API地址。
环境变量名称: AKSHARE_API_URL
配置方法:
环境变量方式:
export AKSHARE_API_URL=http://your-akshare-api.com
.env文件方式:
AKSHARE_API_URL=http://your-akshare-api.com
注意:AKSHARE_API_URL 是可选的,仅当需要使用个股新闻查询功能时才需要配置。
使用方式:
from main import TDXStockQuery
# 初始化时会自动读取TDX_API_URL环境变量
stock_query = TDXStockQuery()
# 查询股票信息
result = stock_query.get_quote(['000001'])
未配置环境变量的错误提示:
如果未配置 TDX_API_URL 环境变量,初始化时会抛出错误:
ValueError: 环境变量 TDX_API_URL 未设置,请先配置API地址
接口: get_quote(codes)
参数: codes - 股票代码列表,如 ['000001', '600519']
示例:
result = stock_query.get_quote(['000001', '600519'])
返回数据包含:
接口: get_kline(code, ktype='day')
参数:
code - 股票代码,如 '000001'ktype - K线类型,默认dayK线类型: minute1, minute5, minute15, minute30, hour, day, week, month, quarter, year
示例:
result = stock_query.get_kline('000001', 'day')
result = stock_query.get_kline('600519', 'minute30')
返回数据包含:
接口: get_minute(code, date=None)
参数:
code - 股票代码,如 '000001'date - 日期(YYYYMMDD格式),默认当天示例:
result = stock_query.get_minute('000001')
result = stock_query.get_minute('000001', '20241103')
返回数据包含:
接口: get_trade(code, date=None)
参数:
code - 股票代码,如 '000001'date - 日期(YYYYMMDD格式),默认当天示例:
result = stock_query.get_trade('000001')
result = stock_query.get_trade('000001', '20241103')
返回数据包含:
接口: search_stock(keyword)
参数: keyword - 搜索关键词(代码或名称)
示例:
result = stock_query.search_stock('平安')
result = stock_query.search_stock('000001')
返回数据包含:
接口: get_stock_info(code)
参数: code - 股票代码,如 '000001'
示例:
result = stock_query.get_stock_info('000001')
返回数据包含:
接口: get_codes(exchange='all')
参数: exchange - 交易所代码,默认all
交易所代码: sh, sz, bj, all
示例:
result = stock_query.get_codes()
result = stock_query.get_codes('sh')
返回数据包含:
接口: batch_quote(codes)
参数: codes - 股票代码列表,最多50只
示例:
result = stock_query.batch_quote(['000001', '600519', '601318'])
接口: get_kline_history(code, ktype='day', start_date=None, end_date=None, limit=100)
参数:
code - 股票代码ktype - K线类型start_date - 开始日期(YYYYMMDD)end_date - 结束日期(YYYYMMDD)limit - 返回条数,默认100,最大800示例:
result = stock_query.get_kline_history('000001', 'day', limit=30)
result = stock_query.get_kline_history('000001', 'day', start_date='20241001', end_date='20241101')
接口: get_index(code, ktype='day')
参数:
code - 指数代码,如 'sh000001'ktype - K线类型,默认day常用指数代码:
示例:
result = stock_query.get_index('sh000001', 'day')
接口: get_server_status()
示例:
result = stock_query.get_server_status()
返回数据包含:
接口: health_check()
示例:
result = stock_query.health_check()
接口: create_pull_kline_task(codes=None, tables=None, dir=None, limit=1, start_date=None)
参数:
codes - 股票代码数组,默认全部A股tables - K线类型列表,默认['day']dir - 存储目录,默认'data/database/kline'limit - 并发协程数量,默认1start_date - 起始日期阈值K线类型: minute, 5minute, 15minute, 30minute, hour, day, week, month, quarter, year
示例:
result = stock_query.create_pull_kline_task(
codes=['000001', '600519'],
tables=['day', 'week', 'month'],
limit=4,
start_date='2020-01-01'
)
返回数据包含:
接口: create_pull_trade_task(code, dir=None, start_year=2000, end_year=None)
参数:
code - 股票代码dir - 输出目录,默认'data/database/trade'start_year - 起始年份,默认2000end_year - 结束年份,默认当年示例:
result = stock_query.create_pull_trade_task(
code='000001',
start_year=2015,
end_year=2023
)
接口: get_tasks()
示例:
result = stock_query.get_tasks()
接口: get_task_detail(task_id)
参数: task_id - 任务ID
示例:
result = stock_query.get_task_detail('9b0d1b1b-7c3d-4ce6-9a0e-bd9f5e0dcf3b')
接口: cancel_task(task_id)
参数: task_id - 任务ID
示例:
result = stock_query.cancel_task('9b0d1b1b-7c3d-4ce6-9a0e-bd9f5e0dcf3b')
接口: get_etf(exchange='all', limit=None)
参数:
exchange - 交易所,默认alllimit - 返回条数限制示例:
result = stock_query.get_etf()
result = stock_query.get_etf('sh', limit=10)
返回数据包含:
接口: get_trade_history(code, date, start=0, count=2000)
参数:
code - 股票代码date - 交易日期(YYYYMMDD)start - 起始游标,默认0count - 返回条数,默认2000,最大2000示例:
result = stock_query.get_trade_history('000001', '20241108')
result = stock_query.get_trade_history('000001', '20241108', start=0, count=1000)
接口: get_minute_trade_all(code, date=None)
参数:
code - 股票代码date - 交易日期(YYYYMMDD),默认当天示例:
result = stock_query.get_minute_trade_all('000001')
result = stock_query.get_minute_trade_all('000001', '20241108')
接口: get_workday(date=None, count=1)
参数:
date - 查询日期(YYYYMMDD),默认当天count - 返回的前后交易日数量,范围1-30,默认1示例:
result = stock_query.get_workday()
result = stock_query.get_workday('20241108', count=3)
返回数据包含:
接口: get_market_count()
示例:
result = stock_query.get_market_count()
返回数据包含:
接口: get_stock_codes(limit=None, prefix=True)
参数:
limit - 返回条数限制prefix - 是否包含交易所前缀,默认true示例:
result = stock_query.get_stock_codes()
result = stock_query.get_stock_codes(limit=100, prefix=False)
返回数据包含:
接口: get_etf_codes(limit=None, prefix=True)
参数:
limit - 返回条数限制prefix - 是否包含交易所前缀,默认true示例:
result = stock_query.get_etf_codes()
result = stock_query.get_etf_codes(limit=50, prefix=False)
返回数据包含:
接口: get_kline_all(code, ktype='day', limit=None)
参数:
code - 股票代码ktype - K线类型,默认daylimit - 返回条数限制示例:
result = stock_query.get_kline_all('000001')
result = stock_query.get_kline_all('000001', 'day', limit=100)
接口: get_index_all(code, ktype='day', limit=None)
参数:
code - 指数代码ktype - K线类型,默认daylimit - 返回条数限制示例:
result = stock_query.get_index_all('sh000001')
result = stock_query.get_index_all('sh000001', 'day', limit=200)
接口: get_trade_history_full(code, before=None, limit=None)
参数:
code - 股票代码before - 截止日期(YYYYMMDD),默认今天limit - 返回条数限制示例:
result = stock_query.get_trade_history_full('000001')
result = stock_query.get_trade_history_full('000001', before='20241108', limit=5000)
接口: get_workday_range(start, end)
参数:
start - 起始日期(YYYYMMDD)end - 结束日期(YYYYMMDD)示例:
result = stock_query.get_workday_range('20241101', '20241130')
接口: get_income(code, start_date)
参数:
code - 股票代码start_date - 基准日期(YYYYMMDD)示例:
result = stock_query.get_income('000001', '20241101')
接口: get_stock_news(symbol)
参数:
symbol - 股票代码或关键词,如 '603777' 或 '宁德时代'示例:
# 查询股票代码相关新闻
result = stock_query.get_stock_news('603777')
# 查询关键词相关新闻
result = stock_query.get_stock_news('宁德时代')
返回数据包含:
注意:
AKSHARE_API_URL 才能使用此功能接口: get_stock_disclosure(symbol, start_date, end_date, market='沪深京', category=None, keyword=None)
参数:
symbol - 股票代码,如 '300058'start_date - 起始日期,格式YYYYMMDD,如 '20260101'end_date - 结束日期,格式YYYYMMDD,如 '20260314'market - 市场,默认'沪深京'category - 公告分类,如 '年报'、'董事会'、'权益分派' 等(可选)keyword - 关键词搜索,在公告标题中进行搜索(可选)公告分类选项:
示例:
# 查询股票300058在2026年第一季度发布的所有类型公告
result = stock_query.get_stock_disclosure('300058', '20260101', '20260331')
# 查询股票300058在2026年发布的"董事会"相关公告
result = stock_query.get_stock_disclosure('300058', '20260101', '20261231', category='董事会')
# 查询股票300058近期关于"权益分派"的公告
result = stock_query.get_stock_disclosure('300058', '20250101', '20260314', category='权益分派')
# 查询股票300058在2025年全年标题中包含"担保"关键词的公告
result = stock_query.get_stock_disclosure('300058', '20250101', '20251231', keyword='担保')
返回数据包含:
注意:
AKSHARE_API_URL 才能使用此功能用户提问: 查询平安银行和贵州茅台的实时行情
调用代码:
result = stock_query.get_quote(['000001', '600519'])
用户提问: 查询贵州茅台最近30天的日K线数据
调用代码:
result = stock_query.get_kline_history('600519', 'day', limit=30)
用户提问: 查询平安银行今天的分时走势
调用代码:
result = stock_query.get_minute('000001')
用户提问: 查询贵州茅台今天的分时成交明细
调用代码:
result = stock_query.get_trade('600519')
用户提问: 搜索包含"平安"的股票
调用代码:
result = stock_query.search_stock('平安')
用户提问: 查询上证指数的日K线数据
调用代码:
result = stock_query.get_index('sh000001', 'day')
用户提问: 批量获取自选股的实时行情
调用代码:
result = stock_query.batch_quote(['000001', '600519', '601318'])
用户提问: 查询所有ETF基金
调用代码:
result = stock_query.get_etf()
用户提问: 查询2024年11月8日是否为交易日
调用代码:
result = stock_query.get_workday('20241108')
用户提问: 创建批量K线数据入库任务
调用代码:
result = stock_query.create_pull_kline_task(
codes=['000001', '600519'],
tables=['day', 'week'],
limit=2
)
所有接口统一返回格式:
{
"code": 0, // 0=成功, -1=失败
"message": "success", // 提示信息
"data": {} // 数据内容
}
TDX_API_URL 环境变量如有问题,请参考技术文档或联系技术支持。