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