通达信TDX股票查询技能
by @bensema
基于TDX API的股票数据查询技能,提供全面的A股市场数据查询功能,包括实时行情、K线数据、分时数据、分时成交、股票搜索、指数数据、ETF数据、市场统计、个股新闻、股票公告等31个API接口。当用户询问股票相关信息时调用。
clawhub install tdx-api-skill📖 About This Skill
name: "tdx-stock-query" description: "基于TDX API的股票数据查询技能,提供全面的A股市场数据查询功能,包括实时行情、K线数据、分时数据、分时成交、股票搜索、指数数据、ETF数据、市场统计、个股新闻、股票公告等31个API接口。当用户询问股票相关信息时调用。"
TDX股票查询技能
功能描述
本技能基于TDX股票数据API,提供以下全面功能:
基础数据查询
扩展功能
数据入库任务
高级数据服务
API地址配置(必须)
重要:使用本技能前,必须先配置API地址!
1. TDX API配置
本技能需要用户自行提供TDX API的服务地址,通过环境变量 TDX_API_URL 进行配置。
环境变量名称: TDX_API_URL
配置方法:
1. 环境变量方式:
export TDX_API_URL=http://your-api-domain.com
2. .env文件方式:
TDX_API_URL=http://your-api-domain.com
2. akshare API配置(可选)
如果需要使用个股新闻查询功能,还需要配置akshare API地址。
环境变量名称: AKSHARE_API_URL
配置方法:
1. 环境变量方式:
export AKSHARE_API_URL=http://your-akshare-api.com
2. .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地址
接口说明
1. 获取五档行情
接口: get_quote(codes)
参数: codes - 股票代码列表,如 ['000001', '600519']
示例:
result = stock_query.get_quote(['000001', '600519'])
返回数据包含:
2. 获取K线数据
接口: 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')
返回数据包含:
3. 获取分时数据
接口: get_minute(code, date=None)
参数:
code - 股票代码,如 '000001'date - 日期(YYYYMMDD格式),默认当天示例:
result = stock_query.get_minute('000001')
result = stock_query.get_minute('000001', '20241103')
返回数据包含:
4. 获取分时成交
接口: get_trade(code, date=None)
参数:
code - 股票代码,如 '000001'date - 日期(YYYYMMDD格式),默认当天示例:
result = stock_query.get_trade('000001')
result = stock_query.get_trade('000001', '20241103')
返回数据包含:
5. 搜索股票代码
接口: search_stock(keyword)
参数: keyword - 搜索关键词(代码或名称)
示例:
result = stock_query.search_stock('平安')
result = stock_query.search_stock('000001')
返回数据包含:
6. 获取股票综合信息
接口: get_stock_info(code)
参数: code - 股票代码,如 '000001'
示例:
result = stock_query.get_stock_info('000001')
返回数据包含:
7. 获取股票详细信息列表
接口: get_codes(exchange='all')
参数: exchange - 交易所代码,默认all
交易所代码: sh, sz, bj, all
示例:
result = stock_query.get_codes()
result = stock_query.get_codes('sh')
返回数据包含:
8. 批量获取行情
接口: batch_quote(codes)
参数: codes - 股票代码列表,最多50只
示例:
result = stock_query.batch_quote(['000001', '600519', '601318'])
9. 获取历史K线
接口: 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')
10. 获取指数数据
接口: get_index(code, ktype='day')
参数:
code - 指数代码,如 'sh000001'ktype - K线类型,默认day常用指数代码:
示例:
result = stock_query.get_index('sh000001', 'day')
11. 获取服务状态
接口: get_server_status()
示例:
result = stock_query.get_server_status()
返回数据包含:
12. 健康检查
接口: health_check()
示例:
result = stock_query.health_check()
13. 创建批量K线入库任务
接口: 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'
)
返回数据包含:
14. 创建分时成交入库任务
接口: 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
)
15. 查询任务列表
接口: get_tasks()
示例:
result = stock_query.get_tasks()
16. 查询任务详情
接口: get_task_detail(task_id)
参数: task_id - 任务ID
示例:
result = stock_query.get_task_detail('9b0d1b1b-7c3d-4ce6-9a0e-bd9f5e0dcf3b')
17. 取消任务
接口: cancel_task(task_id)
参数: task_id - 任务ID
示例:
result = stock_query.cancel_task('9b0d1b1b-7c3d-4ce6-9a0e-bd9f5e0dcf3b')
18. 获取ETF列表
接口: get_etf(exchange='all', limit=None)
参数:
exchange - 交易所,默认alllimit - 返回条数限制示例:
result = stock_query.get_etf()
result = stock_query.get_etf('sh', limit=10)
返回数据包含:
19. 获取历史分时成交(分页)
接口: 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)
20. 获取全天分时成交
接口: 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')
21. 查询交易日信息
接口: 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)
返回数据包含:
22. 获取市场证券数量
接口: get_market_count()
示例:
result = stock_query.get_market_count()
返回数据包含:
23. 获取全部股票代码
接口: 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)
返回数据包含:
24. 获取全部ETF代码
接口: 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)
返回数据包含:
25. 获取股票全部历史K线
接口: 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)
26. 获取指数全部历史K线
接口: 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)
27. 获取上市以来分时成交
接口: 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)
28. 获取交易日范围
接口: get_workday_range(start, end)
参数:
start - 起始日期(YYYYMMDD)end - 结束日期(YYYYMMDD)示例:
result = stock_query.get_workday_range('20241101', '20241130')
29. 计算收益区间指标
接口: get_income(code, start_date)
参数:
code - 股票代码start_date - 基准日期(YYYYMMDD)示例:
result = stock_query.get_income('000001', '20241101')
30. 个股新闻查询
接口: get_stock_news(symbol)
参数:
symbol - 股票代码或关键词,如 '603777' 或 '宁德时代'示例:
# 查询股票代码相关新闻
result = stock_query.get_stock_news('603777')查询关键词相关新闻
result = stock_query.get_stock_news('宁德时代')
返回数据包含:
注意:
AKSHARE_API_URL 才能使用此功能31. 股票公告查询
接口: 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'])
查询股票K线数据
用户提问: 查询贵州茅台最近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列表
用户提问: 查询所有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": {} // 数据内容
}
注意事项
1. 必须配置环境变量:在使用本技能前,必须先配置 TDX_API_URL 环境变量
2. 股票代码格式:股票代码必须为6位数字,如000001(平安银行)、600519(贵州茅台)
3. 批量查询限制:批量获取行情一次最多查询50只股票
4. 数据回退机制:分时数据查询时,如果指定日期无数据,会自动回退至最近一个有交易数据的工作日
5. K线复权说明:日/周/月K线默认返回同花顺前复权数据
6. 非交易时段:非交易时段查询可能返回最新的收盘数据
7. 任务管理:数据入库任务在后台异步执行,需要通过任务管理接口查询状态
8. 数据量控制:全量数据较大,建议配合limit参数控制响应大小
9. 交易日查询:交易日查询会返回前后若干个最近的交易日信息
10. 错误处理:所有接口都有完善的错误处理机制,返回详细的错误信息
常用股票代码
蓝筹股
科技股
指数代码
技术支持
如有问题,请参考技术文档或联系技术支持。