生成每日金融市场 PPT 简报

Other

根据采集的市场数据,按照 E:\daily\cankao\M2.pptx 模板生成每日金融市场 PPT 简报。 当用户要求"生成 PPT 简报"、"生成 PPT"、"制作 PPT"、 或触发"生成每日金融日报"流程的第三步时使用。

Install

openclaw skills install generate-ppt-report

PPT 报告生成 Skill

配置来源workspace-yoyo/config.py

模板路径

  • 模板文件:E:\daily\cankao\M2.pptx
  • 输出目录:E:\daily\{YYYY-MM-DD}\
  • 输出文件名:金融市场简报_{YYYYMMDD}.pptx

PPT 结构(单页 Dashboard)

重要:M2.pptx 是单页 Dashboard 布局(只有 1 张幻灯片),内容分布在多个文本框(Shape)中:

Shape ID内容类型说明
5封面标题"每日环球市场速览"
6市场表现美国 / 中国及中国香港 / 黄金
12标签★市场表现
14标签★政策
15政策内容美国 / 欧洲 / 中国
18结尾内部资料,切勿随意转发
20标签★企业
23企业内容美国 / 中国及中国香港

数据分类规则

关键原则:严格按 market_data.json 的分类模块取数,不同分类的数据不会混用。

Shape内容数据来源(market_data.json)
Shape 6 市场表现美国(美股/美债/美元/就业)/ 中国及中国香港(A股/港股)/ 黄金市场表现 模块下的子项
Shape 15 政策美国 / 欧洲 / 中国政策动态 模块
Shape 23 企业美国 / 中国及中国香港企业动态 模块

分类边界

  • 政策类(Shape 15):政府/监管机构发布的法规、监管措施、行政决策

    • ✅ 正确:"美国司法部终止对美联储主席鲍威尔的刑事调查" → 政策动态·美国
    • ❌ 错误:不能放入企业类
  • 企业类(Shape 23):上市企业经营动态、财报、并购、人事

    • ✅ 正确:"丰田换帅:日系车阵营加速分裂" → 企业动态·日本
    • ❌ 错误:不能放入政策类
  • 市场表现类(Shape 6):指数涨跌、价格波动、市场情绪

    • ✅ 正确:"A股三大指数4月25日收跌,创业板指跌1.41%" → 市场表现·A股
    • ✅ 正确:"恒生指数收涨0.24%,港股主要指数涨跌分化" → 市场表现·港股
    • ❌ 错误:不能放入企业类

填充规则

Shape 6(市场表现)

market_data.json市场表现 模块取数:

子类指标格式
美国道琼斯工业平均指数、标普500指数、纳斯达克综合指数道指涨0.13%报49230.71点
10年期美债收益率、2年期美债收益率10年期4.25%
美元指数(DXY)美元指数涨0.33%报98.38
挑战者企业裁员/当周初请/四周均值/续请失业金挑战者企业裁员当月5.0万人 前值6.2万人;上周初请失业金人数:21.0万人,预期22.0万人,前值22.5万人;四周均值:21.8万人,前值自22.0万人修正至21.5万人;至当日续请失业金人数:184.0万人,预期186.0万人,前值自187.0万人修正至186.5万人
中国及中国香港上证指数、深证成指、创业板指、沪深300上证指数跌0.33%报4079.90点
恒生指数、恒生科技指数恒生指数涨0.24%报25978.07点
黄金现货黄金(XAUUSD)、COMEX黄金期货现货黄金上涨0.32%报4709.24美元/盎司;COMEX黄金期货下跌0.15%报4712.50美元/盎司

Shape 15(政策)

market_data.json政策动态 模块取数,取各地区第一条政策动态的内容字段(前120字截断)作为正文,与 Word build_policy 一致:

policy = mdata.get('政策动态', {})
items = policy.get('美国', [])  # list of {标题, 内容, 来源, 时间}
if items:
    title = items[0].get('标题', '')  # 取第一条政策标题

Shape 23(企业)

market_data.json企业动态 模块取数,取各地区第一条企业动态的公司名+事件简述作为正文:

enterprise = mdata.get('企业动态', {})
items = enterprise.get('美国', [])  # list of {公司, 事件, 时间, 来源}
if items:
    company = items[0].get('公司', '')
    event = items[0].get('事件', '')
    text = company + ':' + event[:60]  # 公司名+事件简述(限80字)

关键约束

  1. 严格分类:政策类数据只从 政策动态 取,企业类数据只从 企业动态 取,市场表现类数据只从 市场表现
  2. 只修改文字:保持模板样式、颜色、布局完全不变
  3. Shape ID 定位:通过 shape.shape_id 精确匹配文本框
  4. 数字格式:与 Word 报告保持一致(例:道指跌0.13%报49230.71点)

脚本

执行:本 Skill 的 scripts/generate_ppt.py