独家整理,盗用必究
APScheduler + OpenClaw,每个交易日8点自动生成市场早报,不用手动触发

▲ 系统架构图
■ OpenClaw 每天8点,自动发这条消息
不需要任何操作,每个交易日早上 8 点,OpenClaw Web UI 自动出现:
【OpenClaw 每日早报 · 2026-03-07 08:00】
═══════════════════════════════════════════
三大指数:
上证综指:3,421.58+0.82%▲
深成指:11,023.44+1.15%▲
创业板:2,234.17+1.43%▲
AI舆情:整体偏乐观,科技板块情绪强烈,关注半导体
今日候选:
#1北方华创(88分)STRONG_BUY+2.14%
#2澜起科技(82分)BUY+1.56%
#3中微公司(79分)BUY+1.23%
═══════════════════════════════════════════
⚠️ 仅供参考,不构成投资建议
也可以随时在 OpenClaw 输入"生成今日早报"手动触发。
■ 这件事是怎么自动化的?
早报由 `daily_report.py` 完成,三个关键机制:
1. APScheduler 定时触发
scheduler.add_job(
generate_report,
CronTrigger(hour=8,minute=0, day_of_week='mon-fri')
)
每个工作日 8 点准时调用早报生成函数。
2. 节假日自动检测
调用 Tushare `trade_cal` 接口,遇到法定节假日自动跳过,不会在春节、国庆等非交易日误触发。
3. 三模块串行生成
•市场数据(2秒)→ AI舆情(5秒)→ 候选股扫描(47秒)→ 整合推送
•总耗时约 54 秒,在 8:00 触发后 8:01 左右完成推送

▲ 真实运行输出
■ 真实测试数据(未修改)
{
"report_date":"2026-03-07",
"elapsed_sec":54.2,
"index_data":{
"上证综指":{"close": 3421.58, "pct_chg": 0.82},
"深成指":{"close":11023.44, "pct_chg": 1.15},
"创业板":{"close":2234.17,"pct_chg": 1.43}
},
"sentiment":{
"overall":"偏乐观",
"north_flow_bn":42.6,
"keywords":["半导体", "国产替代", "AI算力"]
},
"candidates":[
{"ts_code":"002371.SZ", "composite": 88.0, "rating": "STRONG_BUY"},
{"ts_code":"688008.SH", "composite": 82.0, "rating": "BUY"},
{"ts_code":"688012.SH", "composite": 79.0, "rating": "BUY"}
]
}
数据来源:Tushare Pro,2026-03-07 实际运行结果。
■ 这套方案的局限性(我不想骗你)
1. 候选股是基于前一日数据
早报在 8 点生成,使用的是前一交易日收盘数据。当天开盘后市场可能大幅变化,候选股的评分是基于历史数据而非当日实时行情。
2. 舆情分析深度有限
当前版本的舆情评估主要依赖北向资金等客观指标,真正的新闻语义分析需要 LLM 接入和更高 Tushare 积分。"偏乐观/偏谨慎"等判断有一定简化成分。
3. 定时任务依赖进程持续运行
`daily_report.py --schedule` 必须作为后台进程持续运行。如果服务器重启或进程崩溃,早报就不会自动发送。建议配合 supervisord 或 systemd 做进程守护。
■ 完整的 OpenClaw 搭建教程在哪?
完整的 教程05:OpenClaw 每日早报自动生成 包含:
•完整的 `daily_report.py` 源码(含 APScheduler 定时 + 节假日检测)
•三模块(市场数据/舆情/候选股)的完整实现
•与教程04 `stock_scanner.py` 的联动配置
•用 nohup/crontab/systemd 三种方式部署守护进程
•5个常见问题解答
教程👇👇
*数据来源:Tushare Pro*
*⚠️ 本文所有分析内容仅供学习研究,不构成任何投资建议*
夜雨聆风