美股宏观环境快照(12+ 指标)、大盘指数环境、PE 历史百分位、市场策略蓝图。
| 文件 | 职责 |
|---|---|
us_macro.py |
USMacroSnapshot 美股宏观指标采集(线程池 US_MACRO)。Treasury.gov 黄线/T-bill CSV 抓取统一走 _fetch_treasury_yield_curve_row()(httpx + pandas.read_csv,一次抓取被 fed-rate 与 yield-curve 两路共享,存 us_macro_fast namespace);CNN F&G 与 TradingEconomics 抓取也统一用 httpx,无 requests 依赖 |
us_market_env.py |
USMarketEnv 大盘指数环境 + PE 百分位 |
market_news.py |
市场新闻 IO 边界(Jin10 flash + Eastmoney SPY 聚合),供 pipeline shared_prefetch 调用。HTTP 层使用 httpx |
profile.py |
市场画像(特征聚合) |
strategy.py |
市场策略匹配(行情特征 → 策略建议) |
__init__.py |
导出 |
美股宏观指标采集,12 个指标分为快指标(实时)和慢指标(可缓存 24h)。
-
fetch() -> dict— 获取完整宏观快照- 返回:
{ "fed_rate": 3.7, # 联邦基金利率 "cpi_yoy": 2.4, # CPI 同比 "unemployment": 4.3, # 失业率 "nfp": 13.0, # 非农就业(万人) "vix": 33.53, # VIX 恐慌指数 "treasury_10y": 4.31, # 10 年期国债收益率 "treasury_2y": 3.79, # 2 年期国债收益率 "gold": 4701.7, # 黄金价格 "oil": 112.04, # 原油价格 "dxy": ..., # 美元指数 "sp500_pe": ..., # 标普 500 PE "yield_spread": ..., # 期限利差(10Y-2Y) }
- 返回:
-
get_market_value_trend(code: str) -> dict— 个股市值趋势(30 天变化)- 返回:
{latest, 30d_ago, change_pct}
- 返回:
- 快指标(每次获取): VIX, 国债收益率, 黄金, 原油
- 慢指标(缓存 24h): 联邦基金利率, CPI, 失业率, 非农
- 日志:
Fetching N indicators (M slow indicators cached)
大盘指数环境。
-
fetch() -> dict— 获取四大指数快照- 返回: 道琼斯/纳斯达克/纳斯达克100/标普500 的
{price, daily_change, 5d_change, 20d_change, trend} - trend:
📈 上涨趋势/📉 下跌趋势/📊 震荡
- 返回: 道琼斯/纳斯达克/纳斯达克100/标普500 的
-
get_pe_percentile(code: str) -> dict— PE 历史百分位(近 1 年)- 返回:
{ "current_pe": 31.9, "min_pe": 21.87, "max_pe": 35.91, "median_pe": 31.03, "mean_pe": 30.09, "percentile": 59, # 百分位 "zone": "合理", # 低估/合理/偏高/高估 "data_days": 251, } - 分位判断: <25% 低估, 25-75% 合理, >75% 偏高, >90% 高估
- 返回:
市场策略蓝图,根据宏观环境和大盘趋势生成策略建议。
generate(macro: dict, market_env: dict) -> dict— 生成市场蓝图- 返回:
{regime, risk_level, sector_bias, strategy_hints}
- 返回:
- 依赖:
akshare、yfinance、tickbridge、config - 被依赖:
pipeline(宏观数据注入)、agent(market_tools)
无专属配置项,使用 tickbridge 的数据源。
- 宏观数据通过 akshare 获取,部分指标可能因网络问题返回 None
- 慢指标缓存在内存中(L1 TTLCache),重启后需重新获取
- PE 百分位基于 xueqiu 的动态 PE 数据,数据天数可能不足 251 天
- VIX > 30 标记为"恐慌",20-30 为"焦虑",<20 为"平静"