AI PLAY玩法更新持续收录
← 回到更新流

2026-09-11 · 原文发布日

n8n模板:每个工作日早晨自动生成市场行情简报

这个免费模板在每个工作日早上定时运行,分别从Twelve Data、CoinGecko、FRED、QuantGist、Marketaux拉取行情、加密币价、美债十年期收益率、宏观日历和市场新闻,统一清洗并记录数据源健康状况后交给OpenAI生成严格JSON格式的简报,校验字段后排成HTML发到Telegram,同时把全文与原始数据存入Postgres便于追溯。需要自备多家API密钥和Telegram机器人。

原文要点

这是n8n.io上的免费模板(作者Dragan)。工作流每个工作日07:45(Europe/Berlin)运行,分别从Twelve Data取ETF/外汇行情、CoinGecko取加密币价、FRED取美债十年期收益率、QuantGist取宏观日历、Marketaux取市场新闻;各源响应统一归一化并记录数据源健康状况(不臆测缺失数据),合并后交OpenAI生成严格JSON格式、带单一market_regime标签的简报,校验字段(含regime枚举与数组字段)后排成HTML发Telegram,同时把全文与原始数据插入Postgres的public.briefings表。

这次做成什么

照着该免费模板搭一条“五源抓取→归一化→AI出严格JSON简报→校验→Telegram+Postgres双落点”的每日链路,并用本站合成数据先跑通校验与入库逻辑。

准备什么

  • n8n实例及该免费模板
  • Twelve Data、CoinGecko、FRED、QuantGist、Marketaux五家的API key(部分有免费档,以各官网为准)
  • OpenAI API凭据;模板配置模型写作gpt-5.6-luna,你的账号若无此模型需在节点里改成可用模型
  • 一个Telegram bot及其chat ID,一个可用的Postgres库

具体怎么做

  1. 导入模板并核对五源节点

    导入免费模板后,逐个检查五个HTTP请求节点的鉴权方式(header或query)、追踪的交易品种/国家/语言过滤和调度时区;本文未核验其内部字段,导入后以模板实际参数为准,先保留默认范围跑通再收窄。

  2. 建Postgres表

    在目标库执行本文给的建表SQL,列名与类型对齐模板INSERT语句所需的jsonb字段(assets/events/news/drivers/opportunities/watch_next/raw_sources);若模板实际列名不同,以模板为准调整SQL。

  3. 配凭据并手动试跑一次

    填入五家API key、OpenAI凭据、Telegram bot与chat ID、Postgres凭据,手动触发一次工作流,观察每个数据源节点的健康状态输出,确认失败源被记录而不是被静默吞掉。

  4. 验证JSON校验与两个输出

    检查AI输出节点后的校验逻辑:market_regime必须落在允许枚举内、数组字段必须为数组。确认Telegram收到排版后的HTML简报,且Postgres的public.briefings新增一行、raw_sources里能找回本次原始数据。

可直接复制的材料

briefings建表SQL(独立示例)

本站按模板描述独立编写的示例表结构;导入模板后请与其INSERT语句逐列核对,不一致时以模板为准。

CREATE TABLE IF NOT EXISTS public.briefings (
  id            BIGSERIAL PRIMARY KEY,
  created_at    TIMESTAMPTZ NOT NULL DEFAULT now(),
  headline      TEXT,
  summary       TEXT,
  market_regime TEXT,
  assets        JSONB,
  events        JSONB,
  news          JSONB,
  drivers       JSONB,
  opportunities JSONB,
  watch_next    JSONB,
  raw_sources   JSONB
);

严格JSON简报生成提示词(独立改写版)

本站独立编写的替代提示词,复刻模板“严格JSON+单一regime标签”的要求;模板原提示词与regime枚举值以导入后节点为准。

你是宏观市场简报编辑。下面是今日五个数据源的归一化JSON与各源健康状态。只基于给定数据写作,某源缺失或报错时明确标注,不得编造行情数字。
输出必须是单个JSON对象,不要任何额外文字,字段如下:
{
  "headline": 字符串, 不超过40字,
  "summary": 字符串, 120字以内,
  "market_regime": 只允许 ["risk-on","risk-off","mixed","low-volatility"] 之一,
  "assets": 数组, 每项含 name/change_pct/direction,
  "events": 数组, 今日宏观事件,
  "news": 数组, 最多5条要闻标题,
  "drivers": 数组, 主要驱动因素,
  "opportunities": 数组,
  "watch_next": 数组
}
数据:{{ $json.normalized }}
源健康状态:{{ $json.sourceHealth }}

归一化后的合成输入数据

本站虚构练习数据,可用于在缺key时手工喂给AI节点后的校验环节做联调。

{
  "normalized": {
    "markets": [{ "symbol": "SPY", "change_pct": 0.6 }, { "symbol": "EURUSD", "change_pct": -0.2 }],
    "crypto": [{ "symbol": "BTC", "change_pct": 1.8 }],
    "us10y_yield": 4.21,
    "macro_events": [{ "time": "14:30", "event": "德国CPI初值" }],
    "news": [{ "title": "欧洲央行官员暗示暂缓降息" }]
  },
  "sourceHealth": { "twelve_data": "ok", "coingecko": "ok", "fred": "ok", "quantgist": "ok", "marketaux": "error_timeout" }
}

输入与输出示例

本站虚构演示输出,字段与示例输入一一对应,非OpenAI实际返回。

输入

以上合成数据:SPY +0.6%、EURUSD -0.2%、BTC +1.8%、美债10Y 4.21%、一条德国CPI事件,marketaux新闻源超时

对应输出

{"headline":"风险偏好温和回升,美股走高美元小跌","summary":"ETF与加密资产同步走强,美债10Y收益率4.21%,午后关注德国CPI;新闻源今日超时未取。","market_regime":"risk-on","assets":[{"name":"SPY","change_pct":0.6,"direction":"up"},{"name":"BTC","change_pct":1.8,"direction":"up"}],"events":[{"time":"14:30","event":"德国CPI初值"}],"news":["欧洲央行官员暗示暂缓降息"],"drivers":["加密资产走强","收益率持稳"],"opportunities":["CPI公布前波动率机会"],"watch_next":["德国CPI初值"]}

做完检查这些

  • 五个数据源各自的健康状态在合并数据中可见,超时源被标注为error而非被当作正常空数据
  • AI输出未通过regime枚举或数组校验时工作流会拦截,不会把坏JSON直接发Telegram
  • 手动触发后Telegram收到含标题与正文的HTML消息,且不超过Telegram单条消息长度限制
  • public.briefings新增一行,raw_sources字段里能找回本次五个源的原始返回

容易卡住的地方

  • 五家API都要单独申请key,免费档有调用频率限制,每日跑也要注意配额
  • 模板所写模型gpt-5.6-luna在你的OpenAI账号可能不可用,需在节点改选实际可用模型,费用以你的账号为准
  • 调度固定在07:45 Europe/Berlin,国内使用时需自行改时区与时刻
  • Telegram单条消息约4096字符上限,简报过长时需拆分或截断
  • 本文SQL与提示词为本站独立示例,与模板内部真实字段可能存在出入,导入后必须核对

原文与作者资料 ↗

本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。

原文标题
Send daily AI market briefings to Telegram, Discord and Postgres with OpenAI, Twelve Data, CoinGecko, FRED, QuantGist and Marketaux
原作者
Dragan
原始发布日期
2026-09-10T20:09:15.352Z
来源
https://n8n.io/workflows/19457