Install
openclaw skills install a-share-daily-report生成专业级 A股早报/晚报,包含大盘指数行情、市场情绪、K线走势图、 行业/概念板块排行、个股涨跌榜、主题新闻追踪、综合分析, 输出 Markdown + PNG 图表 + PDF。数据源为东方财富公开 API、 同花顺公开板块页及海外公开行情接口。 Use when asked to create daily...
openclaw skills install a-share-daily-reportSkill ID:
a-share-daily-report版本: v1.0 维护者: 阿宽 最后更新: 2026-04-02
本 Skill 提供 A 股日报自动生成能力,通过 OpenClaw 平台一键生成专业的市场早报和晚报。
适用场景:
./venv/bin/python3 -m skills.a-share-daily-report.scripts.generate_report \
--mode morning \
[--date YYYY-MM-DD] \
[--publish]
输出:reports/morning/A股早报-YYYYMMDD.md
内容:
./venv/bin/python3 -m skills.a-share-daily-report.scripts.generate_report \
--mode evening \
[--date YYYY-MM-DD] \
[--publish]
输出:reports/evening/A股晚报-YYYYMMDD.md
内容:
--publish # 启用发布到飞书
前置配置:
在项目根目录 .env 中配置:
FEISHU_NOTIFY_OPEN_ID=ou_xxxxxxxxxxxx # 飞书用户 open_id
MX_APIKEY=mkt_xxxxxxxx # mx-data API 密钥(可选)
或在 config/config.yaml 中配置:
publish:
feishu_doc:
enabled: true
folder_token: "" # 文件夹 token(可选)
feishu_message:
enabled: true
target_chat_id: "ou_xxxxxxxxxxxx"
发布结果:
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
--mode | str | 是 | morning | morning(早报)或 evening(晚报) |
--date | str | 否 | 今天 | 报告日期,格式 YYYY-MM-DD |
--publish | flag | 否 | False | 是否发布到飞书 |
--config | str | 否 | 默认路径 | 自定义配置文件路径 |
--outdir | str | 否 | 配置值 | 覆盖输出目录 |
# 数据源配置
data_sources:
akshare: # 主数据源:A 股指数/板块/情绪/龙虎榜
enabled: true
cache_ttl: 3600
tushare: # 备用:资金流向
enabled: true
mx_data: # 期指数据(A50、沪深300)
enabled: true
api_key_env: "MX_APIKEY"
sina: # 新浪财经
enabled: true
cache_ttl: 1800
# 输出配置
output:
base_dir: "/Users/yibiao/Desktop/openclaw_doc/财经日报"
morning_subdir: "morning"
evening_subdir: "evening"
# 自选股路径
watchlist:
path: "config/watchlist.yaml"
# 发布配置
publish:
feishu_doc:
enabled: true
folder_token: ""
feishu_message:
enabled: false
target_chat_id: ""
pdf:
enabled: false
engine: "wkhtmltopdf"
watchlist:
- code: "002594.SZ"
name: "比亚迪"
note: "新能源车龙头"
- code: "300308.SZ"
name: "中际旭创"
note: "光模块龙头"
格式:xxxxxx.SZ(深市)、xxxxxx.SH(沪市)。建议 3-5 只核心持仓。
# 全部测试
./venv/bin/python3 -m pytest skills/a-share-daily-report/tests/ -v
# 分析模块(10 用例)
./venv/bin/python3 -m pytest skills/a-share-daily-report/tests/test_analyzer.py -v
# 渲染模块(5 用例)
./venv/bin/python3 -m pytest skills/a-share-daily-report/tests/test_renderer.py -v
generate_report.py (主控制器)
├── DataFetcher (数据采集, 1600+ 行)
│ ├── get_index_data() # 指数行情
│ ├── get_market_sentiment() # 市场情绪
│ ├── get_money_flow() # 资金流向
│ ├── get_sector_data() # 板块数据
│ ├── get_lhb_data() # 龙虎榜
│ ├── get_us_market() # 美股市场
│ ├── get_futures_data() # 期指数据
│ ├── get_news() # 新闻
│ ├── get_market_overview() # 市场全景
│ ├── get_market_depth() # 盘面深度
│ ├── get_major_indices() # 主要指数
│ ├── get_global_assets() # 全球资产
│ ├── get_industry_fund_flow() # 行业资金流
│ └── get_watchlist_performance() # 自选股行情
│
├── Analyzer (分析引擎, 978 行)
│ ├── generate_summary() # 30 秒总览
│ ├── analyze_watchlist_*() # 自选股分析
│ ├── generate_trading_strategy() # 交易策略
│ ├── analyze_focus_stocks() # 关注标的
│ ├── suggest_position() # 凯利公式仓位
│ ├── analyze_market_overview() # 市场全景
│ ├── analyze_technical_analysis() # 技术面分析
│ ├── analyze_comprehensive() # 综合分析
│ ├── analyze_theme_tracking() # 主题投资追踪
│ └── classify_news() # 新闻分级
│
├── Renderer (报告渲染, 878 行)
│ ├── render_morning_report()
│ └── render_evening_report()
│
└── Publisher (发布器)
├── publish_morning_report()
└── publish_evening_report()
数据流:采集 → 分析 → 渲染 → 保存 →(可选)发布
降级策略:主源失败 → 备用源 → Mock 数据。所有源失败时仍可生成报告。
| 数据项 | 主源 | 备用源 | 说明 |
|---|---|---|---|
| 指数数据 | akshare | yfinance | 实时行情含成交额 |
| 市场情绪 | akshare (涨停/连板) | Mock | 涨停家数、连板高度 |
| 资金流向 | akshare (北向资金) | Mock | 北向/主力净流入 |
| 行业板块 | akshare | Mock | 行业/概念板块涨跌 |
| 龙虎榜 | akshare | Mock | 机构游资买卖 |
| 美股数据 | yfinance | Mock | 纳指/标普/道指 |
| 期指数据 | mx-data API | Mock | A50/沪深300 期指 |
| 新闻 | mx-search API | Mock | 财经新闻 + 分级 |
| 全球资产 | mx-data API | Mock | 美元/黄金/原油 |
# 启用详细日志
export LOG_LEVEL=DEBUG
./venv/bin/python3 -m skills.a-share-daily-report.scripts.generate_report --mode morning
# 验证数据源连通性
./venv/bin/python3 -m skills.a-share-daily-report.scripts.verify_data_sources
# 验证数据真实性
./venv/bin/python3 -m skills.a-share-daily-report.scripts.verify_data_truth
FEISHU_NOTIFY_OPEN_ID 或 target_chat_id在 data_fetcher.py 中添加方法,返回统一格式:
def get_your_data(self, dt):
return {"success": True, "data": ..., "source": "your_source"}
在 analyzer.py 中添加方法,输入 data 字典,返回统一格式。
在 renderer.py 中修改对应的 render_*_report 方法。
状态:生产就绪 最后更新:2026-04-02