技能市场

本周宏观事件日历·非农CPI美联储议息

@user_2ckqg/macro-week-calendar

本周宏观事件日历:汇总本周重要经济数据和央行议息日程(如非农、CPI、FOMC),给出前值、预期和历史发布后的波动分布,方便提前安排。只做信息整理,不预测涨跌、不给买卖建议。

来源:千问AI平台金融服务数据分析MIT

本周宏观事件日历

什么时候用

  • 用户问「这周有什么数据 / 下周有什么重要事件 / 本周宏观日历」。
  • 用户问「非农什么时候公布 / CPI 几点出 / 美联储什么时候开会 / 下次议息还有几天」。
  • 用户问「CPI 前后美股一般怎么走 / 非农那天美元一般什么表现」——这是问历史分布,能答;如果他问的是「这次会怎么走」,那是预测,不答(见「边界」)。
  • 用户想看某个具体指标的历史数据(「美国失业率最近几个月什么水平」「10 年美债收益率现在多少」)。

用不着的场合:用户要的是买卖判断、仓位建议、点位预测。这个技能不提供,也不要拐弯抹角地提供。

运行要求

Node ≥ 18(node -v 确认),全部脚本零依赖、只用 Node 原生 fetch。Windows / macOS / Linux 通用。

四个数据源都是公开免费接口,不需要任何账号或密钥

来源 用途 是否要 key
ForexFactory 周历 JSON 本周/下周事件、共识、前值
美联储官网 FOMC 日历页 议息会议日程
FRED fredgraph.csv 公开接口 经济序列、市场日频序列 否(有 FRED_API_KEY 会更快更准)

网络不通时脚本会直接报错并说明原因,不会悄悄给一张空表。如果本机需要代理,先设 HTTPS_PROXY 环境变量再跑。

四个脚本

1. 周历:scripts/calendar.mjs

node {baseDir}/scripts/calendar.mjs [--week this|next] [--tz Asia/Shanghai] [--min-impact medium]
                                    [--country USD,EUR] [--out cal.md] [--json cal.json]
  • --week this 本周(默认),--week next 下周。ForexFactory 的「周」按美东周日起算,所以周六日跑 this 拿到的可能还是刚过去那一周,需要下周就明确加 --week next
  • 下周端点经常 404(ForexFactory 目前只稳定提供 thisweek 一个免费接口)。这时脚本会自动降级到内置的美国发布日排期:只有美国主要数据与 FOMC,没有前值/预期,日期按官方排期推算可能差一两天。报告开头会有一行 ⚠ 标注,这行必须转述给用户,别让他以为拿到了完整的全球周历。
  • --min-impact 默认 medium;用户说「只看最重要的」就用 high,说「全都要」就用 low休市(Holiday)无论门槛多高都会保留,因为它影响当天流动性。
  • --country 只看某几个国家(货币码:USD 美国、EUR 欧元区、CNY 中国、JPY 日本、GBP 英国…),默认全部。
  • 事件名中英对照表在 references/events-zh.json,先精确匹配全名,再按关键词匹配;表里没有的保留英文原名,不硬猜。要加词条直接改那个 JSON。
  • 输出末尾会单独列一段「重要度高」的事件,适合直接念给用户听。

2. 议息日程:scripts/fomc.mjs

node {baseDir}/scripts/fomc.mjs [--tz Asia/Shanghai] [--years 2026,2027] [--out f.md] [--json f.json]
  • 从美联储官网解析当年与次年(默认)的会议日期,决议日取会议最后一天,公布时间固定美东 14:00 —— 换成北京时间就是次日凌晨 02:00(夏令时)或 03:00(冬令时),报告里要把「次日凌晨」这四个字说出来,不然用户会记错一天。
  • 开头一句话直接给「下一次会议是哪天、距今几天、有没有点阵图」。季度会议(3/6/9/12 月)带经济预测摘要和主席发布会,市场关注度更高,可以顺带提一句。
  • 官网抓不到或页面结构变了(解析出的日期少于 8 个),会降级到内置的 2025–2027 官方排期表,并在报告里明确标注「用的是内置表、非实时」。这个标注必须转述给用户

3. 经济序列:scripts/fred.mjs

node {baseDir}/scripts/fred.mjs <序列ID> [--n 13] [--key $FRED_API_KEY] [--out s.md] [--json s.json]
node {baseDir}/scripts/fred.mjs --list      # 常用序列速查
  • 常用:CPIAUCSL CPI(季调)、CPIAUCNS CPI(未季调)、PCEPILFE 核心 PCE、PAYEMS 非农就业总人数、UNRATE 失业率、ICSA 初请失业金、RSAFS 零售销售、DGS10 10 年美债、SP500 标普 500、DTWEXBGS 美元指数。
  • 输出最近 13 期(--n 可调)的数值、环比、同比。
  • 三个已经踩过的坑,脚本已经处理,转述时也要注意
    1. FRED 的缺失值有 .空串两种写法,空串被当成 0 会算出离谱的环比 —— 脚本一律跳过并在报告里报「跳过了 N 条缺失值」。
    2. 缺报月(比如政府停摆那次)会让相邻两行跨两个月,这种时候环比留空并注明「中间有缺报」,不要按两个月的变化当成一个月讲。
    3. 同比要自己算,而且口径要对:季调序列(CPIAUCSL)算同比有口径偏差,要同比就用未季调序列(CPIAUCNS)。
  • 还有一个容易讲错的:参考期不是发布日。表里的 2026-08-01 指的是「8 月这个月的数据」,它是 9 月中旬才公布的。给用户念的时候要说「8 月的 CPI」,不要说「8 月 1 日的 CPI」。

4. 历史反应:scripts/reaction.mjs

node {baseDir}/scripts/reaction.mjs --event CPI [--n 12] [--dates 2026-09-11,...] [--out r.md] [--json r.json]
node {baseDir}/scripts/reaction.mjs --list
  • 支持的事件:CPI / NFP(非农)/ FOMC / PCE / PPI / RETAIL(零售),中文别名(非农、议息、零售…)也认。
  • 观察三个市场,全部取自 FRED 公开日频序列:标普 500(%)、美元指数 DTWEXBGS(%)、10 年期美债收益率(bp)
  • 三个窗口:事件日(公布当天收盘 vs 前一交易日)、次日±1 日合计。给出中位数、25/75 分位、极值、上涨占比。
  • 发布日来源:默认用 references/release-dates.json 的内置表(2024–2025 是核实过的实际发布日,2026 是按官方排期推算,报告里会标);设了 FRED_API_KEY 就改用 FRED 官方发布日历,更准。也可以用 --dates 直接指定。
  • 取不到数据就退出码 2 并说明原因,绝不编数。有效样本少于 3 次时那一项直接写「样本不足」,不出统计量。

报告口吻

  1. 时间一律换算成北京时间,并且每次都写明「北京时间」四个字。 美东 08:30 的数据对应北京时间 20:30(夏令时)/ 21:30(冬令时),FOMC 决议对应次日凌晨。别让用户自己换算,也别只给美东时间。
  2. 先讲结构,再讲细节:开头三句话说清「这周几件大事、分别在哪天、哪件最重要」,然后再上表。用户没问就不要把二三十行表格全念一遍。
  3. 前值/预期要说明来路:那是市场机构的共识值,不是官方数字,临近发布还会变。
  4. 不做预测。用户问「这次 CPI 会是多少」「会不会降息」,直接说这个技能只提供日程和历史数据,不预测。可以顺势给他 reaction.mjs 的历史分布,但要讲清那是历史、不是这一次。
  5. 不给交易建议。不说「适合埋伏」「注意规避风险」「建议减仓」这类话,也不暗示。用户追问就明说:不提供投资建议,具体决策请咨询有资质的持牌机构。
  6. 反应统计只描述分布,不下因果结论。正确说法是「过去 12 次 CPI 公布,标普当天变动的中位数是 +0.13%,一半以上的次数在 ±0.3% 以内」;错误说法是「CPI 公布后美股倾向于上涨」——十来个样本支撑不起「倾向」两个字,而且每次的背景(预期差、政策环境)都不一样。样本量必须报出来。
  7. 降级和缺数据要说出来,不能让用户以为拿到的是实时权威数据。报告里凡是带「内置表」「推算」「样本不足」「跳过缺失值」的标注,都要转述。
  8. 用户只问一件小事(「非农什么时候」),就答一句话加一个日期,不要甩一整份周历。

边界

  • 只做日程与历史统计。不预测数据值、不预测利率路径、不预测行情。
  • 不提供投资建议,包括但不限于买卖方向、点位、仓位、品种推荐。涉及具体投资决策时,明确请用户咨询有资质的持牌机构。
  • 不接任何交易所行情,不涉及虚拟货币、数字货币及其任何衍生品。市场反应统计只用公开的美股指数 / 美元指数 / 美债收益率(来源 FRED)。
  • 数据是第三方公开源:ForexFactory 的共识值是机构预期不是官方数字;FRED 数据会被修订;美联储官网页面结构变了脚本会降级。任何一处不确定,报告里都要标明,不许用确定的语气盖过去。
  • 取不到数据就说取不到(脚本退出码 2),不拿旧数据冒充新数据,不估算,不编。
  • 脚本只读公开接口,不写用户任何文件(除非用户自己指定 --out / --json 路径),不需要也不索取任何账号密码。FRED_API_KEY 是可选的,用户不给就走免 key 通道。

典型流程

  1. 用户问「这周有什么数据」→ calendar.mjs --week this --min-impact high → 先口头说三句话(几件大事、哪天、哪件最重要),再按需展开表格。
  2. 用户追问「非农是几号」→ 从上一步结果里直接答;问的是未来某次 → calendar.mjs --week next,还更远就说明周历只覆盖本周和下周,并用 fomc.mjs(议息)或内置发布日规律给个大概。
  3. 用户问「下次议息什么时候」→ fomc.mjs → 「下一次是 X 月 X 日,北京时间次日凌晨 02:00 公布,距今 N 天,这次带点阵图」。
  4. 用户问「CPI 最近几个月什么水平」→ fred.mjs CPIAUCSL(要同比就 CPIAUCNS)→ 讲最新一期的参考期、数值、环比同比,提醒参考期 ≠ 发布日。
  5. 用户问「CPI 前后美股一般怎么走」→ reaction.mjs --event CPI --n 12 → 报样本量和中位数、分位数,明确说这是历史分布、不预示这一次,并且不给操作建议。