期货数据分析 Skill
概述
本 skill 提供全套期货市场技术面分析能力,从行情数据采集 → 技术指标计算 → 多因子多空评分 → AI 量化信号 → 综合报告生成,形成完整分析流水线。
核心能力
| 能力 | 说明 | |------|------| | 行情数据采集 | AkShare(免费日线/实时)+ 天勤 TQ SDK(实盘/模拟盘)+ 东方财富 API(实时快照) | | 技术指标计算 | MA(5/10/20/60)、RSI(14)、MACD(12/26/9)、BOLL(20,2)、KDJ(9,3,3)、ATR(14)、量比 | | 多因子评分 | 均线排列 → MACD 金叉死叉 → RSI 超买超卖 → KDJ 极端值 → 涨跌幅 → 6 种量价关系 | | AI 策略分析 | DeepSeek / 百炼 / 魔搭 三引擎热备,自动降级,输出结构化 JSON 交易信号 | | 综合报告 | 多品种批量分析 + 单品种深度报告,含开仓点位(保守/稳健/激进三档)、平仓时间点计划 | | 品种筛选 | 全市场 60+ 品种扫描,按成交量+波动率自动筛选最活跃品种 | | 飞书推送 | 结构化 Markdown 报告推送到飞书群 |
快速开始
环境要求
Python 依赖:
akshare>=1.14.0
openai>=1.0.0
pandas>=2.0.0
numpy>=1.24.0
loguru>=0.7.0
requests>=2.31.0
tqsdk (可选,天勤实盘需要)
配置文件
在项目根目录创建 config.ini:
[ai]
engine = deepseek ; deepseek / bailian / modelscope
deepseek_api_key = sk-xxxxx
deepseek_base_url = https://api.deepseek.com/v1
deepseek_model = deepseek-chat
bailian_api_key = sk-xxxxx
bailian_model = qwen-plus
[trading]
confidence_threshold = 0.65
max_position_ratio = 0.3
stop_loss_ratio = 0.02
take_profit_ratio = 0.05
symbols = au0,lc0,ps0,lh0,p0,IC0
monitor_interval = 5
[monitor]
kline_period = 15min
ma_periods = 5,10,20,60
[platform]
tq_account = your_tq_account
tq_password = your_tq_password
tq_simulated = true
使用流程
场景一:多品种批量分析(日常巡检)
当用户要求"分析期货"、"做一次期货扫描"、"生成期货报告"时:
- 加载 references/futures_knowledge.md 确认品种代码和交易所信息
- 使用 scripts/data_fetcher.py 中的
get_futures_daily()获取行情 - 使用 scripts/technical_indicators.py 中的
calc_all_indicators()计算全部技术指标 - 使用 scripts/multi_factor_scorer.py 中的
score_symbol()执行多空评分 - 调用 AI 分析(可选,若用户要求或配置了 API Key):
- 使用
build_market_summary()生成行情摘要文本 - 调用 OpenAI 兼容 API(DeepSeek/百炼/魔搭)获取结构化信号
- 必须使用
SYSTEM_PROMPT(见 references/ai_prompt.md)作为系统提示词
- 使用
- 使用 scripts/report_generator.py 生成文本报告和 JSON 报告
- 以表格形式展示核心结论,将完整报告保存为文件
场景二:单品种深度分析
当用户询问"分析沪金"、"碳酸锂怎么看"等具体品种时:
- 确定品种代码(参考 references/futures_knowledge.md 的品种代码表)
- 使用主力连续合约代码(品种前缀 + 0,如 au0、lc0)
- 执行完整技术分析(调用 scripts 中的函数)
- 生成深度报告,包含:
- 价格行情总览
- 完整技术指标一览
- 多空信号汇总
- 多空评分与判断
- 三档开仓点位(保守/稳健/激进)+ 止损止盈 + 盈亏比
- 平仓时间点计划
- 如有库存/到港信息需求,使用 WebSearch 查询品种最新基本面数据
场景三:全市场品种筛选
当用户要求"扫描热门品种"、"哪些品种值得关注"时:
- 遍历全品种池(60+ 主流期货品种)
- 获取每个品种的日线数据,计算近 5 日平均成交量和近 10 日波动率
- 综合评分 = 成交量排名权重 × 0.6 + 波动率排名权重 × 0.4
- 排除已跟踪品种,返回 Top-N 活跃品种
- 输出带排名的表格报告
场景四:盘中实时分析
当用户要求"盘中分析"、"快速检查"时:
- 使用东方财富 API(
fetch_eastmoney函数)获取实时快照 - 对比前一日收盘价计算涨跌幅
- 计算各品种距历史高点的距离
- 高亮标记处于历史高位区(≥85%)和超跌区(≤30%)的品种
- 输出简洁的信号汇总表格
技术指标计算标准
所有指标在 scripts/technical_indicators.py 中实现,关键参数:
| 指标 | 参数 | 计算逻辑 | |------|------|----------| | MA | periods=[5,10,20,60] | rolling().mean() | | RSI | period=14 | 100 - (100 / (1 + avg_gain/avg_loss)) | | MACD | fast=12, slow=26, signal=9 | ewm 差分 | | BOLL | period=20, std=2 | mid=MA20, ±2σ | | KDJ | n=9, m1=3, m2=3 | RSV → ewm | | ATR | period=14 | TR = max(H-L, |H-C1|, |L-C1|) |
多空评分体系
在 scripts/multi_factor_scorer.py 中定义,8 大类指标:
| 类别 | 看多信号(加分) | 看空信号(加分) | |------|-----------------|-----------------| | 均线排列 | 多头排列 +0.25 | 空头排列 +0.25 | | 价格 vs MA5 | 站上 MA5 +0.10 | 跌破 MA5 +0.15 | | 价格 vs MA20 | 站上 MA20 +0.15 | 跌破 MA20 +0.20 | | MACD | 金叉扩大 +0.25, 收窄 +0.10 | 死叉扩大 +0.25, 收窄 +0.10 | | RSI | <30 超卖 +0.20, <40 偏低 +0.10 | >80 严重超买 +0.30, >70 超买 +0.20 | | KDJ | K<20 且 D<30 +0.20 | K>80 且 D>70 +0.20, J>100 +0.15 | | 涨跌幅(10日) | 跌超 10% 超跌 +0.20 | 涨超 10% 获利 +0.20 | | 量价关系 | 放量上涨+0.15, 缩量下跌+0.10 | 放量下跌+0.15, 缩量上涨+0.10 |
综合评分 = 看多得分 - 看空得分,判断阈值:
- ≥ 0.8:强烈看多
- [0.4, 0.8):偏多
- (-0.3, 0.4):中性震荡
- (-0.7, -0.3]:偏空
- < -0.7:强烈看空
AI 分析集成
系统提示词
详见 references/ai_prompt.md。核心要点:
- AI 角色定义为 20 年经验的期货量化分析师
- 分析框架:趋势 → 动量 → 量能 → 波动 → 风控
- 强制 JSON 输出,字段包括:symbol, trend, signal, confidence, entry_price, stop_loss, take_profit, position_ratio, reasoning, risk_warning
API 调用
使用 OpenAI 兼容接口,三引擎热备:
from openai import OpenAI
# DeepSeek
client = OpenAI(api_key="sk-xxx", base_url="https://api.deepseek.com/v1")
# 百炼
client = OpenAI(api_key="sk-xxx", base_url="https://dashscope.aliyuncs.com/compatible-mode/v1")
# 魔搭
client = OpenAI(api_key="sk-xxx", base_url="https://api-inference.modelscope.cn/v1")
调用参数:
temperature=0.1(低随机性,确保分析一致性)max_tokens=1024response_format={"type": "json_object"}- 如 JSON 解析失败,尝试从文本中提取
{...}部分 - 带指数退避重试(1s / 2s / 4s)
报告格式规范
批量报告包含
- 顶部汇总:时间、品种数量、可操作信号数量
- 信号总览:各品种评分、多空判断、AI 信号
- 逐品种详情:价格、涨跌、评分、信号明细、量价分析、开仓点位、平仓提醒
- 底部总结:数据异常提醒
单品种深度报告包含
- 价格行情(最新价、日涨跌、10/20 日涨跌、近 N 日价格区间)
- 技术指标一览(MA、RSI、KDJ、MACD、BOLL、量比)
- 多空信号汇总
- 多空判断 + 操作建议
- 开仓点位(三档:保守/稳健/激进,含触发条件、止损、目标、盈亏比)
- 平仓计划(技术止盈、趋势跟踪止损、均线防守、目标价位、时间止损)
- 风险提示
品种代码速查
详见 references/futures_knowledge.md,核心跟踪品种:
| 品种 | 代码 | 交易所 | |------|------|--------| | 沪金 | au0 | 上期所 SHFE | | 碳酸锂 | lc0 | 广期所 GFEX | | 多晶硅 | ps0 | 广期所 GFEX | | 生猪 | lh0 | 大商所 DCE | | 棕榈油 | p0 | 大商所 DCE | | 中证500 | IC0 | 中金所 CFFEX |
数据源说明
优先级
- AkShare (
futures_main_sina) - 日线历史数据,免费无需注册 - 东方财富 API - 实时行情快照,适用于盘中快速扫描
- 新浪财经 API - 备用实时数据源
- 天勤 TQ SDK - 实盘/模拟盘交易,需要账号密码
天勤 (TQ SDK) 对接
天勤合约代码格式为 KQ.m@交易所.品种(主力连续)或 交易所.合约代码(具体合约)。
交易所代码映射表见 references/futures_knowledge.md。
初始化代码:
from tqsdk import TqApi, TqAuth, TqSim
if simulated:
api = TqApi(TqSim(), auth=TqAuth(account, password))
else:
api = TqApi(auth=TqAuth(account, password))
Bundled Resource 说明
scripts/data_fetcher.py— 行情数据获取(AkShare + 东方财富 + 新浪)scripts/technical_indicators.py— 技术指标计算(MA/RSI/MACD/BOLL/KDJ/ATR)scripts/multi_factor_scorer.py— 多因子多空评分引擎scripts/report_generator.py— 报告生成(文本 + JSON)references/futures_knowledge.md— 品种代码表、交易所映射、历史高位参考references/ai_prompt.md— AI 分析系统提示词模板
重要约定
- 行情数据 按中国股市红涨绿跌的配色展示(涨用红色 🔴,跌用绿色 🟢)
- 所有报告必须包含 "不构成投资建议,期货有风险,入市需谨慎" 的风险声明
- 分析中如果数据不足 30 条,明确警告用户数据可能不充分
- 多品种分析时必须先完成全部品种再生成报告,不要逐个输出
- AI 信号中 confidence < 0.65 的开仓信号自动降级为 hold
- AI 分析超时或全部失败时,回退到纯技术面评分,并在报告中注明
- 错误处理采用非阻塞模式:单个品种出错不影响其他品种
微信扫一扫