Trend Analysis(趋势分析)
概述
trend-analysis 是期货行情场景下的 P0 级 Skill,定位为多周期趋势综合分析,判断品种当前趋势方向和强度。它向上承接活跃交易者、趋势跟踪者在投资研究和策略监控环节的核心诉求:
- 趋势跟踪者:判断中长期品种方向、趋势强度、关键进出场价位
- 活跃交易者:捕捉盘中趋势异动、确认短线方向、寻找支撑压力
Skill 通过编排 futures-market-data(行情数据查询)和 futures-technical-analysis(技术指标计算)两个 MCP 服务,实现日线/4H/1H 多周期趋势共振判断,并输出结构化报告或对话式结论。
触发条件
当用户请求涉及以下场景时激活此技能:
- 询问某品种趋势方向(如"沪铜趋势怎么样"、"螺纹钢现在方向如何")
- 请求走势分析(如"分析一下原油走势"、"黄金现在处于什么趋势")
- 寻找支撑压力位(如"铁矿的支撑位和压力位在哪里")
- 判断多空方向(如"豆粕目前多空方向如何"、"沪铝是多头还是空头趋势")
- 趋势强度评估(如"当前趋势强不强"、"趋势有没有走坏")
- 任何提及"趋势"、"方向"、"走势"、"支撑"、"压力"的期货品种分析请求
不应触发的场景
- 仅查询单个指标数值(如"沪铜 MACD 是多少")—— 由
futures-technical-analysis处理 - 仅请求实时行情快照(如"沪铜最新价")—— 由
futures-market-data处理 - 基本面供需分析(如"豆粕供需情况")—— 由
fundamental-analysis处理 - 成交量与持仓量深度分析(如"持仓量激增代表什么")—— 由
volume-price-analysis处理 - 跨品种或跨市场关联分析 —— 由
cross-market-analysis处理
错误处理
| 错误类型 | 处理方式 |
|---|---|
| 品种不在白名单中 | 返回提示:"品种 XXX 暂不在支持列表中(支持品种见 adapter.py 的 DEFAULT_CONFIG),如需添加请更新 adapter.py" |
| 数据行数不足(< 60 行) | 返回提示:"数据行数不足(当前 X 行),趋势分析至少需要 60 根 K 线,请提供更长周期的数据" |
| 缺少必需列(date/open/high/low/close) | 返回提示:"数据缺少必需列:XXX,请确保数据包含 date、open、high、low、close 列" |
| 行情 API 连接失败 | 若 fallback_to_mock 开启,自动回退到模拟数据并提示用户;否则抛出 ConnectionError |
| 配置文件不存在 | 使用内置默认配置(mock 数据源)继续运行 |
工作流决策树
用户请求
├── 询问趋势方向/强度 → 趋势分析主流程(多周期指标综合研判)
├── 询问支撑压力位 → 趋势分析 + 关键价位计算
├── 询问多空方向/能否进场 → 趋势分析 + 方向研判(风险提示需配合 risk-control 风控)
└── 请求完整报告 → 结构化报告模式(HTML 模板)
核心能力
1. 多周期趋势综合判断
- 同时分析日线、4H、1H 三个时间周期的趋势方向
- 基于多周期共振规则确定主趋势:
- 上涨:至少两个周期为多头,且日线方向为多头
- 下跌:至少两个周期为空头,且日线方向为空头
- 震荡:多周期方向不一致或价格围绕均线横盘
2. 趋势强度评分(0-100)
评分综合以下因素:
| 维度 | 权重 | 说明 |
|---|---|---|
| 多周期共振度 | 30% | 三个周期方向一致得高分 |
| 均线多头排列/空头排列 | 25% | MA5/10/20/60 排列整齐程度 |
| MACD 动能 | 20% | DIF-MACD 差值、柱状线斜率 |
| 布林带开口/方向 | 15% | 趋势通道是否打开 |
| 价格远离程度 | 10% | 当前价与 MA20 偏离度 |
强度等级划分:
- 80-100:强趋势(多周期方向一致,趋势明确)
- 60-79:中等趋势(趋势存在但动能有所减弱)
- 40-59:弱趋势/过渡(方向不明,可能处于转折或整理阶段)
- 0-39:震荡(无明确趋势,指标信号混乱)
3. 关键支撑与压力位计算
基于以下方法计算关键价位:
- 均线支撑/压力:MA20、MA60 在趋势中的位置
- 布林带轨道:上轨为压力,下轨为支撑
- 近期高低点:前高、前低、波段高低点
- 斐波那契回撤位:0.382、0.5、0.618
4. 指标依据解读
输出中必须包含以下指标的状态说明:
- MA 状态:均线排列(多头排列/空头排列/缠绕)、价格与均线关系
- MACD 状态:金叉/死叉、零轴上方/下方、柱状线变化
- BOLL 状态:开口方向、价格位于上轨/中轨/下轨、轨道斜率
输出模式
模式 1:结构化报告(HTML 报告)
使用 assets/report-template.html 生成完整趋势分析报告,包含:
- 品种概览与周期选择
- 趋势方向与强度评分卡片
- 关键支撑压力位表格
- 多周期指标状态
- 综合研判结论
- 风险提示
触发词:报告、详细分析、出一份报告、完整趋势分析
模式 2:对话式研判(Markdown 文本)
在对话中直接输出简洁结论:
- 先给出趋势方向与强度
- 再给出关键支撑/压力位
- 最后给出指标依据和风险提示
触发词:怎么看、分析一下、趋势如何、方向怎么样
模式 3:标准化信号(JSON)
输出标准 JSON 格式信号,便于交易系统对接:
{
"schema_version": "1.1.0",
"signal_id": "TA-{品种代码}-{YYYYMMDD}-{序号}",
"timestamp": "ISO 8601",
"variety": "品种代码",
"variety_name": "品种中文名",
"timeframes": ["日线", "4H", "1H"],
"direction": "LONG/SHORT/NEUTRAL",
"trend_strength": 75,
"strength_level": "strong|moderate|weak|neutral",
"support_levels": [65000, 63800],
"resistance_levels": [68200, 69500],
"indicator_summary": {
"ma": "多头排列,价格站上MA20",
"macd": "零轴上方金叉,红柱放大",
"boll": "开口向上,价格沿上轨运行"
},
"volume_price_relation": "成交量放大,量价配合良好",
"confidence": "HIGH/MEDIUM/LOW",
"reasoning": "趋势分析逻辑",
"risk_notes": "风险提示",
"disclaimer": "仅供参考,不构成投资建议。"
}
触发词:给信号、输出 JSON、交易信号、程序化信号
执行步骤
- 解析用户意图:提取品种名称/合约代码、询问周期(默认日线+4H+1H)、输出模式偏好
- 获取数据:调用
futures-market-data.query_kline(variety, timeframe)获取 K 线数据 - 计算指标:调用
futures-technical-analysis.calc_indicator(data, indicators=["MA", "EMA", "MACD", "BOLL", "SAR"]) - 趋势判断:综合多周期指标判断方向(上涨/下跌/震荡)
- 计算强度:根据评分模型计算 0-100 强度分
- 计算关键位:基于均线、布林带、前高前低、斐波那契计算支撑压力位
- 生成输出:按用户选择的模式输出报告/文本/JSON
- 附加免责声明:所有输出必须附带"仅供参考,不构成投资建议"声明
数据输入
行情数据获取(通过适配层)
Skill 通过 adapter.py 数据适配层获取行情数据,支持三种数据源,通过 CLI --source 参数指定(品种映射和 API 配置见 adapter.py 的 DEFAULT_CONFIG):
| 数据源 | 命令行参数 | 使用场景 | 状态 |
|---|---|---|---|
mock |
--source mock |
开发测试、演示 | ✅ 已就绪 |
csv |
--source csv |
离线分析、历史回测 | ✅ 已就绪 |
api |
--source api |
生产环境、实时数据 | ⏳ 预留(待行情中心 API 就绪) |
auto |
--source auto |
自动选择(API > CSV > Mock) | ✅ 已就绪 |
API 对接:行情中心 REST API 接口规范已定义(见 references/adapter-design.md),待 API Key 管理机制确认后即可启用,届时只需取消 adapter.py 中相关代码注释,无需改动核心逻辑。
备用:用户直接提供数据
接受用户通过以下方式提供数据:
- 粘贴 CSV 格式 K 线数据
- 上传 Excel/CSV 文件
- 描述当前价格和近期走势
依赖
Python 包依赖
在 SKILL.md frontmatter 的 dependencies 字段中声明(平台自动识别安装):
- pandas>=2.0,<4.0
- numpy>=1.24,<3.0
- requests>=2.28,<3.0
Python 版本要求:>=3.10
依赖 MCP
futures-market-data:行情数据查询futures-technical-analysis:技术指标计算
依赖框架
- L3 Skill 注册中心(注册和发现)
- L1 LLM 模型(推理分析、结论生成)
依赖脚本
trend_analysis.py:本地离线计算与 HTML 报告生成
依赖模板
assets/report-template.html:结构化报告 HTML 模板
依赖参考文档
references/trend-methodology.md:趋势判定方法论与评分规则
资源清单
trend-analysis/
├── SKILL.md # 本文件:Skill 定义与使用说明
├── README.md # 快速入门与安装说明
├── VERSION.md # 版本管理记录
├── trend_analysis.py # Python 实现入口
├── adapter.py # 行情数据适配层(mock/csv/api/auto + 内置配置)
├── assets/
│ └── report-template.html # 趋势分析报告 HTML 模板
└── references/
├── trend-methodology.md # 趋势判定方法论
└── adapter-design.md # 行情数据对接方案(API规范、Key管理)
调用示例
| 用户问题 | 调用方式 | 输出模式 |
|---|---|---|
| "沪铜趋势怎么样" | trend_analysis analyze --variety 沪铜 --timeframes 日线,4H,1H --mode text |
对话式 |
| "给我一份螺纹钢趋势分析报告" | trend_analysis analyze --variety 螺纹钢 --mode report --output report.html |
HTML 报告 |
| "黄金现在是什么方向,能不能做多" | trend_analysis analyze --variety 黄金 --mode json |
JSON 信号 |
| "原油的支撑和压力在哪里" | trend_analysis analyze --variety 原油 --focus levels --mode text |
对话式 |
| "用模拟数据快速看下沪铜" | trend_analysis analyze --variety 沪铜 --sample --mode text |
对话式(模拟数据) |
| "用真实行情分析沪铜" | trend_analysis analyze --variety 沪铜 --source api --mode json |
JSON 信号(行情API) |
分析与输出最佳实践
- 多周期共振优先:日线方向为主要参考,4H/1H 用于确认
- 指标不孤立:至少 MA + MACD + BOLL 三者方向一致才给出高置信度判断
- 趋势与位置结合:不仅要判断方向,还要说明当前价格在趋势中的位置
- 风险提示必备:趋势分析不等于操作指令,输出必须附带止损风险提示
- 免责声明:所有输出必须包含"仅供参考,不构成投资建议"声明
责任方
AI 能力团队(期货 AI 能力建设小组)
免责声明
本 Skill 提供的所有趋势分析、关键价位、信号和分析结果仅供学习与参考,不构成任何投资建议。期货交易具有高风险性,可能导致本金全部损失。用户应基于自身判断做出交易决策,并承担全部交易风险。