本 Skill 根据 RPS 引擎计算出的 JSON 数据,自动生成双版本排名报告(Markdown + HTML),包含:全量排名、市场宽度、跨期对比分析。
适用市场:美股(A股不支持)
适用品种:美国科技股/ETF(数字货币、期货、其他市场不在范围内)
前置要求:必须先运行过 rps_engine.py,确保 JSON 文件已生成
以下任一说法均可激活本 Skill:
| 类型 | 示例 |
|---|---|
| ------ | ------ |
| 完整任务 | "运行 RPS 每日计算,生成完整报告" |
| 报告生成 | "生成今天的 RPS 排名报告" |
| 对比分析 | "RPS 对比昨日分析" / "生成 RPS 周报" |
| 特定标的 | "查看英维克(002837.SZ)的 RPS 排名"(A股另走 AKShare 流程,不适用) |
取最新日期 JSON(如 20260528),格式为 rps_full_{DATE}.json
JSON 文件必须位于:
{WORKSPACE}/rps-engine/scripts/rps_results/
常见错误:若提示"文件不存在",请检查:
rps_engine.py 生成数据rps_results/(少了 scripts/)模板文件:{WORKSPACE}/rps_engine_tpl.html
创建 generate_rps_report_{DATE}.py,必须包含:
SECTOR_MAP(板块 CSS class 映射)rank_class / score_class / yield_class / tag_class / html_escape / fmt / price_fmtpython generate_rps_report_{DATE}.py
调用 deliver_attachments 交付 .md 和 .html 文件
JSON 内各数据结构 tuple 格式:
score_changes (top50_up/down, max_rise/fall, big_movers):
(diff: float, ticker_str: str, ct_dict: dict, old_r: int)
new_top50 / exited:
(ticker_str: str, ct_dict: dict, old_r: int)
ct_dict 字段:ticker / composite_rank / rps_composite / category /
rps_20 / rps_50 / rps_90 / rps_120 / rps_250 /
yield_250d / price
| 错误现象 | 原因 | 正确写法 |
|---|---|---|
| --------- | ------ | --------- |
fmt() TypeError | fmt(v, '+.2f', '%') decimals 传了字符串 | f"{v:+.2f}%" |
'NoneType' object has no attribute 'ticker' | t[1]["ticker"] — t[1] 是 ticker 字符串不是 dict | t[2]["ticker"] |
KeyError: breadth__20d | .replace("breadth","breadth_") 产生了双下划线 | key + "_above" |
变量名报错 top rise_t | 变量名里有空格 | toprise_t |
| JSON FileNotFoundError | 路径写了 rps_results/ | rps-engine/scripts/rps_results/ |
| 报错关键词 | 含义 | 解决步骤 |
|---|---|---|
| ----------- | ------ | --------- |
FileNotFoundError: rps_full_...json | JSON 不存在 | ① 确认已运行 rps_engine.py ② 检查路径是否含 scripts/ |
KeyError: 'composite_rank' | JSON 结构不匹配 | 确认 JSON 是本 Skill 输出的格式,非其他来源 |
IndexError: tuple index out of range | 数据解析格式错误 | 检查是否正确解包了 tuple(参考上方数据结构) |
pct_change() got NaT | 数据库缺少历史数据 | 目标股票上市不足250天,数据不足无法计算 |
| 报告缺少某板块颜色 | SECTOR_MAP 未覆盖该板块关键词 | 对照模板文档添加新映射 |
| HTML 占位符未替换 | 6 个 placeholder 有遗漏 | 确认模板6个占位符全部替换 |
| 排名 | 股票代码 | 板块 | RPS综合 | 20日 | 50日 | 90日 | 120日 | 250日 | 250日收益 |
|------|---------|------|--------|------|------|------|-------|-------|---------|
| 🥇 1 | MU | 半导体 | 99 | 99 | 98 | 97 | 99 | 99 | +38.5% |
| 🥈 2 | AVGO | 半导体 | 97 | 96 | 97 | 95 | 96 | 98 | +31.2% |
Q: 提示 JSON 文件不存在怎么办?
A: 请按顺序执行:① 确认 tiger_market.db 已放在 rps-engine/scripts/ ② 运行 python rps_engine.py 生成数据 ③ 再要求生成报告
Q: 某个股票排名显示 NaN 或 None?
A: 该股票历史数据不足250天,RPS 无法计算,属于正常现象
Q: 报告里板块颜色不对/没颜色?
A: 该股票板块关键词未被 SECTOR_MAP 覆盖,可对照模板文档添加
Q: 可以分析 A 股吗?
A: 目前不支持,A 股数据结构和板块分类与美股不同,需另走 AKShare 流程
Q: 数据哪天更新的?
A: 取决于最近一次运行 rps_engine.py 的日期,报告内会显示数据截止日期
共 2 个版本