> 数据源: AKShare + Tushare Pro (双引擎) + WebSearch | 后端: futures-monitor REST API
期货分析 (futureanalyse v3.0)
│
├── analyze.py ─────────── 技术面: AKShare futures_main_sina
│
├── futures-monitor API ── 行情快照: GET /api/daily
│ │ 持仓排名: GET /api/holding
│ │ 仓单数据: GET /api/warehouse
│ │ 宏观数据: GET /api/macro/pmi|money|gdp
│ │ 南华指数: GET /api/nanhua
│ (AKShare + Tushare 双引擎, 自动回退)
│
└── WebSearch ──────────── 基本面供需 / 情绪面舆情 / 突发事件
| 参数 | 必填 | 示例 | 说明 |
|---|---|---|---|
| ------ | ------ | ------ | ------ |
| 期货品种 | ✅ | 沪锡 生猪09 螺纹钢 SC原油 黄金 | 中文名称、合约月份、拼音代码均可 |
| 分析周期 | ❌ | 日线 4小时 周线 | 默认日线 |
| 分析侧重 | ❌ | 技术面 基本面 快速研判 交易计划 | 默认综合分析 |
特殊格式: 品种+月份 如 生猪09 → 分析LH2609合约 + 主力合约对比
Phase 1: 环境准备 → Phase 1.5: 启动数据服务 → Phase 2: 数据采集
→ Phase 3-5: 多维分析 → Phase 6: 综合研判 → Phase 7: 输出报告
pip install akshare pandas numpy scipy tushare -q 2>&1 | tail -3
确认 analyze.py 在 skill 目录下可用。
检查 127.0.0.1:8765 是否已运行:
curl -s http://127.0.0.1:8765/health 2>/dev/null || echo "未启动"
如未启动:
cd futures-monitor && python server.py -p 8765 --no-browser &
服务提供 analyze.py 之外的增量数据:
| 端点 | 数据 | 数据源 |
|---|---|---|
| ------ | ------ | -------- |
GET /api/holding?symbol=CU&exchange=SHFE | 会员持仓排名 | Tushare→AKShare |
GET /api/warehouse?symbol=CU&exchange=SHFE | 仓单日报(仓库/品牌/升贴水) | Tushare→AKShare |
GET /api/macro/pmi | 制造业+非制造业PMI | Tushare |
GET /api/macro/money | M0/M1/M2货币供应 | Tushare |
GET /api/macro/gdp | GDP+三大产业 | Tushare |
GET /api/nanhua?index=NHCI | 南华商品指数 | Tushare |
Layer 1: analyze.py → 技术面 (价格/均线/MACD/RSI/KDJ/ATR/ADX/BB/量仓/评分)
Layer 2: futures-monitor API → 持仓排名 + 仓单 + 宏观 + 南华指数
Layer 3: WebSearch → 基本面供需 + 情绪面舆情 + 突发事件
不同品种在不同交易所的 display symbol 不同。必须先用 futures_display_main_sina() 查找,不要猜测:
import akshare as ak
display = ak.futures_display_main_sina()
# 搜索用户品种: 沪锡→SN0, 生猪→LH0, 螺纹→RB0, 铁矿→I0, 原油→SC0
# 黄金→AU0, 铜→CU0, 豆粕→M0, 棕榈→P0, 股指→IF0
# 规则: 品种代码 + "0" (数字0)
常见品种 symbol 映射 (已验证):
| 品种 | display symbol | 交易所 | 合约代码格式 |
|---|---|---|---|
| ------ | --------------- | -------- | ------------ |
| 沪锡 | SN0 | shfe | SN2606 |
| 生猪 | LH0 | dce | LH2607 / LH2609 |
| 螺纹钢 | RB0 | shfe | RB2601 |
| 铁矿石 | I0 | dce | I2601 |
| 原油 | SC0 | ine | SC2607 |
| 黄金 | AU0 | shfe | AU2606 |
| 铜 | CU0 | shfe | CU2606 |
| 豆粕 | M0 | dce | M2601 |
| 棕榈油 | P0 | dce | P2601 |
| 沪深300 | IF0 | cffex | IF2606 |
直接使用打包好的 analyze.py,输出结构化数据:
# 基础: 只分析主力合约
python3 .claude/skills/futures-analysis/analyze.py SN0
# 带指定合约: 如生猪09 → LH2609
python3 .claude/skills/futures-analysis/analyze.py LH0 --contract LH2609
# 自定义分析窗口
python3 .claude/skills/futures-analysis/analyze.py SN0 --period 60
脚本输出格式: 每行 KEY:VALUE,最后输出 JSON。直接解析使用,无需修改脚本。
校验通过后向用户展示数据摘要(用脚本输出的值填充):
品种: {name} | 主力: {symbol} | 合约: {contract}
时间范围: {date_range} ({N}根K线)
最新价: {latest} | 120日涨跌: {change_pct}%
区间: {min} ~ {max} | ATR: {atr} ({atr_pct}%)
脚本已输出所有技术指标数值。分析时:
SCORE_TECH: 脚本的技术面综合评分 (-10~+10),直接引用总分 = SCORE_TECH×0.4 + 基本面评分×0.30 + 情绪面评分×0.15 + 宏观评分×0.15
> v3.0 调整: 宏观权重从 10% 提升到 15%,因为现在有多维度宏观数据支撑
宏观评分参考 (基于 futures-monitor 数据):
| PMI信号 | 评分 | 货币信号 | 评分 |
|---|---|---|---|
| --------- | ------ | --------- | ------ |
| PMI>50 且上升 | +3 | M1-M2剪刀差扩大 | +2 |
| PMI>50 但下降 | +1 | M2增速>10% | +1 |
| PMI<50 但上升 | -1 | M2增速<8% | -1 |
| PMI<50 且下降 | -3 | M1负增长 | -3 |
| 总分 | 结论 |
|---|---|
| ------ | ------ |
| +7~+10 | 🔥 强烈看涨 |
| +3~+7 | 📈 偏多 |
| -3~+3 | ➡️ 震荡/观望 |
| -7~-3 | 📉 偏空 |
| -10~-7 | ❄️ 强烈看跌 |
对比主力合约 vs 指定合约:
根据用户需求选择模板:
当用户需要PPT时,运行 generate_ppt.py:
# 基础用法: analyze.py输出的JSON → PPT
python3 .claude/skills/futures-analysis/generate_ppt.py \
--data /tmp/sn_result.json \
--output 沪锡分析报告.pptx
# 带Markdown报告文本 (自动提取基本面/情绪面/核心逻辑)
python3 .claude/skills/futures-analysis/generate_ppt.py \
--data /tmp/rb_result.json \
--report-md /tmp/rb_report.md \
--output 螺纹钢分析报告.pptx \
--title "螺纹钢RB2610 期货走势分析"
PPT结构 (9页):
配色: 深蓝主色调,涨绿跌红,专业金融风格。文字使用微软雅黑。
当用户需要演示稿时,生成乔布斯风极简科技感竖屏HTML演示稿,可直接在浏览器中打开演示。
设计规范:
| 项目 | 规范 |
|---|---|
| ------ | ------ |
| 比例 | 9:16 竖屏 (移动端优先) |
| 背景 | #0a0a0a 深色 + 动态模糊光斑动画 |
| 主文字 | #ffffff 白色 |
| 辅助文字 | #9ca3af 灰色 |
| 标题 | ≤12字,font-black |
| 正文字重 | font-light / font-normal |
| 字体 | 思源黑体 + Inter |
| 技术栈 | 纯HTML单文件, TailwindCSS CDN |
| 翻页 | 键盘 ← → / 空格 / 触摸滑动 |
| 光斑色 | #3b82f6(蓝) #8b5cf6(紫) #06b6d4(青) |
幻灯片结构 (12页标准):
| 页码 | 类型 | 标题 | 内容 |
|---|---|---|---|
| ------ | ------ | ------ | ------ |
| 1 | 封面页 | {品种名称}期货走势分析 | 合约代码、最新价、日期、数据来源 |
| 2 | 标题冲击页 | {核心判断 ≤12字} | 副标语(技术面/基本面关键词) |
| 3 | 数据展示页 | 数据概览 | 价格、涨跌、ATR、持仓等关键数字 |
| 4 | 列表页 | 技术面信号 | MA/MACD/ADX/RSI/KDJ 核心结论 |
| 5 | 数据展示页 | 关键价位 | 支撑位、压力位、斐波那契、现价标记 |
| 6 | 列表页 | 基本面:供给 | 能繁母猪/出栏/屠宰数据 |
| 7 | 列表页 | 基本面:需求 | 消费/库存/利润数据 |
| 8 | 数据展示页 | 综合评分 | 四维度评分+方向判断 |
| 9 | 对比页 | 情景推演 | 基准/乐观/悲观 三种情景卡片 |
| 10 | 列表页 | 交易参考 | 方向/入场/止损/目标/仓位 |
| 11 | 列表页 | 风险矩阵 | 主要风险+级别+触发条件 |
| 12 | 结尾行动页 | 免责声明 | 不构成投资建议 + 数据来源 |
配色方案 (金融定制):
生成步骤:
.html 文件,保存到工作目录| 指令 | 效果 |
|---|---|
| ------ | ------ |
快速研判 | 跳过详细流程 → 4段输出: 方向/核心逻辑/关键位/风险 |
只看技术面 | 运行脚本 + 技术解读,不采集新闻 |
只看基本面 | 不运行脚本,用WebSearch采集基本面数据 |
生成交易计划 | 在报告基础上给入场/止损/止盈/仓位 |
输出PPT / 生成PPT | 生成 .pptx 格式的9页演示文稿 |
输出演示稿 / 生成演示稿 | 生成乔布斯风极简竖屏HTML演示稿(可直接浏览器打开) |
品种对比 A B | 分别运行两个品种的脚本,横向对比 |
## {品种} 快速研判
**方向**: {结论} (技术面{score_tech}/10, 置信度{conf}%)
**核心逻辑**: {3句话}
**关键位**: 支撑{support} | 压力{resistance} | 止损{stop}
**风险**: {top1_risk} | {top2_risk}
| 用户品种 | 自动关联 |
|---|---|
| ---------- | --------- |
| 螺纹 RB | 铁矿 I、焦炭 J、热卷 HC |
| 铁矿 I | 螺纹 RB |
| 原油 SC | 沥青 BU、PTA、燃油 FU |
| 豆粕 M | 大豆 A、豆油 Y |
| 铜 CU | 铝 AL、锌 ZN |
| 黄金 AU | 白银 AG |
| 生猪 LH | 玉米 C(饲料成本) |
| 沪锡 SN | 伦锡(LME) |
| 股指 IF | IC、IM |
| 问题 | 处理 |
|---|---|
| ------ | ------ |
| AKShare API报错 | 检查symbol格式(需"X0"),或用 futures_display_main_sina() 确认 |
| 列名乱码 | analyze.py 已用位置索引处理,无需关心列名 |
| 指定合约无数据 | 该合约可能尚未上市或已到期,改用主力合约 |
| pip安装慢 | 加 -i https://pypi.tuna.tsinghua.edu.cn/simple |
| 数据不是最新 | 免费源T+1延迟属正常,盘后分析建议当天17:00后 |
pip install akshare pandas numpy scipy # 核心
pip install python-pptx # PPT生成
pip install yfinance # 国际期货(可选)
共 2 个版本