Skill: zhelincheng/macro-news-signal (version 1.1.1)

--- name: macro-news-signal description: Macro News Signal is an intelligent market analysis skill that transforms real-time global news and key macro indicators into actionable investment insights. --- # 宏观新闻信号 ## 1. 概述 Macro News Signal 是一款智能市场分析工具，旨在通过自动化获取、深度解析、情感计算和多维聚合的工作流程，将碎片化的全球金融新闻与宏观经济指标转化为结构化、可操作的投资决策支持数据。 ## 2.工作流程 ``` 新闻请求 → 来源识别 → 自动化获取 → 解析与分析 → 信号生成 → 聚合输出 ``` ### 2.1 第一步：来源识别 根据请求识别合适的新闻来源： | 资产类别 | 主要来源 | 类型 | |-------------|-----------------|------| | 股票 | 同花顺、彭博社、CNBC | RSS | | 固定收益 | 美联储讲话、指数、英央行 | RSS/API | | 大宗商品 | EIA、欧佩克、金属公报 | 网页 | | 外汇 | 央行、MNI | 网页 | | 一般宏观 | 华尔街日报、金融时报、经济学人、联合早报 | RSS | | 股票指数 | Yahoo Finance | API | ### 2.2 第二步：数据获取（请严格遵守下面的方案） 所有数据来源均存在 `references/news_apis.md` 中。 #### 2.2.1 RSS订阅源、指数接口 请求方式 在获取RSS订阅源、指数接口时，需要先判断是否存在curl命令时，如果存在优先使用curl进行数据获取，示例如下： ```bash curl '地址' \ -H 'accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7' \ -H 'accept-language: zh-CN,zh;q=0.9' \ -H 'cache-control: no-cache' \ -H 'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36' ``` 当不存在curl命令时，使用默认方式进行数据获取，例如web_fetch。 #### 2.2.2 股票接口 请求方式 当请求股票接口 Yahoo Finance API 时，必须使用 `scripts/format.py` 对 Yahoo Finance API 原始响应进行格式化，转化为 AI 友好的线性数据结构： ```bash python3 scripts/format.py "<api_url>" ``` 详细 API 端点和数据格式参见 `references/news_apis.md` 中的 **Yahoo Finance API** 相关说明。 ### 2.3 第三步：解析与分析 该阶段利用自然语言处理 (NLP) 提取非结构化文本中的核心变量： 1. 实体提取 (NER)： 自动识别新闻中提到的特定资产（如 $NAS100$）、经济指标（如 $CPI$、$TIPS$）及关键人物或地理区域。 2. 情感极性标注： - 鹰/鸽分析 (Hawkish/Dovish)： 针对央行沟通，量化政策偏向。 - 利好/利空 (Bullish/Bearish)： 基于金融词典计算文本情感得分 $S$。 3. 预测值比对： 若新闻涉及经济数据发布，自动对比“实际值”与“预期值”，计算超预期偏差。 ### 2.4 第四步：信号生成 将解析后的分析转化为量化的投资逻辑： - 冲击等级： 划分为 Flash (瞬时波动)、Secondary (次要影响) 或 Trend-Setting (趋势级信号)。 - 指标相关性： 宏观指标，计算当前新闻对特定资产（如黄金与 10Y TIPS 收益率背离）的映射强度。 - 逻辑校验： 自动检测是否存在“利好出尽”或“情绪过热”的背离信号。 ### 2.5 第五步：聚合 按以下多维方式聚合分析结果，生成结构化报告： - 时间窗口： 每日综述、每周深度回顾。 - 核心主题： 通货膨胀、GDP、就业市场、央行动态、地缘政治。 - 地区： 美国、中国、欧盟、新兴市场。 - 资产类别建议： * 买入 (Buy)： 强利好信号且情绪合理。 * 持有 (Hold)： 信号中性或处于数据真空期。 * 卖出 (Sell)： 结构性利空或情感极度亢奋。 **输出格式：** 生成的报告必须严格遵循 `references/output_format.md` 中定义的模板结构，包括信号级别定义、资产信号定义和冲击强度定义。 ## 3. 定义 ### 3.1 信号级别定义 | 级别 | 说明 | 持续时间 | |------|------|---------| | **Trend-Setting** | 趋势级，影响未来数周至数月 | 长期 | | **Sustained** | 持续级，影响未来数天至数周 | 中期 | | **Flash** | 瞬时冲击，仅当时段有效 | 短期 | ### 3.2 资产信号定义 | 信号 | 含义 | |------|------| | 📈 买入 | 预计上涨，适合做多 | | 📉 卖出 | 预计下跌，适合做空 | | ➡️ 持有 | 预期震荡，适合观望 | ### 3.3 冲击强度定义 | 强度 | 说明 | |------|------| | 极高 | 重大黑天鹅，对市场有决定性影响 | | 高 | 重要事件，能引发显著市场波动 | | 中 | 常规事件，可能引发短期波动 | | 低 | 次要事件，市场影响有限 | ## 4. 资源 ### 4.1 references/ | 文件 | 内容 | |------|------| | `news_apis.md` | 新闻API文档、RSS订阅源、指数接口及 Yahoo Finance API | | `output_format.md` | 报告输出格式模板 | ### 4.2 scripts/ | 文件 | 内容 | |------|------| | `format.py` | Yahoo Finance API 数据格式化脚本，将嵌套 JSON 转为扁平化结构 |

path: README.md
content: [简体中文](./README_zh-CN.md) | **English**

# Macro News Signal

> **OpenClaw Skill** — Install at [https://clawhub.ai/zhelincheng/macro-news-signal](https://clawhub.ai/zhelincheng/macro-news-signal)

---

## Overview

Macro News Signal converts fragmented global financial news and macroeconomic indicators into **structured, actionable investment decision support data** through automated collection, deep parsing, sentiment analysis, and multi-dimensional aggregation.

## Demo

![Skill Result](./screenshot/result.png)

---

## Workflow

```
┌─────────────┐    ┌──────────────────┐    ┌───────────────┐
│ News Request │ -> │ Source Identify  │ -> │Automated Collect│
└─────────────┘    └──────────────────┘    └───────────────┘
                                                      │
                                                      v
┌─────────────┐    ┌──────────────────┐    ┌───────────────┐
│Aggregation  │ <- │ Signal Generation│ <- │Parsing & NLP  │
└─────────────┘    └──────────────────┘    └───────────────┘
```

---

## Step 1: Source Identification

Identify appropriate news sources based on request:

| Asset Class    | Main Sources                    | Type     |
|----------------|---------------------------------|----------|
| Equities       | 10JQKA, Bloomberg, CNBC        | RSS      |
| Fixed Income   | Fed Speeches, Indices, BoE      | RSS/API  |
| Commodities    | EIA, OPEC, Metals Bulletin      | Web      |
| Forex          | Central Banks, MNI              | Web      |
| General Macro  | WSJ, FT, Economist, Zaobao     | RSS      |

---

## Step 2: Collection

Use appropriate methods based on source type:

- **RSS Feeds**: See `references/news_apis.md`
- **Web Pages**: Prioritize agent-browser skill if available for dynamic access; otherwise use default scraping method
- **APIs**: See `references/news_apis.md`

Example curl request from `references/news_apis.md`:

```bash
curl 'url' \
  -H 'accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7' \
  -H 'accept-language: zh-CN,zh;q=0.9' \
  -H 'cache-control: no-cache' \
  -H 'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36'
```

---

## Step 3: Parsing & Analysis

This stage uses NLP to extract core variables from unstructured text:

### 1. Named Entity Recognition (NER)
Automatically identify specific assets (e.g., `$NAS100$), economic indicators (e.g., `$CPI$, `$TIPS`), and key persons or geographic regions.

### 2. Sentiment Polarity
| Type                  | Description                                              |
|-----------------------|----------------------------------------------------------|
| Hawkish/Dovish        | Quantify policy bias for central bank communications     |
| Bullish/Bearish       | Calculate text sentiment score $S$ based on financial dictionaries |

### 3. Forecast Comparison
When news involves economic data releases, automatically compare "actual" vs "expected" values and calculate deviation.

---

## Step 4: Signal Generation

Transform parsed analysis into quantified investment logic:

| Signal Type          | Description                                                                  |
|----------------------|------------------------------------------------------------------------------|
| **Impact Level**     | Flash (instantaneous volatility), Secondary (minor impact), Trend-Setting (major trend) |
| **Indicator Relevance** | Calculate mapping intensity to specific assets (e.g., gold vs 10Y TIPS yield divergence) |
| **Logic Validation** | Detect divergence signals such as "bullish exhaustion" or "overheated sentiment" |

---

## Step 5: Aggregation

Aggregate analysis results to generate structured reports:

- **Time Window**: Daily summary, weekly in-depth review
- **Core Themes**: Inflation, GDP, Employment, Central Bank Dynamics, Geopolitics
- **Region**: United States, China, European Union, Emerging Markets
- **Asset Class Recommendations**:

| Recommendation | Condition                                           |
|----------------|-----------------------------------------------------|
| *Buy*          | Strong bullish signal with reasonable sentiment     |
| *Hold*         | Neutral signal or data vacuum period               |
| *Sell*         | Structural bearish or extremely overheated sentiment |

---

## Resources

### references/

| File            | Content                                      |
|-----------------|----------------------------------------------|
| `news_apis.md`  | News API documentation and endpoints         |
| `output_format.md`| Output format              |

---

## License

MIT-0 License — This project is released into the public domain under the MIT-0 license with no rights reserved.


path: README_zh-CN.md
content: **English** | [简体中文](./README_zh-CN.md)

# 宏观新闻信号 (Macro News Signal)

> **OpenClaw Skill** — 安装地址：[https://clawhub.ai/zhelincheng/macro-news-signal](https://clawhub.ai/zhelincheng/macro-news-signal)

---

## 概述

宏观新闻信号是一款智能市场分析工具，旨在通过**自动化获取**、**深度解析**、**情感计算**和**多维聚合**的工作流程，将碎片化的全球金融新闻与宏观经济指标转化为结构化、可操作的投资决策支持数据。

## 演示

![运行效果](./screenshot/result.png)

---

## 工作流程

```
┌─────────────┐    ┌──────────────────┐    ┌───────────────┐
│ 新闻请求     │ -> │ 来源识别         │ -> │ 自动化获取     │
└─────────────┘    └──────────────────┘    └───────────────┘
                                                      │
                                                      v
┌─────────────┐    ┌──────────────────┐    ┌───────────────┐
│ 聚合输出     │ <- │ 信号生成         │ <- │ 解析与分析     │
└─────────────┘    └──────────────────┘    └───────────────┘
```

---

## 第一步：来源识别

根据请求识别合适的新闻来源：

| 资产类别   | 主要来源                           | 类型     |
|------------|-----------------------------------|----------|
| 股票       | 同花顺、彭博社、CNBC               | RSS      |
| 固定收益   | 美联储讲话、指数、英央行             | RSS/API  |
| 大宗商品   | EIA、欧佩克、金属公报               | 网页     |
| 外汇       | 央行、MNI                          | 网页     |
| 一般宏观   | 华尔街日报、金融时报、经济学人、联合早报 | RSS  |

---

## 第二步：获取

根据来源类型使用适当的方法：

- **RSS订阅源**：参见 `references/news_apis.md`
- **网页**：优先判断是否有 agent-browser 技能；若有，使用其进行动态访问；若无，使用默认方式抓取
- **API**：参见 `references/news_apis.md`

`references/news_apis.md` 中的请求示例：

```bash
curl 'url' \
  -H 'accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7' \
  -H 'accept-language: zh-CN,zh;q=0.9' \
  -H 'cache-control: no-cache' \
  -H 'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36'
```

---

## 第三步：解析与分析

该阶段利用自然语言处理 (NLP) 提取非结构化文本中的核心变量：

### 1. 实体提取 (NER)
自动识别新闻中提到的特定资产（如 `$NAS100$`）、经济指标（如 `$CPI$`、`$TIPS`）及关键人物或地理区域。

### 2. 情感极性标注

| 类型             | 说明                                       |
|------------------|-------------------------------------------|
| 鹰/鸽分析 (Hawkish/Dovish) | 针对央行沟通，量化政策偏向                  |
| 利好/利空 (Bullish/Bearish)  | 基于金融词典计算文本情感得分 $S$           |

### 3. 预测值比对
若新闻涉及经济数据发布，自动对比"实际值"与"预期值"，计算超预期偏差。

---

## 第四步：信号生成

将解析后的分析转化为量化的投资逻辑：

| 信号类型           | 说明                                                              |
|-------------------|-----------------------------------------------------------------|
| **冲击等级**       | Flash（瞬时波动）、Secondary（次要影响）、Trend-Setting（趋势级信号） |
| **指标相关性**     | 计算当前新闻对特定资产（如黄金与 10Y TIPS 收益率背离）的映射强度     |
| **逻辑校验**       | 自动检测是否存在"利好出尽"或"情绪过热"的背离信号                   |

---

## 第五步：聚合

按以下多维方式聚合分析结果，生成结构化报告：

- **时间窗口**：每日综述、每周深度回顾
- **核心主题**：通货膨胀、GDP、就业市场、央行动态、地缘政治
- **地区**：美国、中国、欧盟、新兴市场
- **资产类别建议**：

| 建议       | 条件                                           |
|-----------|----------------------------------------------|
| **买入 (Buy)**  | 强利好信号且情绪合理                           |
| **持有 (Hold)** | 信号中性或处于数据真空期                       |
| **卖出 (Sell)** | 结构性利空或情绪极度亢奋                       |

---

## 资源

### references/

| 文件            | 内容                                  |
|----------------|--------------------------------------|
| `news_apis.md`  | 新闻API文档和端点                    |
| `output_format.md`| 输出格式                      |

---

## 许可证

MIT-0 许可证 — 本项目以 MIT-0 许可证公开发布，不保留任何权利。


path: scripts/format.py
content: import urllib.request
import json
import sys  # 导入 sys 模块
from datetime import datetime

def fetch_and_format_stock_data(api_url):
    """
    仅使用 Python 标准库调用接口并构建 AI 友好结构
    """
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
    }
    
    try:
        req = urllib.request.Request(api_url, headers=headers)
        with urllib.request.urlopen(req) as response:
            if response.getcode() != 200:
                return {"error": f"HTTP Error: {response.getcode()}"}
            
            raw_data = response.read().decode('utf-8')
            data = json.loads(raw_data)
        
        result = data['chart']['result'][0]
        meta = result.get('meta', {})
        timestamps = result.get('timestamp', [])
        indicators = result.get('indicators', {}).get('quote', [{}])[0]
        
        formatted_context = {
           "symbol": meta.get("symbol"),
           "name": meta.get("longName"),
           "currency": meta.get("currency"),
           "exchange": meta.get("fullExchangeName"),
           "current_price": meta.get("regularMarketPrice"),
           "52_week_high": meta.get("fiftyTwoWeekHigh"),
           "52_week_low": meta.get("fiftyTwoWeekLow")
        }
        
        daily_history = []
        for i in range(len(timestamps)):
            date_str = datetime.fromtimestamp(timestamps[i]).strftime('%Y-%m-%d')
            
            def clean_val(val_list, index):
                if index < len(val_list) and val_list[index] is not None:
                    return round(val_list[index], 2)
                return None

            record = {
                "date": date_str,
                "open": clean_val(indicators.get('open', []), i),
                "high": clean_val(indicators.get('high', []), i),
                "low": clean_val(indicators.get('low', []), i),
                "close": clean_val(indicators.get('close', []), i),
                "volume": indicators.get('volume', [])[i] if i < len(indicators.get('volume', [])) else None
            }
            daily_history.append(record)
            
        return {"metadata": formatted_context, "data_points": daily_history}

    except Exception as e:
        return {"error": f"Internal process error: {str(e)}"}

# --- 命令行逻辑 ---
if __name__ == "__main__":
    # sys.argv 是一个列表，第一个元素是脚本名，第二个元素才是传入的参数
    if len(sys.argv) < 2:
        print("错误: 请提供 API URL。")
        print('用法: python3 scripts/format.py "https://api.example.com/data"')
        sys.exit(1)

    # 获取命令行传入的第一个参数
    api_url = sys.argv[1]
    
    result = fetch_and_format_stock_data(api_url)
    
    # 直接输出 JSON 字符串到终端
    print(json.dumps(result, indent=2, ensure_ascii=False))

path: references/news_apis.md
content: # 新闻API参考

## 1. RSS订阅源

### 1.1 主要金融新闻RSS

| 来源           | URL                                                     | 覆盖范围       | 说明               |
| -------------- | ------------------------------------------------------- | -------------- | ------------------ |
| 彭博社最新报道 | https://bbg.buzzing.cc/feed.json                        | 最新新闻       | Folo订阅地址       |
| 彭博社         | https://feeds.bloomberg.com/markets/news.rss            | 市场           | 无                 |
| CNBC           | https://www.cnbc.com/id/100003114/device/rss/rss.html   | 商业           | 无                 |
| 金融时报       | https://www.ft.com/rss/home                             | 全球金融       | 无                 |
| 华尔街日报市场 | https://feeds.a.dj.com/rss/RSSMarketsMain.xml           | 市场           | 无                 |
| 经济学人       | https://www.economist.com/finance-and-economics/rss.xml | 宏观/金融      | 无                 |
| 联合早报       | http://rss.spriple.org/zaobao/realtime/world            | 国际-即时      | RSSHub公共实例地址 |
| 同花顺         | https://rss.spriple.org/10jqka/realtimenews             | 24小时全球财经 | RSSHub公共实例地址 |

#### 来源说明：

1. 彭博社最新报道Folo订阅查询：https://app.folo.is/share/feeds/70844804758158336
2. RSSHub公共实例查询：https://docs.rsshub.app/zh/guide/instances

以上来源均可查，属于Folo和RSSHub官方提供，可做为可信来源。

### 1.2 央行RSS

| 来源     | URL                                                | 覆盖范围   |
| -------- | -------------------------------------------------- | ---------- |
| 美联储   | https://www.federalreserve.gov/feeds/press_all.xml | 美联储声明 |
| 英国央行 | https://www.bankofengland.co.uk/rss                | 英央行声明 |

## 2. 指数接口

| 来源                  | URL                                                                                                                                                                   | 数据位置                                   |
| --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------ |
| US10YTIP              | https://quote.cnbc.com/quote-html-webservice/restQuote/symbolType/symbol?symbols=US10YTIP&requestMethod=itv&noform=1&partnerId=2&fund=1&exthrs=1&output=json&events=1 | FormattedQuoteResult.FormattedQuote[].last |
| ICE U.S. Dollar Index | https://quote.cnbc.com/quote-html-webservice/restQuote/symbolType/symbol?symbols=.DXY&requestMethod=itv&noform=1&partnerId=2&fund=1&exthrs=1&output=json&events=1     | FormattedQuoteResult.FormattedQuote[].last |
| Gold COMEX            | https://quote.cnbc.com/quote-html-webservice/restQuote/symbolType/symbol?symbols=%40GC.1&requestMethod=itv&noform=1&partnerId=2&fund=1&exthrs=1&output=json&events=1  | FormattedQuoteResult.FormattedQuote[].last |
| ICE Brent Crude  | https://quote.cnbc.com/quote-html-webservice/restQuote/symbolType/symbol?symbols=%40LCO.1&requestMethod=itv&noform=1&partnerId=2&fund=1&exthrs=1&output=json&events=1  | FormattedQuoteResult.FormattedQuote[].last |




## 3. 股票接口

### 3.1 全球主要指数（Yahoo Finance API）
Yahoo Finance API 调用方式请参考 **3.2 Yahoo Finance API调用方式及数据说明**
该接口会响应最近五个交易日的指数数据。

#### 3.1.1 🇺🇸 美国
| 指数 | Symbol | API | 时区 | 开盘 | 收盘 | 市场类型 | ETF |
|------|--------|-----|------|------|------|----------|-----|
| 标普500 | ^GSPC | https://query1.finance.yahoo.com/v8/finance/chart/^GSPC?range=5d&interval=1d | America/New_York | 09:30 | 16:00 | developed | SPY |
| 纳斯达克综合 | ^IXIC | https://query1.finance.yahoo.com/v8/finance/chart/^IXIC?range=5d&interval=1d | America/New_York | 09:30 | 16:00 | developed | QQQ |
| 道琼斯工业 | ^DJI | https://query1.finance.yahoo.com/v8/finance/chart/^DJI?range=5d&interval=1d | America/New_York | 09:30 | 16:00 | developed | DIA |
| 罗素2000 | ^RUT | https://query1.finance.yahoo.com/v8/finance/chart/^RUT?range=5d&interval=1d | America/New_York | 09:30 | 16:00 | developed | IWM |

---

#### 3.1.2 🇨🇳 中国
| 指数 | Symbol | API | 时区 | 开盘 | 收盘 | 市场类型 | ETF |
|------|--------|-----|------|------|------|----------|-----|
| 上证指数 | 000001.SS | https://query1.finance.yahoo.com/v8/finance/chart/000001.SS?range=5d&interval=1d | Asia/Shanghai | 09:30 | 15:00 | emerging | - |
| 深证成指 | 399001.SZ | https://query1.finance.yahoo.com/v8/finance/chart/399001.SZ?range=5d&interval=1d | Asia/Shanghai | 09:30 | 15:00 | emerging | - |
| 创业板指 | 399006.SZ | https://query1.finance.yahoo.com/v8/finance/chart/399006.SZ?range=5d&interval=1d | Asia/Shanghai | 09:30 | 15:00 | emerging | - |
| 沪深300 | 000300.SS | https://query1.finance.yahoo.com/v8/finance/chart/000300.SS?range=5d&interval=1d | Asia/Shanghai | 09:30 | 15:00 | emerging | 510300.SS |

---

#### 3.1.3 🇭🇰 中国香港
| 指数 | Symbol | API | 时区 | 开盘 | 收盘 | 市场类型 | ETF |
|------|--------|-----|------|------|------|----------|-----|
| 恒生指数 | ^HSI | https://query1.finance.yahoo.com/v8/finance/chart/^HSI?range=5d&interval=1d | Asia/Hong_Kong | 09:30 | 16:00 | developed | 2800.HK |

---

#### 3.1.4 🇪🇺 欧洲
| 指数 | Symbol | API | 时区 | 开盘 | 收盘 | 市场类型 | ETF |
|------|--------|-----|------|------|------|----------|-----|
| 德国DAX | ^GDAXI | https://query1.finance.yahoo.com/v8/finance/chart/^GDAXI?range=5d&interval=1d | Europe/Berlin | 09:00 | 17:30 | developed | EWG |
| 英国富时100 | ^FTSE | https://query1.finance.yahoo.com/v8/finance/chart/^FTSE?range=5d&interval=1d | Europe/London | 08:00 | 16:30 | developed | EWU |
| 法国CAC40 | ^FCHI | https://query1.finance.yahoo.com/v8/finance/chart/^FCHI?range=5d&interval=1d | Europe/Paris | 09:00 | 17:30 | developed | EWQ |
| 欧洲Stoxx50 | ^STOXX50E | https://query1.finance.yahoo.com/v8/finance/chart/^STOXX50E?range=5d&interval=1d | Europe/Brussels | 09:00 | 17:30 | developed | FEZ |

---

#### 3.1.5 🇯🇵 日本
| 指数 | Symbol | API | 时区 | 开盘 | 收盘 | 市场类型 | ETF |
|------|--------|-----|------|------|------|----------|-----|
| 日经225 | ^N225 | https://query1.finance.yahoo.com/v8/finance/chart/^N225?range=5d&interval=1d | Asia/Tokyo | 09:00 | 15:00 | developed | 1321.T |

---

#### 3.1.6 🌏 其他市场
| 国家 | 指数 | Symbol | API | 时区 | 开盘 | 收盘 | 市场类型 | ETF |
|------|------|--------|-----|------|------|------|----------|-----|
| 🇮🇳 印度 | NIFTY 50 | ^NSEI | https://query1.finance.yahoo.com/v8/finance/chart/^NSEI?range=5d&interval=1d | Asia/Kolkata | 09:15 | 15:30 | emerging | INDA |
| 🇮🇳 印度 | SENSEX | ^BSESN | https://query1.finance.yahoo.com/v8/finance/chart/^BSESN?range=5d&interval=1d | Asia/Kolkata | 09:15 | 15:30 | emerging | - |
| 🇰🇷 韩国 | KOSPI | ^KS11 | https://query1.finance.yahoo.com/v8/finance/chart/^KS11?range=5d&interval=1d | Asia/Seoul | 09:00 | 15:30 | developed | EWY |
| 🇦🇺 澳大利亚 | ASX 200 | ^AXJO | https://query1.finance.yahoo.com/v8/finance/chart/^AXJO?range=5d&interval=1d | Australia/Sydney | 10:00 | 16:00 | developed | EWA |
| 🇨🇦 加拿大 | S&P/TSX | ^GSPTSE | https://query1.finance.yahoo.com/v8/finance/chart/^GSPTSE?range=5d&interval=1d | America/Toronto | 09:30 | 16:00 | developed | EWC |

### 3.2 Yahoo Finance API调用方式

调用 Yahoo Finance 接口必须使用 `scripts/format.py` 他会将原始复杂的嵌套 JSON 响应转化为**线性、扁平化且具备上下文语义**的数据结构。

#### 3.2.1 Metadata (资产背景)
| 字段名 | 类型 | 说明 | 示例 |
| :--- | :--- | :--- | :--- |
| `symbol` | String | 证券/指数代码 | "000001.SS" |
| `name` | String | 证券全称 | "SSE Composite Index" |
| `currency` | String | 交易货币单位 | "CNY" |
| `exchange` | String | 交易所全称 | "Shanghai" |
| `current_price`| Float | 最近一个交易日的成交价 | 3880.1 |
| `52_week_high` | Float | 过去 52 周的最高点 | 4197.23 |
| `52_week_low`  | Float | 过去 52 周的最低点 | 3040.69 |

#### 3.2.2 Data Points (时间序列)
`data_points` 是一个包含历史交易数据的数组。

| 字段名 | 类型 | 说明 | 优化处理 |
| :--- | :--- | :--- | :--- |
| `date` | String | 交易日期 (YYYY-MM-DD) | 已从时间戳转换 |
| `open` | Float | 当日开盘价 | 保留 2 位小数 |
| `high` | Float | 当日最高价 | 保留 2 位小数 |
| `low` | Float | 当日最低价 | 保留 2 位小数 |
| `close` | Float | 当日收盘价 | 保留 2 位小数 |
| `volume` | Integer| 当日成交量 | 原始数值 |

---

#### 3.2.3 示例 JSON 响应

```json
{
  "metadata": {
    "symbol": "000001.SS",
    "name": "SSE Composite Index",
    "currency": "CNY",
    "exchange": "Shanghai",
    "current_price": 3880.1,
    "52_week_high": 4197.23,
    "52_week_low": 3040.69
  },
  "data_points": [
    {
      "date": "2026-03-30",
      "open": 3884.28,
      "high": 3924.29,
      "low": 3872.78,
      "close": 3923.29,
      "volume": 595600
    },
    {
      "date": "2026-03-31",
      "open": 3924.07,
      "high": 3948.81,
      "low": 3891.86,
      "close": 3891.86,
      "volume": 606700
    }
  ]
}
```

## 4. 扩展数据
除了上述固定的一些接口，你也可以访问 https://tradingeconomics.com/ 获取到所有指数和商品价格

path: references/output_format.md
content: # 宏观新闻信号报告 - 输出格式说明

本文档定义宏观新闻信号报告的标准输出格式。

---

# 📊 宏观新闻信号报告
**覆盖时间：[日期]（最近24小时）**

---

## 一、核心事件：[事件标题]

### 概要

**一句话摘要。**

- [要点1]
- [要点2]
- [要点3]
- [要点4]

### 重点新闻

- [新闻1](新闻链接1)
- [新闻2](新闻链接2)
- [新闻3](新闻链接3)

> **信号级别：[Trend-Setting/Flash/Sustained]** | 冲击强度：[极高/高/中/低]

---

## 二、[主题分类] — [方向]

| 指标 | 实际值 | 预期值 | 评判 |
|------|--------|--------|------|
| [指标1] | [值] | [值] | **[判定]** |

- [补充说明]
- [补充说明]

> **信号级别：[Trend-Setting/Flash/Sustained]** | [市场影响描述]

---

## 三、市场行情
下面展示：债券市场、 美元、黄金、上证指数、纳斯达克、标普数据

| 品种 | 数值 | 日变化 |
|------|------|--------|
| [品种1] | **[数值]** | [变化] |
| [品种2] | **[数值]** | [变化] |

- [市场分析]
- [市场分析]

> **[品种]：[方向] | [品种]：[方向]**

---

## 四、能源 & 大宗商品

- **[事件描述]**，影响：[影响说明]
- **[事件描述]**，影响：[影响说明]
- **[事件描述]**，影响：[影响说明]

---

## 五、其他重要宏观

| 事件 | 详情 | 市场影响 |
|------|------|---------|
| [国家] [事件] | [说明] | [影响] |
| [国家] [事件] | [说明] | [影响] |

---

## 六、最近大事日历（[日期]起）

- 🔜 [MM-DD][美联储议息会议]
- 🔜 [事件2]
- 🔜 [事件3]


---

## 综合信号汇总

| 资产类别 | 信号 | 评级 | 核心逻辑 |
|----------|------|------|---------|
| **A股** | 📈 买入 | [评级理由] | [逻辑说明] |
| **美股** | 📈 买入 | [评级理由] | [逻辑说明] |
| **美债** | 📉 卖出 | [评级理由] | [逻辑说明] |
| **美元** | ➡️ 持有 | [评级理由] | [逻辑说明] |
| **原油/能源** | 📈 买入 | [评级理由] | [逻辑说明] |
| **黄金** | 📈 买入 | [评级理由] | [逻辑说明] |
| **欧元** | 📉 卖出 | [评级理由] | [逻辑说明] |
| **食品/农业** | 📈 买入 | [评级理由] | [逻辑说明] |

---

> ⚠️ **最大风险提示：** [风险描述]。数据截止：[ISO时间戳]。

---


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (HIGH)