# 期货开仓记录分析工具 ## 概览 该工具基于 `Lib/future/records.csv` 的期货开仓记录,输出以 **平均盈亏** 与 **平均保证金收益率** 为核心的多维度分析结果。脚本聚焦以下能力: - 自动清洗与增强原始数据:提取品种代码、识别开盘后时间段、计算保证金收益率、穿越均线数量、成交额分组等 15+ 个衍生字段。 - 提供单一文件内的全套统计汇总、CSV 导出和可视化图表,方便快速洞察交易表现。 - 所有结果默认输出至 `Lib/future/analysis_results/` 目录,便于后续复盘或回测。 ## 核心功能 ### 数据预处理 - 标的字段自动解析出品种代码(如“原油2002(SC2002.XINE)”→“SC”),提取成功率 100%。 - 结合 `MAPatternStrategy_v002.py` 中的交易时间,计算 `<30分钟 / 30-60分钟 / >1小时` 三段开仓延迟区间。 - 构建保证金收益率(交易盈亏 ÷ 保证金 × 100)、交易时段(夜盘/上午/下午)、穿越均线数量、成交额分组等指标。 ### 多维度统计 - **均线组合**:统计出现次数、平均盈亏、平均保证金收益率、胜率与盈亏比,可快速筛选表现最稳健的组合。 - **开盘后时间段**:对比不同开仓延迟区间的平均盈亏与保证金收益率,直观判断开仓时机的重要性。 - **均线 × 时间段交叉**:同时查看胜率、平均盈亏、平均保证金收益率三张热力图,定位最优战术组合。 - **交易类型 / 品种 / 品种代码**:支持从“开多/开空”“商品/金融”“Top 品种代码”多层级对比收益表现。 - **其他维度**:控制台输出仍覆盖成交额分组、交易时段、穿越均线数量、多空对比、夜盘属性与组合策略排名等信息。 ### 可视化输出(PNG) 1. `ma_lines_analysis.png` - 4 个子图:出现次数、胜率、平均盈亏、平均保证金收益率,全部带数值标注,重点突出收益类指标。 2. `time_segment_analysis.png` - 展示三个开盘时间段的平均盈亏与平均保证金收益率对比(双柱状图)。 3. `cross_analysis_heatmap.png` - 3 张热力图:胜率、平均盈亏、平均保证金收益率(均线组合 × 开盘时间段)。 4. `variety_analysis.png` - 交易类型与品种类型的胜率/收益率对比,快速锁定得分最高的资产类别。 > 说明:旧的 `additional_analysis.png` 已移除,所有图表均以平均盈亏与保证金收益率为主视角。 ### CSV 输出 | 文件 | 说明 | | --- | --- | | `records_enhanced.csv` | 增强后的明细数据,包含所有衍生字段 | | `ma_lines_stats.csv` | 各均线组合的综合统计 | | `time_segment_stats.csv` | 三段开盘时间的统计 | | `symbol_stats.csv` | 各品种代码的统计 | | `combo_strategy_stats.csv` | “均线组合×时间段×方向” 组合,样本量≥5 | ## 使用指南 ### 1. 安装依赖 ```bash pip install pandas numpy matplotlib seaborn ``` ### 2. 运行脚本 ```bash cd Lib/future python records_analysis.py ``` ### 3. 输出内容 - 控制台:打印各维度汇总表,含样本量、平均盈亏、平均保证金收益率等。 - `analysis_results/`:自动生成 PNG 图表与 CSV 文件。 ## 指标解释 | 指标 | 定义 | | --- | --- | | 出现次数 | 分组内的交易笔数 | | 胜率 | 盈利笔数 / 总笔数(`交易盈亏 > 0` 为盈利) | | 平均盈亏 | 交易盈亏字段的均值(元) | | 盈亏比 | 平均盈利金额 / 平均亏损金额(绝对值) | | 平均保证金收益率 | 单笔收益率(盈亏/保证金×100)的平均值 | 时间段计算:用品种对应的 `trading_start_time` 与委托时间求差,自动处理夜盘跨日情况;交易时段依次划分为夜盘(21:00-03:00)、上午(09:00-12:00)与下午(12:00-16:00)。 ## 数据洞察速览(基于 1061 条样本) - **开仓时机**:<30分钟平均盈亏 11,256 元、保证金收益率 5.73%,显著优于 >1小时段(1,073 元 / 4.17%)。 - **均线组合**:`MA20;MA30` 在平均盈亏与保证金收益率上均表现亮眼(6,160 元 / 10.36%)。 - **交易类型**:开多的平均保证金收益率 5.38%,高于开空的 3.20%。 - **品种类型**:金融期货的平均保证金收益率 7.68%,显著优于商品期货的 3.42%。 - **组合策略**:`MA10;MA20 + >1小时 + 开空` 的平均保证金收益率 21.25%,位列历史最佳组合之一。 > 以上数字会随最新数据自动更新,可直接参考控制台及 CSV 输出。 ## 文件结构 ``` Lib/future/ ├── records.csv # 原始交易记录 ├── records_analysis.py # 主分析脚本 ├── README_records_analysis.md # 本文档 └── analysis_results/ # 输出目录 ├── *.png # 4 张可视化图表 ├── records_enhanced.csv # 增强后的明细 ├── ma_lines_stats.csv ├── time_segment_stats.csv ├── symbol_stats.csv └── combo_strategy_stats.csv ``` ## 扩展建议 - 添加更多维度:如持仓时长、波动率、止损/止盈比例等指标。 - 引入机器学习:基于历史组合表现搭建简单的策略筛选模型。 - 交互分析:将 CSV 导入 Notebook、BI 工具或 Plotly Dash 进行动态探索。 ## 技术栈 - Python 3.x - pandas / numpy:数据处理与统计 - matplotlib / seaborn:绘图与热力图 --- 如需调整统计口径或新增图表,可直接修改 `records_analysis.py`,所有逻辑均已模块化拆分,便于快速扩展。