openclaw-stock-skill
使用 data.diemeng.chat 提供的接口查询股票日线、分钟线、财务指标等数据,支持 A 股等市场。
By 1018466411 · 655 installs
npx skills add 1018466411/openclaw-stock-data-skill --skill openclaw-stock-skill
Source repository · Upstream listing
� 核心能力
本技能提供强大的股票数据查询与分析能力,主要包含:
1. 实时数据 :提供实时股票快照、实时分时行情。
2. 历史数据 :支持查询股票、可转债、ETF、指数等品种的历史数据(日线、分钟线、财务指标等)。
3. 自定义通知 (开发中):支持涨停、炸板、放量大涨、涨停大额成交等异动信号的自定义消息通知。
�📥 安装方法
安装时按提示选择:
1. 选择 openclaw
2. 选择 global 应用于所有 Agent
3. Copy to all agents: yes
本技能教会代理如何使用你自建的股票数据服务(注册账号 https://data.diemeng.chat ),通过 API Key 进行鉴权,查询股票的日线、分钟线、财务指标等数据。
⚙️ API Key 配置约定
OpenClaw 会按照 [ skills.entries.<key ](https://docs.openclaw.ai/tools/skills config) [配置](https://docs.openclaw.ai/tools/skills config) 把 API Key 和自定义配置注入到进程环境变量中。
本技能约定使用环境变量 STOCK API KEY 作为主密钥,并在 metadata.openclaw.primaryEnv 中声明,以便通过 skills.entries.openclaw stock skill.apiKey 统一配置。
推荐的 OpenClaw 配置示例( ~/.openclaw/openclaw.json ):
参考文档:[Skills Config](https://docs.openclaw.ai/tools/skills config)、[Skills](https://docs.openclaw.ai/tools/skills)
⚠️ 重要说明
1. 权限开通与 403 错误
如果 API 返回 403 错误 ,说明您的账号没有开通对应接口的权限。
请务必访问官网 <https://data.diemeng.chat/ (海外请访问 https://mg.diemeng.chat/ ),在个人中心开通所需权限(如股票行情、实时快照、可转债等)。
2. 接口类型区分
实时接口 :
get stock snapshot daily (不传日期或传今日):获取最新实时快照(价格、成交量、五档盘口等)。
get stock snapshot push history :获取实时推送的历史记录。
get call auction :获取集合竞价数据。
历史接口 :
get daily data :获取历史日 K 线。
get kline data :获取历史周期K线(周K、月K)。
get kline adj data :获取复权历史周期K线(周K、月K)。
get history data :获取历史分钟线。
get finance data :获取历史财务指标。
get financial indicator :获取财务指标报表数据(stock\ financial\ indicator)。
get income statement :获取利润表数据(stock\ income)。
get balancesheet :获取资产负债表数据(stock\ balancesheet)。
get cashflow statement :获取现金流量表数据(stock\ cashflow)。
get main fund flow :获取大小单资金金流向。
get main fund flow overview :获取主力资金流向总览。
get cyq chips :获取筹码峰分布。
get holder number :获取股东人数数据。
get pledge stat :获取股票质押统计数据。
get margin detail :获取融资融券明细数据。
get stock snapshot daily (传历史日期):获取历史快照。
指数与板块接口 :
get index history :获取指数分钟级历史数据。
get index realtime history :获取指数当天实时 1 分钟级别分时数据。
get index weight :获取指数月度成分和权重数据(index code 必传,可按 stock code 和 trade date 筛选)。
get ths sector categories :获取同花顺板块分类数据。
get ths constituent stocks :获取同花顺成分股数据。
get dc blocks :获取东方财富板块列表。
get dc daily :获取东方财富板块日K(按交易日或板块代码)。
get dc block stocks :获取东方财富板块成分股(支持板块/日期/股票筛选,空参默认最新日期)。
get tdx block stocks :获取通达信板块成分股,返回分页结构 data.total/page/page size/list ,其中 list 项包含 block code 、 block name 、 block type 、 stock code 。
总体说明
获取正确的 API Key 并验证 :
一定要获取到正确的 apiKey 才可以调用接口。
获取途径 :优先从环境变量 STOCK API KEY 读取,或从当前目录的 config.json 获取。如果在 Skill 面板配置了也会注入到环境变量中。
基础域名 :默认接口的域名是 data.diemeng.chat , 如果是海外 IP 则访问 mg.diemeng.chat 。
鉴权方式 :所有需要权限的接口都必须带上 API Key,并且 必须放到 HTTP Header 里面 :
apiKey: <STOCK API KEY (强制要求)
Content Type: application/json
返回结构 :
大多数接口返回: { "code": 200, "msg": "成功", "data": { ... } }
少数列表类接口直接返回数组或简单结构,实际响应以 JSON 为准。
限流与黑名单 :
API Key 及 IP 都有严格限流与黑名单逻辑:
无效 API Key 多次尝试会触发封禁(参见后端 DataAccessVerifier 实现)。
需优先缓存和复用同一 API Key,不要在循环中频繁切换。
⚠️ 数据量限制 :除特别说明外, 大多数列表类接口单次请求最多返回 10000 条数据 。如需获取更多数据,请使用分页参数。
能力概览(建议的工具意图)
代理应将本技能视作一组 HTTP 能力,而不是单一接口:
get\ stock\ daily\ bars :查询指定股票在某一时间区间内的日线 K 线数据。
get\ stock\ intraday\ bars :查询分钟级(1/5/15/30/60 分钟)历史数据。
get\ stock\ finance\ factors :查询日度财务因子(PE、PB、换手率等)。
get\ stock\ main\ fund\ flow :查询主力资金流向明细(按时间范围/股票代码,支持仅传其一)。
get\ stock\ main\ fund\ flow\ overview :查询主力资金流向总览(净流入率与分档统计)。
get\ stock\ limit\ up :查询涨停明细数据(封单、连板、涨停原因等)。
get\ stock\ list :查询股票基础信息列表,用于代码/名称搜索。
get\ stock\ calendar\ and\ snapshot :查询交易日历和当日快照。
get\ stock\ search :使用自然语言条件搜索符合条件的股票(如"PE<20 且换手率 3%")。
get\ stock\ call\ auction :查询集合竞价数据。
get\ stock\ closing\ snapshot :查询收盘快照数据。
get\ stock\ snapshot\ daily :查询实时或历史股票快照(含 Redis 缓存加速)。
get\ stock\ suspension :查询股票停牌信息。
get\ stock\ adj\ factor :查询复权因子。
get\ stock\ indicator :查询股票 MACD、MAVOL、KDJ、RSI、BOLL、MA 技术指标,支持日线/分钟线和前复权。
get\ etf\ indicator :查询 ETF MACD、MAVOL、KDJ、RSI、BOLL、MA 技术指标。
get\ bond\ technical\ indicator :查询可转债 MACD、MAVOL、KDJ、RSI、BOLL、MA 技术指标。
get\ bond\ daily :查询可转债日线数据。
get\ bond\ indicator\ daily :查询可转债日指标数据。
get\ bond\ list :查询可转债列表信息。
get\ index\ realtime\ history :查询指数当天实时 1 分钟级别分时数据。
get\ index\ weight :查询指数月度成分和权重数据(可选按成分股过滤)。
代理在规划调用时,应根据用户自然语言意图,选择以上能力并组合使用。
接口详情与调用规范
1. 日线数据: POST /api/stock/daily
URL : {baseUrl}/api/stock/daily
方法 : POST
Headers :
Content Type: application/json
apiKey: <STOCK API KEY
请求体 JSON (后端 DailyDataRequest ):
说明:
stock code 可以是单个字符串,也可以是字符串数组。
start time 、 end time 格式为 YYYY MM DD 。
volType 可选: share (默认,按股返回)或 lot (按手返回, 1手=100股 )。
支持分页, page 从 0 开始。
响应字段:
data.total :总记录数
data.list :每条记录包含 stock code , stock name , trade date , open , high , low , close , vol , amount 等字段,价格与成交量已在后端统一保留 2 位小数, vol 单位由 volType 决定。
响应主体(简化):
data.total :总记录数
data.list :每条记录包含 stock code , trade date , open , high , low , close , vol , amount 等字段,价格与成交量已在后端统一保留 2 位小数。
1.1 复权日线: POST /api/stock/daily adj
请求参数与 POST /api/stock/daily 基本一致,额外支持 algo ( recursive / factor )。
新增 volType 可选参数: share (默认,按股)或 lot (按手)。
为兼容历史调用,未传 volType 时保持旧行为(按股返回)。
代理在需要“某股某段时间的日 K 线”时,应优先选择该接口。
2. 分钟级历史数据: POST /api/stock/history
URL : {baseUrl}/api/stock/history
方法 : POST
Headers :同上
请求体 JSON (后端 HistoryDataRequest ):
字段说明:
stock code :仅支持单个股票代码字符串(不支持数组)
level : "1min" "5min" "15min" "30min" "60min"
start time / end time :
允许仅日期(自动补全 00:00:00 和 23:59:59)
或完整时间戳 YYYY MM DD HH:MM:SS
响应主体(简化)单位手:
data.list 中每条包含: stock code , trade time , open , high , low , close , vol , amount 。
用于用户询问“某天/某段时间内的分钟级行情、分时数据”等场景。
2.1 技术指标:股票、ETF、可转债、指数
股票路径 : POST /api/stock/macd mavol kdj rsi boll ma
ETF路径 : POST /api/etf/macd mavol kdj rsi boll ma
可转债路径 : POST /api/bond/macd mavol kdj rsi boll ma
指数路径 : POST /api/index/macd kdj rsi boll ma ,指数不提供 MAVOL
Skill工具 : get stock indicator 、 get etf indicator 、 get bond technical indicator 、 get index indicator
Python便捷函数 :股票、ETF、可转债提供 get <market macd mavol kdj rsi boll ma ;指数提供 get index macd kdj rsi boll ma 。
通用请求示例:
level 支持 daily/1min/5min/15min/30min/60min ,一次只支持一个代码。
股票支持 adjust=none/qfq ;ETF、可转债和指数当前按不复权行情计算。
指数请求使用 index code ,例如 000001.SH ;分钟行情源不含成交量,因此分钟级指标响应不返回 vol 。
所有标记为可选且带默认值的参数均可省略,未传时由服务端使用默认值。
volType 可省略,默认 share (股); page 可省略,默认 0 ; page size 可省略,默认 10000 ,最大 10000 。
MACD 的 fast period 、 slow period 、 signal period 均可省略,默认分别为 12 、 26 、 9 ,且 slow period 必须大于 fast period 。
MAVOL 默认 mavol periods=[5,10] ,返回 mavol5 、 mavol10 等字段。
MA 默认 ma periods=[5,10,20,30,60] ,返回 ma5 、 ma10 等字段。
MAVOL、MA、KDJ、RSI、BOLL 的周期参数也都可省略,分别使用文档所示默认值。
MACD 返回 dif/dea/macd ;KDJ 返回 k/d/j ;RSI 返回 rsi ;BOLL 返回 boll mid/boll upper/boll lower 。
指标接口会读取请求区间之前的预热K线,保证区间首条指标尽量连续;分页仍按请求区间的总记录数返回。
3. 实时分时数据(支持最近7天内): POST /api/realtime/history 及 /api/index/realtime/history
URL : {baseUrl}/api/realtime/history 或 {baseUrl}/api/index/realtime/history
方法 : POST
Headers :同上
请求体 JSON :
(对于指数接口,参数名为 index code )
说明:
获取实时 1 分钟级别分时数据,支持最近7天内,支持全市场或指定股票/指数。
stock code / index code 或 trade time 至少提供一个。
返回数据会根据代码 + trade time 进行去重。
调用建议(定时任务拉取全市场数据) :
建议使用时间 ( trade time ) 来获取实时分时,一次可以获取某一分钟的全市场数据。
使用定时任务来获取数据,每分钟获取上一分钟的数据。
建议在每分钟的 2 到 5 秒后开始获取。
如果获取不到,建议暂停 1 秒后继续获取,最多重试不要超过 60 次,避免陷入死循环。
建议在每分钟 15 秒之后再调用接口更新一次数据,确保数据的准确性。
3.1 指数成分与权重: POST /api/index/weight
URL : {baseUrl}/api/index/weight
方法 : POST
Headers :同上
请求体 JSON :
字段说明:
index code (必填):指数代码
stock code (可选):成分股代码,支持字符串或数组(后端按 con code 过滤)
trade date (可选):支持 YYYY MM 或 YYYY MM DD ,查询时仅按年和月过滤
trade date 不传时默认返回该指数最新月份数据
返回字段:
index code , stock code , trade date , weight
4. 财务与因子(行情因子): POST /api/stock/finance
URL : {baseUrl}/api/stock/finance
方法 : POST
请求体 JSON (后端 FinanceDataRequest ):
主要返回字段(列表中每条):
stock code , stock name , trade date , close , turnover rate , turnover rate f , volume ratio , pe , pe ttm , pb , ps , ps ttm , dv ratio , dv ttm , total share , float share , free share , total mv , circ mv 等。
适合估值分析、换手率、成交金额、市值等相关问题。
4.0 财务指标报表数据: POST /api/stock/financial indicator
URL : {baseUrl}/api/stock/financial indicator
方法 : POST
请求体 JSON :
字段说明:
stock code :股票代码,支持字符串或数组
end date :报告期最后日期,格式 YYYY MM DD
ann date :公告日期,格式 YYYY MM DD
stock code / end date / ann date 三选一至少提供一个
page 从 0 开始, page size 最大 10000
主要返回字段(实际会返回 stock financial indicator 全字段):
基础标识: stock code , ann date , end date , update flag , create time
盈利能力: eps , dt eps , profit dedt , op income , ebit , ebitda , gross margin , grossprofit margin , netprofit margin
资产收益: roe , roe dt , roe yearly , roa , roa yearly , roic , roic yearly
现金与每股: bps , ocfps , cfps
偿债能力: current ratio , quick ratio , debt to assets
增长能力: basic eps yoy , netprofit yoy , dt netprofit yoy , tr yoy , or yoy , q sales yoy , q netprofit yoy
研发投入: rd exp
完整返回字段:返回 stock financial indicator 全字段(除 update flag 、 create time )。
4.0.1 利润表数据: POST /api/stock/income
URL : {baseUrl}/api/stock/income
方法 : POST
请求体 JSON :
字段说明:
stock code :股票代码,支持字符串或数组
end date :报告期最后日期,格式 YYYY MM DD
ann date :公告日期,格式 YYYY MM DD
stock code / end date / ann date 三选一至少提供一个
page 从 0 开始, page size 最大 10000
完整返回字段:返回 stock income 全字段(除 update flag 、 create time )。
4.0.2 资产负债表数据: POST /api/stock/balancesheet
URL : {baseUrl}/api/stock/balancesheet
方法 : POST
请求参数与 /api/stock/income 完全一致( stock code / end date / ann date 三选一至少传一个)。
完整返回字段:返回 stock balancesheet 全字段(除 update flag 、 create time )。
4.0.3 现金流量表数据: POST /api/stock/cashflow
URL : {baseUrl}/api/stock/cashflow
方法 : POST
请求参数与 /api/stock/income 完全一致( stock code / end date / ann date 三选一至少传一个)。
完整返回字段:返回 stock cashflow 全字段(除 update flag 、 create time )。
4.1 主力资金流向明细: POST /api/stock/main fund flow
URL : {baseUrl}/api/stock/main fund flow
方法 : POST
请求体 JSON :
字段说明:
start time / end time :交易日期范围,格式 YYYY MM DD ,闭区间;当 start time = end time 时可查询当天数据
stock code :股票代码,支持字符串或数组
stock code 和 ( start time + end time ) 至少提供其一
page 从 0 开始, page size 最大 10000
分档口径:
小单:成交额 < 5万
中单:成交额 5万 \~ 20万
大单:成交额 20万 \~ 100万
特大单:成交额 = 100万
主要返回字段:
trade date , stock code
buy sm vol , buy sm amount , sell sm vol , sell sm amount
buy md vol , buy md amount , sell md vol , sell md amount
buy lg vol , buy lg amount , sell lg vol , sell lg amount
buy elg vol , buy elg amount , sell elg vol , sell elg amount
net mf vol , net mf amount
4.2 主力资金流向总览: POST /api/stock/main fund flow overview
URL : {baseUrl}/api/stock/main fund flow overview
方法 : POST
请求体 JSON :
字段说明:
start time / end time :交易日期范围,格式 YYYY MM DD ,闭区间;当 start time = end time 时可查询当天数据
stock code :股票代码,支持字符串或数组
stock code 和 ( start time + end time ) 至少提供其一
page 从 0 开始, page size 最大 10000
分档口径:
小单:成交额 < 5万
中单:成交额 5万 \~ 20万
大单:成交额 20万 \~ 100万
特大单:成交额 = 100万
主要返回字段:
trade date , stock code , name , close , pct change
net amount , net amount rate
buy elg amount , buy elg amount rate
buy lg amount , buy lg amount rate
buy md amount , buy md amount rate
buy sm amount , buy sm amount rate
4.3 筹码峰分布: POST /api/stock/cyq chips
URL : {baseUrl}/api/stock/cyq chips
方法 : POST
请求体 JSON :
字段说明:
start time / end time :交易日期范围,格式 YYYY MM DD ,闭区间;当 start time = end