AStockReport
v1.0.0A股报告生成与推送技能。支持6种报告:晨报(AI搜索+模板,每日8:00)、晚报(AI搜索+量化情绪打分,每日20:00)、收盘小结(脚本数据+量化情绪打分,交易日15:30)、盘中预警(脚本,交易时段每5分钟)、财经周末要闻(AI搜索,每周20:00)、A股IPO周报(每周六09:00,Python脚本直推,数...
Like a lobster shell, security has layers — review code before you run it.
License
SKILL.md
📦 安装后配置建议
Cron 定时任务推荐设置(粘贴到 OpenClaw 添加 Cron 任务时使用):
| 报告 | 定时 | cron 表达式 | 推送方式 |
|---|---|---|---|
| 📰 晨报 | 每日 08:00 | 0 8 * * 1-5 | webhook |
| 📋 晚报 | 每日 20:00 | 0 20 * * 1-5 | webhook |
| 📊 收盘小结 | 交易日 15:30 | 30 15 * * 1-5 | webhook |
| 🚨 盘中预警 | 每5分钟(09:30-11:30 / 13:00-15:00) | */5 9-11,13-15 * * 1-5 | webhook |
推送方式:必须选 webhook
- 企业微信 Webhook 推送无文本长度限制,适合长报告
- Webhook Key:存储于
/workspace/keys/wecom_webhook.ini,由 keys_loader 统一读取 - 各脚本内部已封装
wx_push()函数,直接调用即可,无需额外配置
注意:收盘小结和晚报的 cron delivery 请务必指定 channel: wecom,否则会因多通道冲突导致推送失败:
"delivery": { "mode": "announce", "channel": "wecom" }
A股报告技能
⚠️ 重要:晨报和晚报是 AI 工作流,由 Cron 触发 agentTurn,agent 调用 batch_web_search 搜索新闻,再用模板生成报告,最后用 Python 推送。收盘小结是脚本数据+AI分析双层模式(脚本抓数据 → AI生成分析 → 统一推送)。盘中预警是纯 Python 脚本。
快速索引
| 报告 | 类型 | 推送方式 | 触发方式 |
|---|---|---|---|
| 📰 晨报 | AI工作流 | Cron → agentTurn → batch_web_search → push | Cron 8:00 |
| 📋 晚报 | AI工作流 + 量化情绪(6维:涨停/涨跌停比/北向/全市场净流入/两融/沪深300) | Cron → 脚本抓数据+量化打分+推送 | Cron 20:00 |
| 📊 收盘小结 | AI工作流 | Cron → agentTurn → 脚本获取数据 → AI生成分析 → push | Cron 15:30 |
| 📋 A股IPO周报 | Python脚本 | Cron → 脚本抓数据+网络搜索 → 生成推送 | Cron 0 9 * * 6(周六 09:00) |
| 📰 财经周末要闻 | AI工作流 | Cron → agentTurn → batch_web_search → push | Cron 0 20 * * 0(周日 20:00) |
| 🚨 盘中预警 | Python脚本 | Cron → 脚本直接推送 | Cron */5(09:30-11:30 / 13:00-15:00) |
1. 📰 晨报(AI工作流)
Cron 配置:
{
"schedule": { "kind": "cron", "expr": "0 8 * * 1-5", "tz": "Asia/Shanghai" },
"payload": { "kind": "agentTurn", "message": "<下方完整prompt>" }
}
完整 prompt:
请严格按以下步骤执行,完成后直接输出报告内容,不需要任何额外说明:
第一步:用batch_web_search搜索今日A股市场晨报相关内容,搜索以下关键词:
- A股 财经要闻 市场动态 今日
- 美股收盘 VIX 恐慌指数 今日
- A股 板块 涨停 龙头 今日
- 央行 财政部 政策 利好 今日
第二步:生成格式完整、内容详尽的晨报,严格按以下格式输出每一部分,不得遗漏任何板块:
📰 【股市晨报】YYYY年M月D日(周W)
━━━ 隔夜全球市场 ━━━
【美股收盘】
▪ 道琼斯:(点位),(涨跌幅%)
▪ 标普500:(点位),(涨跌幅%)
▪ 纳斯达克:(点位),(涨跌幅%)
▪ VIX恐慌指数:(数值),恐慌等级:【X区间】(说明,包含重要背景补充,如美股季度涨跌、近期趋势等,越详细越好)
【港股及A50】
▪ 恒生指数:(表现描述,含整周趋势)
▪ A50指数期货:(表现描述)
━━━ 财经要闻 ━━━
【1】(标题)|✅/❌/⚠️ 对A股影响
点评:(2-3句话,含具体公司、板块、数据,利好/利空要明确,不可泛泛而谈)
【2】(标题)|✅/❌/⚠️ 对A股影响
点评:(同上)
【3】(标题)|✅/❌/⚠️ 对A股影响
点评:(同上)
【4】(标题)|✅/❌/⚠️ 对A股影响
点评:(同上)
【5】(标题)|✅/❌/⚠️ 对A股影响
点评:(同上)
【6】(标题)|✅/❌/⚠️ 对A股影响
点评:(同上)
【7】(标题)|✅/❌/⚠️ 对A股影响
点评:(同上)
(列出5-8条重要新闻,每条必须包含:标题、日期、✅/❌/⚠️标记、点评中要有具体公司或数据)
━━━ 今日操作建议 ━━━
【大盘研判】
(结合技术面+消息面,给出当日大盘走势判断,3-5句话,含关键支撑/压力位)
【操作建议】
① 短线(1-3天):(具体方向+逻辑,注明短线/中线)
② 中线(1-3周):(具体方向+逻辑)
③ 波段操作:(具体点位建议,如4,000点上方压力、3,900下方低吸等)
【风险提示】
⚠️ (3条,分别关注外盘变盘、节前效应、地缘风险等具体因素)
⚠️ 仅供参考,不构成投资建议。股市有风险,投资需谨慎。
第三步:用Python通过企业微信推送报告内容:
import subprocess, json
import sys
sys.path.insert(0, "/workspace/keys")
from keys_loader import get_webhook_url
report = \"\"\"[完整报告内容]\"\"\"
payload = json.dumps({"msgtype": "text", "text": {"content": report}}, ensure_ascii=False)
r = subprocess.run(["curl", "-s", "-X", "POST", get_webhook_url(), "-H", "Content-Type: application/json", "-d", "@-"], input=payload.encode("utf-8"), capture_output=True)
print(r.stdout.decode() if r.stdout else "ok")
只输出报告正文内容,不需要任何解释,完成后立即执行推送代码。
2. 📋 晚报(AI工作流)
Cron 配置:
{
"schedule": { "kind": "cron", "expr": "0 20 * * 1-5", "tz": "Asia/Shanghai" },
"payload": { "kind": "agentTurn", "message": "<下方完整prompt>" }
}
完整 prompt:
请完成以下任务,直接执行不要询问:
第一步(必须先执行):运行以下Python命令获取今日量化情绪分:
python3 /workspace/skills/astock-report/scripts/send_evening_report.py --dry-run
输出格式示例:
SENTIMENT:50/100|🟠 偏空谨慎|市场情绪转弱...
ZTC:45|DTC:12|NORTH:25.3|MKT:-120
IDX:上证指数|3880.10|-0.80
记录以上输出中的数值,后续步骤中填入报告对应位置。
第二步:用batch_web_search搜索今日收盘后A股市场重要财经要闻,搜索关键词:
- A股收盘 股指 YYYYMMDD
- 板块涨停 强势龙头 YYYYMMDD
- 财经要闻 市场动态 YYYYMMDD
第三步:生成格式完整、内容详尽的收盘晚报,严格按以下格式输出每一部分:
📋 【A股晚报】YYYY年MM月DD日
━━━ 全球市场 ━━━
▎亚太市场
• 恒生指数:(点位),(涨跌幅%)
• 恒生红筹:(点位),(涨跌幅%)
• 日经225指数:(点位),(涨跌幅%)
• 韩国KOSPI:(点位),(涨跌幅%)
▎A股今日收盘(YYYY年MM月DD日)
• 上证指数:(点位),(涨跌幅%)
• 深证成指:(点位),(涨跌幅%)
• 创业板指:(点位),(涨跌幅%)
• 沪深300:(点位),(涨跌幅%)
• 科创50:(点位),(涨跌幅%)
• 成交额:(X.XX万亿元)(量能描述,如温和放大/明显缩量)
━━━ 市场情绪 ━━━
• 涨停家数:约X家(含ST)
• 跌停家数:约X家
• 北向资金:净流入/净流出X亿
• 两融余额:约X万亿(较上一交易日X亿)
• 全市场主力资金净流入:X亿(由脚本第一步输出MKT值填入)
情绪评估(直接填入第一步脚本输出的综合评分):
量化情绪打分:综合评分 X/100 🟢极强/🟡多头偏强/⚪中性震荡/🟠偏空谨慎/🔴极弱空头
(不需要逐维明细分值,只需填入综合评分和等级即可)
━━━ 重要财经要闻 ━━━
【1】(标题)
(事件简述,50字以内)
✅ 对A股有利:(一句话)
❌ 对A股不利:(一句话)
⚠️ 风险提示:(一句话)
【2】(标题)
(事件简述,50字以内)
✅ 对A股有利:(一句话)
❌ 对A股不利:(一句话)
⚠️ 风险提示:(一句话)
【3】(标题)
(事件简述,50字以内)
✅ 对A股有利:(一句话)
❌ 对A股不利:(一句话)
⚠️ 风险提示:(一句话)
(列出3-5条重要新闻,按重要性排序)
━━━ 热点板块一览 ━━━
🚀 强势板块:(板块名)(驱动逻辑)
⚠️ 弱势板块:(板块名)(原因)
━━━ 明日操作建议 ━━━
① 【顺势而为】(具体方向+逻辑,若成交额维持X万亿以上,可适当加仓……)
② 【超跌博弈】(具体板块+止损设置)
③ 【控制仓位】(整体仓位建议+风险提示)
⚠️ 免责声明:本报告由AI自动生成,仅供参考,不构成投资建议,市场有风险,投资需谨慎。
第四步:用Python通过企业微信推送:
import subprocess, json
import sys
sys.path.insert(0, "/workspace/keys")
from keys_loader import get_webhook_url
report = \"\"\"[完整报告内容]\"\"\"
payload = json.dumps({"msgtype": "text", "text": {"content": report}}, ensure_ascii=False)
r = subprocess.run(["curl", "-s", "-X", "POST", get_webhook_url(), "-H", "Content-Type: application/json", "-d", "@-"], input=payload.encode("utf-8"), capture_output=True)
print(r.stdout.decode() if r.stdout else "ok")
只输出报告内容,不需要额外解释。报告生成后立即执行Python推送代码。
3. 📊 收盘小结(Python脚本)
Cron 配置:
{
"schedule": { "kind": "cron", "expr": "30 15 * * 1-5", "tz": "Asia/Shanghai" },
"payload": { "kind": "agentTurn", "message": "python3 /workspace/skills/astock-report/scripts/send_close_summary.py" }
}
推送内容结构:
📊 【A股收盘小结】YYYY年MM月DD日
【一,主要股指表现】
{trend}:
• 上证指数:(点位),↑/↓(涨跌幅%)
• 深证成指:(点位),↑/↓(涨跌幅%)
• 创业板指:(点位),↑/↓(涨跌幅%)
• 沪深300:(点位),↑/↓(涨跌幅%)
• 科创50:(点位),↑/↓(涨跌幅%)
📍 (2-3句话描述整体走势,含外围背景)
【二,资金流向】
北向资金:(X亿)
行业主力净流入前三:
1. 行业名:+X亿(领涨股+涨跌幅%)
2. 行业名:+X亿(领涨股+涨跌幅%)
3. 行业名:+X亿(领涨股+涨跌幅%)
行业主力流出前三:
1. 行业名:-X亿(领跌股+涨跌幅%)
2. 行业名:-X亿(领跌股+涨跌幅%)
3. 行业名:-X亿(领跌股+涨跌幅%)
【三,板块表现】
🚀 强势板块:
① 板块名(X家涨停)
② 板块名(X家涨停)
③ 板块名(X家涨停)
❄️ 弱势板块:
① 板块名(X家跌停)
② 板块名(X家跌停)
③ 板块名(X家跌停)
【四,量化情绪打分】
• 涨停家数:约X家
• 跌停家数:约X家
• 市场情绪:(填入脚本第一步输出的量化情绪评分:X/100 🟢/🟡/⚪/🟠/🔴)
【五,热门个股聚焦】
🔴 涨停聚焦:
• 股票名(涨跌幅%)
• 股票名(涨跌幅%)
【六,机构观点与后市展望】
✅ 多头逻辑:
• (2-3条逻辑)
⚠️ 风险提示:
• (2-3条风险)
📌 后市研判:
(机构观点+关键区间)
━━━━━━━━ 数据来源:腾讯财经·东方财富AKShare ━━━━
⚠️ 仅供参考,不构成投资建议。股市有风险,投资需谨慎。
4. 📰 财经周末要闻(AI工作流)
Cron 配置:
{
"schedule": { "kind": "cron", "expr": "0 20 * * 0", "tz": "Asia/Shanghai" },
"payload": { "kind": "agentTurn", "message": "<下方完整prompt>" }
}
完整 prompt:
请立即执行以下任务:
【第一步】batch_web_search搜索过去48小时最重要的财经要闻,共8-10条,涵盖:A股政策利好利空、美股收盘、国际市场动态、VIX恐慌指数、宏观经济数据、行业重大变化。
【第二步】筛选最重要的8-10条,每条注明日期(必须是近48小时内),按以下完整格式生成报告:
📰 【财经周末要闻】过去48小时(X月X日—X日)
🔟 第X条:[新闻标题](X月X日)
✅对A股有利:[分析展开]
❌对A股不利:[分析展开]
⚠️风险提示:[相关风险]
(共8-10条,每条分析完整充分)
📊 整体市场情绪研判
[做多/中性/偏空,给出3-5句理由]
⚠️ 仅供参考,不构成投资建议。股市有风险,投资需谨慎。
【第三步】用Python通过Webhook发送:
import subprocess, json
import sys
sys.path.insert(0, '/workspace/keys')
from keys_loader import get_webhook_url
report = \"\"\"[完整报告内容]\"\"\"
payload = json.dumps({"msgtype": "text", "text": {"content": report}}, ensure_ascii=False)
r = subprocess.run(["curl", "-s", "-X", "POST", get_webhook_url(), "-H", "Content-Type: application/json", "-d", "@-"], input=payload.encode(), capture_output=True, text=True)
print(r.stdout)
直接执行Python发送,不额外解释。
5. 📋 A股IPO周报(Python脚本)
Cron 配置:
{
"schedule": { "kind": "cron", "expr": "0 9 * * 6", "tz": "Asia/Shanghai" },
"payload": { "kind": "agentTurn", "message": "python3 /workspace/skills/astock-report/scripts/send_ipo_report.py" }
}
推送内容结构(微信友好版):
📋 A股IPO周报 03月28日-04月04日
━━━━━━━━━━
📊 一、排队情况(截止2026年03月29日)
全市场共248家:问询214家 | 已过会待发行20家 | 提交注册7家
【科创板】40家 已受理2 | 问询35 | 提交注册3
【创业板】34家 问询33 | 过会1
【沪主板】18家 已受理2 | 问询15 | 提交注册1
【深主板】16家 已受理3 | 问询9 | 过会1 | 提交注册3
【北交所】140家 问询122 | 过会18
━━━━━━━━━━
📋 二、上周上会(03月28日-04月04日)
✅ 通过:5家
· 企业简称 | 板块 | 日期
❌ 否决:0家
━━━━━━━━━━
📋 三、上周拿文(03月28日-04月04日)
📄 获发行批文:7家
· 企业简称 | 板块 | 日期
━━━━━━━━━━
📋 四、上周终止/撤回(03月28日-04月04日)
本周无终止撤回记录
━━━━━━━━━━
📋 五、本周上会计划(04/07-04/11)
本周暂无上会安排
━━━━━━━━━━
📋 六、本周新股上市(03月28日-04月04日)
· 股票简称(代码)| 上市:日期 | 发行:X元 | 涨幅:X%
━━━━━━━━━━
📌 数据来源:新浪财经+IPO123(统计截至2026年03月29日)
⚠️ 仅供参考,不构成投资建议。
数据说明:
- 排队数据来源:新浪财经 + IPO123 每周统计(统计截至每周五)
- 上会/拿文/终止数据来源:akshare(
stock_ipo_review_em) - 新股申购/上市数据来源:akshare(
stock_new_ipo_cninfo) - 首日涨幅:手动补充(来源:交易所公告/媒体报道)
注意事项:
- 排队数据中的"中止"列因新浪财经统计中未单独列出,默认显示为0
- 近一周无新增终止记录时,显示"本周无终止撤回记录"
- 脚本已内置最新排队数据(硬编码),每次运行自动从新浪/IPO123 抓取最新数据更新
6. 🚨 盘中预警(Python脚本)
Cron 配置:
{
"schedule": { "kind": "cron", "expr": "*/5 9-11,13-15 * * 1-5", "tz": "Asia/Shanghai" },
"payload": { "kind": "agentTurn", "message": "python3 /workspace/skills/astock-report/scripts/send_intraday_alert.py" }
}
触发条件:任一主要股指(上证指数/深证成指/创业板指/科创50/沪深300)涨跌幅超 ±2%,推送该指数的预警信息
去重机制:每个指数独立去重,按0.5%分档,每天每指数每档只推送一次
推送内容(触发哪个指数推哪个,每指数独立去重):
🚨 【🔺暴涨/🔴暴跌预警】上证指数 YYYY年MM月DD日 HH:MM
• 最新点位:XXXX.XX(▲/▼X.XX%)
• 最高/最低:XXXX.XX / XXXX.XX
⚠️ 请关注后续走势,做好风险管理。
脚本清单
| 脚本 | 用途 | 直接可跑 |
|---|---|---|
send_intraday_alert.py | 沪深300盘中预警 | ✅ |
send_close_summary.py | 收盘小结+推送 | ✅ |
send_evening_report.py | 晚报数据+全自动推送(要闻由AI补充) | ✅ |
send_ipo_report.py | A股IPO周报(含排队/上会/拿文/上市) | ✅ |
common.py | 公共模块(推送/时间判断) | ❌(被import) |
配置(必填)
Webhook Key 统一在 /workspace/keys/wecom_webhook.ini 中管理(由 keys_loader.py 统一读取):
[wecom_webhook]
key = your_webhook_key_here
Files
7 totalComments
Loading comments…
