← 返回 Skills 市场
cookfish1979

astock-report

作者 cookfish1979 · GitHub ↗ · v1.3.0 · MIT-0
cross-platform ⚠ suspicious
292
总下载
0
收藏
0
当前安装
13
版本数
在 OpenClaw 中安装
/install astock-report
功能描述
A股报告生成与推送技能。触发方式:晨报(cron 08:00)、晚报(cron 20:00)、收盘小结(cron 15:00)、盘中预警(cron 每5分钟)、财经周末要闻(cron 周五20:00)、IPO周报(cron 周六09:00)。内置两套系统:①投资者情绪打分(6维度,满分100)②AI后市展望(收盘...
使用说明 (SKILL.md)

A股报告系统

A股数据驱动型报告自动生成与推送系统,支持晨报 / 收盘小结 / 晚报 / 盘中预警 / IPO周报 / 财经周末要闻


快速开始

# 收盘小结(独立脚本,直接推送,无需LLM生成内容)
python3 /workspace/skills/A-stock-report/scripts/send_close_summary.py
python3 /workspace/skills/A-stock-report/scripts/send_close_summary.py --date 20260413

# 晚报
python3 /workspace/skills/A-stock-report/scripts/send_evening_report.py

# 晨报(需LLM先生成内容,写入 /tmp/morning_report_content.txt)
python3 /workspace/skills/A-stock-report/scripts/send_morning_report.py

# 财经周末要闻(需LLM先生成内容,写入 /tmp/weekend_news_content.txt)
python3 /workspace/skills/A-stock-report/scripts/send_weekend_news.py
python3 /workspace/skills/A-stock-report/scripts/send_weekend_news.py --extract-only  # 仅提取情绪数据

# IPO周报
python3 /workspace/skills/A-stock-report/scripts/send_ipo_report.py

# 盘中预警
python3 /workspace/skills/A-stock-report/scripts/send_intraday_alert.py

执行模式

收盘小结、晚报、晨报 采用不同模式:

  • 收盘小结:单一 Python 脚本,内置全部逻辑(取数 → 打分 → 生成报告 → 推送),cron 直接触发,无需 LLM 生成内容。
  • 晚报:两步(LLM 生成内容 → 脚本落地 + 推送),cron prompt 控制。
  • 晨报:两步(LLM 生成内容 → 脚本落地 + 推送),cron prompt 控制。

数据来源

数据 来源 接口
六大指数(点位/涨跌幅) 腾讯实时 API qt.gtimg.cn
富时A50期货(实时) 腾讯实时 API qt.gtimg.cn/q=hf_A50
涨跌停家数 AKShare stock_zt_pool_em
炸板率 AKShare stock_zt_pool_em
北向资金 AKShare stock_hsgt_north_net(列名:北向净买额,需 .fillna(0)
概念板块涨跌(前5/后5) 妙想 MX → cron LLM兜底 claw/query(概念板块涨幅/跌幅前10)
行业板块涨跌(申万) AKShare stock_board_industry_name_em
两融余额/融资余额 AKShare stock_margin_detail
两融交易额/融资买入额 AKShare stock_margin_detail
两融余额/A股流通市值 AKShare stock_margin_detail + 总市值
成交额(今日实时) 腾讯实时 API 沪市+深市
成交额(历史/两融同日期) AKShare stock_sse_deal_daily + stock_szse_summary
沪深300 PE / 历史分位 AKShare + 腾讯 AKShare + PE
股市风险溢价 本地计算 PE → 国债收益率
主力净流入/行业资金 妙想 MX claw/query
盘面点评/后市展望 妙想 MX claw/news-search
舆情/财经要闻 妙想 MX / batch_web_search claw/news-search

文件名日期规则

报告 文件名日期取值
收盘小结 --date 参数值;无参数则取当天
晚报 --date 参数值;无参数则取当天
晨报 生成当天
财经周末要闻 生成当天

注意:晚报内容里的两融余额/北向数据标注日期(如"两融余额(04月13日)")是数据对应的上一交易日,与文件名日期可能差1天。


周末要闻情绪轨迹数据来源

一周情绪轨迹从历史报告MD文件中提取,合并规则:

指标 来源 key取法
涨停家数/情绪打分 收盘小结 收盘小结_YYYYMMDD.md 从文件名提取 YYYYMMDD
北向资金/两融余额/两融比例 晚报 晚报_YYYYMMDD.md 报告内容里两融余额那行提取日期作为 key

两套数据以交易日 key 对齐合并,保证周一到周五趋势线一致。


防并发锁

各脚本使用独立的锁文件,同时运行互不干扰:

脚本 锁文件
send_close_summary.py /tmp/a_stock_close_summary.lock
send_evening_report.py /tmp/a_stock_evening.lock
send_morning_report.py /tmp/a_stock_morning.lock
send_weekend_news.py /tmp/a_stock_weekend.lock
send_ipo_report.py /tmp/a_stock_ipo.lock
send_intraday_alert.py /tmp/a_stock_intraday.lock

报告模板

晨报

📰 【股市晨报】YYYY年MM月DD日(周X)

━━━ 隔夜全球市场 ━━━
【美股收盘】
▪ 道琼斯:XXXXX.XX点,+/-X.XX%
▪ 标普500:XXXXX.XX点,+/-X.XX%
▪ 纳斯达克:XXXXX.XX点,+/-X.XX%(可附"X连涨/连跌X日")
▪ VIX恐慌指数:XX.XX(+/-X.XX%),恐慌等级:【XX区间】

【港股及A50】
▪ 恒生指数:XXXX,+/-X.XX%(附简要背景)
▪ 富时A50期货:XXXXX点,+/-X.XX%,偏强/偏弱运行【预判A股明日开盘】

【大宗商品】(可选)
▪ WTI原油:XXX美元/桶,+/-X.XX%
▪ 现货黄金:XXXX美元/盎司,+/-X.XX%

━━━ 财经要闻 ━━━
【1】(标题)|✅利好/❌利空/⚠️中性 对A股影响
  点评:(2-3句,分析事件对A股情绪/板块的影响)
【2】(标题)|✅利好/❌利空/⚠️中性 对A股影响
  点评:...
(6-10条,每条含:标题、✅/❌/⚠️标签、2-3句逻辑分析)

━━━ 今日操作建议 ━━━
【大盘研判】
(综合外围市场、宏观政策、量能等因素,给出2-3句综合判断)

【操作建议】
1. 【板块/策略】(期限):具体建议+附标的
2. 【板块/策略】(期限):...

【风险提示】
⚠️ (1-3条,最重要的风险)

⚠️ 仅供参考,不构成投资建议。股市有风险,投资需谨慎。

收盘小结

📊 【A股收盘小结】YYYY年MM月DD日

━━━ 一,主要股指表现 ━━━
• 上证指数:XXXX.XX,↑/↓X.XX%
• 深证成指:XXXX.XX,↑/↓X.XX%
• 创业板指:XXXX.XX,↑/↓X.XX%
• 科创50:XXXX.XX,↑/↓X.XX%
• 沪深300:XXXX.XX,↑/↓X.XX%
• 中证500:XXXX.XX,↑/↓X.XX%

━━━ 二,资金流向 ━━━
  主力资金:净流入/流出XX亿(全市场)
  🔺 涨幅前五:
    · 板块名+X.XX%
    · 板块名+X.XX%
    · 板块名+X.XX%
    · 板块名+X.XX%
    · 板块名+X.XX%
  🔻 跌幅前五:
    · 板块名-X.XX%
    · 板块名-X.XX%
    · 板块名-X.XX%

━━━ 四,量化情绪打分 ━━━
━━━ 四,量化情绪打分 ━━━(满分100,6项等权平均)
• 涨停XX家 → X分(满分15)
• 涨跌停比:XX倍 → X分(满分15)
• 北向净流入:+XX亿 → X分(满分20)
• 主力净流入:+XX亿 → X分(满分20)
• 炸板率:+XX% → X分(满分20)
• 沪深300:+X.XX% → X分(满分10)
━━━━━━━━━━━━
综合评分:XX/100 🟢做多|🟡偏多|⚪分歧|🟠偏空谨慎|🔴冰点

━━━ 五,后市展望 ━━━
(脚本固定文案,cron触发时AI自动补充)

━━━ 数据来源:腾讯财经·东方财富AKShare ━━━
⚠️ 仅供参考,不构成投资建议。股市有风险,投资需谨慎。

晚报

📋 【A股晚报】YYYY年MM月DD日

━━━ A股收盘 ━━━
• 上证指数:XXXX.X,↑/↓X.XX%(可附重要说明,如"创X年X月以来新高")
• 深证成指:XXXX.X,↑/↓X.XX%
• 创业板指:XXXX.X,↑/↓X.XX%(附说明)
• 科创50:XXXX.X,↑/↓X.XX%
• 沪深300:XXXX.X,↑/↓X.XX%
• 中证500:XXXX.X,↑/↓X.XX%
• 成交额:X.XX万亿元

━━━ 亚太股市 ━━━
• 恒生指数:XXXX,↑/↓X.XX%(附简要背景,如"美伊封锁升级,港股承压")
• 日经225:XXXXX,↑/↓X.XX%(附背景)
• 韩国综合:XXXX,↑/↓X.XX%(附背景)

━━━ 市场风险偏好 ━━━
• 两融余额(MM月DD日):XXXXX亿,较前日+/-XXXX亿
• 两融余额/A股流通市值(MM月DD日)= X.XX%
  → 安全区间 ✅(或"⚠️预警/高危")
• 两融交易额/A股成交额(MM月DD日)= X.X%
  阈值:\x3C7%保守 | 7-11%中性 | >11%过热
  → 比例=X.X% → 中性/过热/保守
• 股市风险溢价(MM月DD日)= X.XX%
  阈值:\x3C3%高估 | 3-6%中性 |>6%低估
  → 溢价率=X.XX% → 高估/中性/低估
• 沪深300 PE = XX.XX,近5年分位点 XX.X%

━━━ 财经要闻 ━━━
【1】(标题)|✅利好/❌利空/⚠️中性 对A股影响
  点评:(2-3句,分析事件对A股情绪/板块的影响)
【2】...(共5-8条)

━━━ 今日操作建议 ━━━
【大盘研判】(综合判断,2-3句)
【操作建议】
1. 【板块/策略】(期限):具体建议
2. 【板块/策略】(期限):...
【风险提示】(1-3条)

⚠️ 仅供参考,不构成投资建议。股市有风险,投资需谨慎。

财经周末要闻(cron 触发后 LLM 生成)

📰 【财经周末要闻】过去48-72小时

━━━ 十条重要财经要闻 ━━━
【1】(标题)→ ✅利好/❌利空
  逻辑:...  交易风险提示:...

━━━ 一周情绪轨迹 ━━━
• 涨停家数趋势:周一X家 → 周二X家 → ... → 周五X家
• 北向资金趋势:周一+/-XX亿 → ... → 周五+/-XX亿
• 两融余额/A股流通市值:周一X.XX% → ... → 周五X.XX%
• 两融交易额占比:周一X.X% → ... → 周五X.X%
• 量化情绪打分:周一XX分 → ... → 周五XX分
• 整体趋势:[升温/降温/震荡]

━━━ 整体市场情绪研判 ━━━
情绪指标总结 | 核心驱动因素 | 当前风险点 | 下周操作参考

⚠️ 仅供参考,不构成投资建议。

定时任务(cron)

任务 时间(北京时间) sessionTarget wakeMode
📰 晨报-推送 周一~五 08:00 isolated now
📉 收盘小结-推送 周一~五 15:30 isolated now
📋 晚报-推送 周一~五 20:00 isolated now
📈 盘中预警 交易时段每5分钟(9:30-11:29, 13:00-14:59) isolated now
📰 财经周末要闻 周日 20:00 isolated now
📋 A股IPO周报 周五 09:00 isolated now

wakeMode 已设为 now,确保每次按时执行。

盘中预警触发时段说明:严格对应 A 股实盘集合竞价规则(9:15-9:25 开盘,11:30-12:59 休市,15:00 收盘)。脚本通过 is_trading_window() 函数判断,仅在 9:30-11:29 与 13:00-14:59 内触发。


配置文件

  • Webhook:/workspace/keys/wecom_webhook.ini
  • MX_APIKEY(妙想):/workspace/keys/mx_api_key.ini
  • 加载器:/workspace/keys/keys_loader.py

MX_APIKEY 格式(注意 option 名必须为 mkt_api_key):

[mx_api_key]
mkt_api_key = mkt_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

常见问题

Q:生成后如何做质量检查? A:生成报告后必须检查以下四项:

  1. 日期检查:报告第一行日期 == 文件名日期 == 当天实际日期(三者必须一致)
  2. 星期检查weekday() 映射周日到周六正确(0=周一,6=周日)
  3. 数据完整性:涨跌停统计、风险偏好、操作建议四段落齐全
  4. 时效性:数据陈旧(>2个交易日)时在报告内注明

Q:如何判断涨停情绪? A:阈值如下:

  • 涨停家数 ≥ 50 → 🟢 极强
  • 涨停家数 ≥ 30 → 🟡 偏强
  • 涨停家数 ≥ 15 → 🟠 一般
  • 涨停家数 \x3C 15 → 🔴 偏弱

Q:如何判断炸板率? A:阈值如下:

  • 炸板率 \x3C 20% → 强势(炸板率低)
  • 炸板率 20-40% → 中性
  • 炸板率 40-55% → 偏弱
  • 炸板率 ≥ 55% → 弱势

Q:北向资金显示 0 亿? A:可能是接口数据为空(节假日/非交易日),或列名变更。检查 北向净买额 列是否存在,若有 NaN 值需用 .fillna(0)

Q:两融数据比当天少一天? A:正常现象。两融数据在当天收盘后约 1~2 小时后更新,晚报/收盘小结取到的是上一交易日数据。

Q:定时任务重复推送? A:检查 wakeMode 是否为 now,并确认脚本锁文件(/tmp/a_stock_*.lock)已生效。

Q:财经要闻/明日操作建议为空? A:晚报 cron 已配置 batch_web_search,AI 触发时自动搜索并填充。如仍为空说明搜索未返回有效结果。

Q:报告内容日期和文件名不对应? A:收盘小结文件名=报告日期;晚报文件名=生成当天日期,内容日期=上一交易日;周末要闻以内容里两融余额标注的日期为 key,与收盘小结文件名日期对齐合并。

Q:如何使用 --date 指定历史日期? A:python3 send_close_summary.py --date 20260413(只支持收盘小结)

安全使用建议
This skill mostly does what its description says (fetch market data, compute metrics, generate and post reports), but exercise caution before installing: - Inspect /workspace/keys and the wecom_webhook.ini (or WECOM_WEBHOOK_KEY env var) that the skill will use to post — ensure the webhook target is one you control/trust. The webhook is the primary outbound endpoint. - Provide API tokens (Tushare, MX) only if you trust the skill and run it in an isolated environment. The manifest did not declare these env vars, but the code will look for them. - Note inconsistent path casing in the SKILL.md vs code (A-stock-report vs a-stock-report vs astock-report). On case‑sensitive systems this can break execution or cause the agent to fall back to alternate behavior; request the author to fix paths. - Be aware of the s5_fix.py helper that rewrites send_evening_report.py — self‑modifying code is a maintenance and security hazard; remove or review that file before running if you want immutable code. - Run the skill in a sandbox (isolated container) first, monitor network calls (which domains are contacted: qt.gtimg.cn, eastmoney, sina, datacenter-web.eastmoney.com, etc.), and verify no unexpected endpoints are contacted and no confidential files outside /workspace/keys are read. If you want to proceed: populate only the minimal secrets (webhook key) and prefer storing them in a file you control (wecom_webhook.ini) rather than exposing broad environment variables. If possible, ask the author to (1) declare required env vars in metadata, (2) remove self‑modifying scripts, and (3) fix path/name inconsistencies for predictable behavior.
功能分析
Type: OpenClaw Skill Name: astock-report Version: 1.3.0 The skill bundle is a comprehensive A-share financial reporting system that fetches data from various APIs (Tencent, EastMoney, Sina, AKShare) and pushes reports to WeChat Work webhooks. It exhibits several high-risk behaviors, including shell command execution via subprocess.run (using curl to send data), direct filesystem access to read sensitive API keys and webhooks from /workspace/keys, and the use of a self-modifying script (s5_fix.py) to patch other files. While these capabilities appear plausibly necessary for the tool's stated purpose and no clear evidence of malicious intent was found, the combination of shell execution, key handling, and agent instructions to execute code without explanation (close_summary_prompt.txt) warrants a suspicious classification under the provided guidelines.
能力标签
requires-sensitive-credentials
能力评估
Purpose & Capability
Overall purpose (generate and push A‑share reports) matches the code: scripts pull market data, compute indicators, format reports, and post to a webhook. However the manifest declares no required env vars/config while the code expects webhooks and optional API tokens (WECOM_WEBHOOK_KEY, TUSHARE_TOKEN, MX_APIKEY or .ini files under /workspace/keys). Several path/name variants (A-stock-report vs a-stock-report vs astock-report) are inconsistent and likely to cause runtime errors on case‑sensitive filesystems.
Instruction Scope
SKILL.md and embedded prompts instruct the agent to run many local Python scripts and subprocess/curl commands that will: read key files under /workspace/keys, call get_webhook_url(), post reports to external webhooks, call openclaw.invoke('batch_web_search'), and read/write lock/state files in /tmp and workspace. These instructions therefore access local key storage and send data externally (webhook) — which is expected for push functionality but is not declared explicitly in the registry metadata. The close_summary prompt even runs other scripts and prints their stdout/stderr; prompts rely on get_webhook_url extracted via sys.path manipulations. The SKILL.md also tells the LLM to write content into /tmp files for later pickup.
Install Mechanism
No install spec (instruction-only) — lowest install risk. There is code bundled (Python scripts) but no automatic remote downloads or installers. Risk comes from runtime network requests performed by the scripts, not from installation.
Credentials
Manifest lists no required env vars yet code will use/try: WECOM_WEBHOOK_KEY (to build enterprise WeCom webhook URL), TUSHARE_TOKEN, MX_APIKEY and will also read .ini files under /workspace/keys (wecom_webhook.ini, mx_api_key.ini, etc.). Requesting a webhook key and market-data tokens is proportionate to pushing reports, but the absence of declared required env vars/config in metadata is an incoherence the user should note. The skill will accept keys from env or local files, which is convenient but also a channel for exfiltration if misconfigured.
Persistence & Privilege
always:false (good). The skill writes state files (locks and send-tracking) under /tmp and in the scripts workspace, which is normal. However there is a helper script (scripts/s5_fix.py) that modifies another script (send_evening_report.py) on disk — self‑modifying code increases risk and makes auditing harder. The skill does not declare modifying other skills, but it does write files within its own workspace and to /workspace/.alert_sent; evaluate whether that filesystem access is acceptable in your environment.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install astock-report
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /astock-report 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.3.0
v1.3.0: 修复交易时段判断边界(9:30-11:29, 13:00-14:59);cron prompt 精简为直接运行脚本(收盘小结);timeoutSeconds 统一改为 0;文档更新收盘小结触发时间 15:30、周末要闻周日 20:00;更新盘中预警时段说明。
v1.2.3
v1.2.3: 修复IPO周报去重逻辑(cron路径大小写+dedup改用执行日期);补发清明周旧报告
v1.2.2
v1.2.2: 炸板率公式修正为akshare炸板池/涨停池接口;申万行业解析修复(JS变量→JSON格式);主力净流入改用东方财富数据中心API直连;修复get_close_data.py日期硬编码bug
v1.2.1
v1.2.1: 修复数据源接口,新增同花顺/Tushare多源支持
v1.1.0
晚报新增股市风险溢价+沪深300PE分位;两融公式修正;三所成交额加总
v1.2.0
1.2.0: 新增股市风险溢价(1/PE-国债)+沪深300PE分位,晚报模板更新,数据验证正确
v1.0.6
1.0.6: 晚报市场风险偏好新增股市风险溢价及沪深300PE分位
v1.0.5
1.0.5 - 晚报市场风险偏好新增: - 股市风险溢价 = 1/中证全指PE - 10年国债收益率(阈值:<3%高估 | 3-6%中性 |>6%低估) - 沪深300PE 及近5年历史分位点 - 数据源:腾讯qt.gtimg.cn(中证全指+沪深300 PE,field[39])+ akshare bond_china_yield(10年国债)+ akshare stock_index_pe_lg(近5年分位)
v1.0.4
1.0.4 - 市场风险偏好新增: • 股市风险溢价 = 1/中证全指PE - 10年国债收益率(阈值:<3%高估 | 3-6%中性 |>6%低估) • 沪深300PE + 近5年历史分位点 数据源:腾讯 sh000300/sh000985 field[39] + akshare bond_china_yield 1.0.3 - 修复: • 两融余额改为融资+融券合计 • 全市场成交额改为沪市(亿)+深市(元÷1e8)+北交所(元÷1e8) • 流通市值沪市单位修正为亿元 • 晚报模板删除情绪参考+热点板块 • 盘中预警cron修复绑定错误 1.0.2 - 初始版本
v1.0.3
1.0.3 - 修复: - 两融余额:融资余额+融券余额(之前只取融资余额,漏掉约185亿) - 全市场成交额:改为沪市(亿元)+深市(元÷1e8)+北交所(元÷1e8),三所合计 - 流通市值:沪市单位=亿元直接使用,无需换算 - 晚报模板:删除情绪参考+热点板块区块;精简两融比例行日期格式 - 盘中预警cron:修复绑定错误(原绑定了晚报脚本,现改为盘中预警脚本) 1.0.2 - 初始版本
v1.0.2
安全修复:移除所有硬编码敏感信息,Webhook Key由keys_loader统一管理
v1.0.1
安全修复:移除硬编码Webhook Key,改用keys_loader统一读取
v1.0.0
astock-report 1.0.0 - 首次发布,支持自动生成与推送A股市场报告,包括晨报、晚报、收盘小结、盘中预警、财经周末要闻、A股IPO周报六大类。 - 内置6维量化情绪打分,配五级评级,覆盖涨停数、涨跌停比、北向资金、主力净流入、两融余额、沪深300等维度。 - 多数据源整合(AKShare、腾讯财经、网络搜索),支持Python脚本与AI工作流混合流程。 - 跨报告统一支持企业微信Webhook长文本推送,附带详细cron定时配置建议。 - 各报告均有模板指引,调用简便,适配股市常用自动播报和定时推送场景。
元数据
Slug astock-report
版本 1.3.0
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 13
常见问题

astock-report 是什么?

A股报告生成与推送技能。触发方式:晨报(cron 08:00)、晚报(cron 20:00)、收盘小结(cron 15:00)、盘中预警(cron 每5分钟)、财经周末要闻(cron 周五20:00)、IPO周报(cron 周六09:00)。内置两套系统:①投资者情绪打分(6维度,满分100)②AI后市展望(收盘... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 292 次。

如何安装 astock-report?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install astock-report」即可一键安装,无需额外配置。

astock-report 是免费的吗?

是的,astock-report 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

astock-report 支持哪些平台?

astock-report 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 astock-report?

由 cookfish1979(@cookfish1979)开发并维护,当前版本 v1.3.0。

💬 留言讨论