A股每日预测推送流水线
概述
把「多只自选股 → 数据获取 → 规则化量化预测 → Markdown 表格文案 → 每日 08:00/20:00 推送到微信」
整条流水线交给一个确定性 Python 脚本完成。用户只需提供:自选股清单 + 一个推送渠道密钥。
脚本自动完成多源容错取数(腾讯行情主源 / 新浪K线兜底 / 东财可选增强)、交易日历与数据新鲜度校验、
规则化打分(趋势/均线/MACD/RSI/动量/量价/买卖盘压力/资金流,概率封顶 70%)与表格版式文案生成。
何时使用
- 用户要求「每天推送股票预测/自选股分析到微信」并给出股票清单;
- 用户要求修改已部署的该流水线(增删股票、改推送渠道、改推送时间、改预测参数);
- 用户要求把该能力整理、分享或分发给他人。
隐私设计(向用户强调的核心卖点)
技能包与个人数据物理分离,可整包分享:
- 技能包内零密钥、零个人自选股,只有占位模板(
assets/下两个.example文件); - 用户的密钥与自选股清单只存于本机个人数据目录(默认
~/.stock_daily_push/,
可用环境变量STOCK_DAILY_HOME改到别处),分享或更新技能都不会带出; - 脚本只从公开行情接口读取公开市场数据,唯一外发是推送文案到用户本人配置的渠道;
无遥测、无统计上报、无隐藏端点,单一 Python 文件可全文审计。
完整承诺与分享前自查清单见 references/privacy.md——向用户介绍本技能时必读该文件并如实转述。
工作流
首次部署(用户提出需求时)
- 读取
references/setup.md并严格按其中 5 步执行:建数据目录 → 从assets/复制
股票清单.example.txt、push_config.example.json模板 → 填入用户自选股与密钥 →--no-push预览 → 实测推送。 - 向用户索取自选股清单(名称即可,代码用腾讯 smartbox 搜索 + 行情名称双重校验后补全;
「XX基金」之类的口误主动与用户确认)。 - 推送渠道默认推荐 Server酱(免费,微信扫码即用);PushPlus 未实名会返回 905(2024-08-01 起付费实名);
企业微信需用户在客户端左下角加号菜单开启连接器。渠道细节对照表见references/setup.md第 4 节。 - 用
automation_update创建两个周期自动化:盘前 08:00、收盘 20:00,
RRULEFREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR;BYHOUR=<8|20>;BYMINUTE=0。
必须显式传status: ACTIVE(不带 status 的更新会把自动化置为 PAUSED)。
节假日由脚本内置休市日历 + 数据新鲜度校验自动跳过,RRULE 无需为节假日特判。
日常运行
python scripts/stock_daily.py --mode am # 盘前档
python scripts/stock_daily.py --mode pm # 收盘档
python scripts/stock_daily.py --mode am --no-push # 只生成文案不推送(预览/调试)
python scripts/stock_daily.py --mode pm --force # 跳过交易日校验(测试用)
脚本仅用 Python 标准库;沙箱内无 curl 时全部网络请求由 urllib 完成。
运行用当次会话可用的 Python 绝对路径(Windows 托管环境通常在
C:\Users\<用户名>\.workbuddy\binaries\python\versions\<版本>\python.exe)。
用户增量修改
- 增删股票:编辑
<数据目录>/股票清单.txt(或直接替用户改),下次运行自动生效; - 换渠道/换密钥:编辑
<数据目录>/config/push_config.json; - 改预测参数:编辑
scripts/stock_daily.py的score_and_signals/verdict,
改后必须--no-push预览验证再推送。
红线(不可违背)
- 不编造数据:所有行情与指标必须来自脚本实际获取结果;接口失败时如实降级
(如 K 线 <20 根输出「技术数据不足」),禁止用估算值填充。 - 固定免责声明:
DISCLAIMER常量为推送文案必备段落,禁止删除或淡化;
预测概率封顶 70%,不得宣称确定性结论。 - 红涨绿跌:涨跌配色遵循 A 股习惯——🔴 涨、🟢 跌、⚪ 平,禁止用反。
- 数据标注:文案必须标注数据截至时点与来源(腾讯财经),预测目标交易日写明确。
- 隐私纪律:禁止把用户的真实密钥、自选股清单写入技能包任何文件或记忆文件;
密钥只进<数据目录>/config/push_config.json。
文件清单
| 文件 | 用途 |
|---|---|
scripts/stock_daily.py |
流水线脚本(约 830 行,标准库,无第三方依赖) |
references/setup.md |
部署配置详解:目录结构、清单格式、渠道对比、自动化创建、降级策略、FAQ |
references/privacy.md |
隐私承诺、数据流向、分享前自查清单、密钥泄露处置 |
assets/股票清单.example.txt |
自选股清单模板(公开示例股票) |
assets/push_config.example.json |
推送配置模板(密钥为空串占位) |
已知坑(维护时勿回退)
- 东财 push2/push2his 连续请求后被限流(RemoteDisconnected,数分钟不恢复)——脚本已改为 probe 探活 + 可选增强,勿改回唯一数据源;
- 腾讯港美股行情字段与 A 股不同、量比不可靠——非 A 股已置空量比;
- 腾讯美股日 K 有时仅 2 根——触发「技术数据不足」降级,属预期行为;
- 脚本内
HOLIDAY_RANGES的 2027 年及以后为预估值——每年 12 月交易所公告后更新; automation_update不带status字段会把自动化置为 PAUSED——更新后必须显式传ACTIVE。