huice/README_futures_player.md
Your Name 7f4f88e853 feat: 添加期货数据播放器及相关测试和文档
新增期货数据动态播放器功能,包括基础版和增强版实现,添加测试脚本和详细文档说明。主要变更包括:
1. 实现买卖盘深度可视化播放功能
2. 添加播放控制、速度调节和跳转功能
3. 提供统一价格轴显示优化版本
4. 添加测试脚本验证功能
5. 编写详细使用文档和README说明
2025-11-02 23:57:10 +08:00

155 lines
5.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 期货数据动态播放器 - Futures Data Player
## 概述
这是一个基于Python的期货数据可视化工具专门用于展示AU2512期货合约的买卖盘深度变化。该工具可以按时间序列动态播放市场深度数据帮助交易员和分析师更好地理解市场微观结构。
## 功能特性
### 核心功能
- **实时买卖盘深度可视化**: 展示买1-5档和卖1-5档的价格和成交量
- **时序播放控制**: 按数列号顺序播放数据,模拟真实交易过程
- **灵活的播放控制**: 支持播放/暂停/停止/步进操作
- **可调节播放速度**: 0.1x到10x速度调节
- **精确跳转功能**: 可跳转到任意数列号
### 高级功能
- **价格趋势图表**: 显示最近100个数据点的价格走势
- **成交量分析**: 累积成交量变化趋势
- **买卖价差监控**: 实时显示bid-ask spread
- **快速定位**: 提供开始、25%、50%、75%、结束的快速跳转按钮
## 数据源
基于`data/au2512_20251013.parquet`文件,包含:
- 66,596个数据点
- 时间范围: 00:00.5 - 结束时间
- 价格区间: 实时计算
- 完整的买卖盘档位数据
## 安装要求
### 必需依赖
```bash
pip install pandas numpy matplotlib tkinter
```
### Python版本
- Python 3.7+
## 使用方法
### 启动程序
```bash
# 基础版本
python futures_data_player.py
# 增强版本(推荐)
python futures_player_enhanced.py
```
### 操作指南
#### 播放控制
1. **播放/暂停**: 点击"▶ Play"或"⏸ Pause"按钮
2. **停止**: 点击"■ Stop"按钮返回到开始
3. **步进控制**:
- "Step +1 ▶": 前进1个数据点
- "Step +10 ▶▶": 前进10个数据点
- "◀ Step -1": 后退1个数据点
- "◀◀ Step -10": 后退10个数据点
#### 速度控制
- **滑块调节**: 拖动速度滑块0.1x - 10x
- **快速按钮**: 0.25x, 0.5x, 1x, 2x, 5x, 10x
#### 跳转功能
1. **精确跳转**: 在输入框中输入数列号,点击"Jump"
2. **快速跳转**: 点击Start、25%、50%、75%、End按钮
#### 图表说明
- **买盘深度图**(上方): 绿色水平条,显示各买档价格的挂单量
- **卖盘深度图**(中间): 红色水平条,显示各卖档价格的挂单量
- **价格趋势图**(左下): 蓝色线条显示最近100个点的价格变化
- **成交量图**(右下): 绿色线条显示累积成交量变化
## 界面布局
```
┌─────────────────────────────────────┬─────────────────┐
│ 图表显示区域 │ 控制面板 │
│ │ │
│ ┌─────────────────────────────────┐ │ 播放控制 │
│ │ 买盘深度图 │ │ 状态显示 │
│ └─────────────────────────────────┘ │ 速度控制 │
│ ┌─────────────────────────────────┐ │ 跳转控制 │
│ │ 卖盘深度图 │ │ 进度显示 │
│ └─────────────────────────────────┘ │ 数据统计 │
│ ┌─────────────────┬───────────────┐ │ │
│ │ 价格趋势 │ 成交量分析 │ │ │
│ └─────────────────┴───────────────┘ │ │
└─────────────────────────────────────┴─────────────────┘
```
## 数据结构
### 输入数据格式
- `time`: 时间戳MM:SS.秒格式)
- `price`: 最新成交价
- `cumulative_volume`: 累积成交量
- `bid1_price` ~ `bid5_price`: 买1到买5价格
- `bid1_volume` ~ `bid5_volume`: 买1到买5挂单量
- `ask1_price` ~ `ask5_price`: 卖1到卖5价格
- `ask1_volume` ~ `ask5_volume`: 卖1到卖5挂单量
### 可视化逻辑
- **买盘**: 按价格从高到低排序,价格越高优先级越高
- **卖盘**: 按价格从低到高排序,价格越低优先级越高
- **颜色编码**:
- 绿色系:买盘
- 红色系:卖盘
- 蓝色虚线:当前成交价
## 技术特点
### 性能优化
- 多线程播放避免界面卡顿
- 数据预处理和缓存机制
- 高效的matplotlib渲染
### 用户体验
- 直观的图形界面
- 实时状态更新
- 精确的播放控制
- 响应式布局设计
## 使用场景
1. **交易策略研究**: 观察市场深度变化对价格的影响
2. **风险分析**: 识别流动性异常和市场冲击
3. **教育培训**: 帮助理解期货市场微观结构
4. **数据分析**: 深入研究价格发现过程
## 注意事项
1. 首次运行可能需要下载依赖库
2. 确保数据文件路径正确
3. 大量数据播放时可能消耗较多内存
4. 建议在性能较好的设备上运行以获得最佳体验
## 故障排除
### 常见问题
1. **程序无法启动**: 检查Python版本和依赖库安装
2. **数据加载失败**: 确认数据文件存在且格式正确
3. **图表显示异常**: 尝试重启程序或检查matplotlib配置
4. **播放卡顿**: 降低播放速度或关闭其他占用资源的程序
### 联系支持
如有问题,请检查控制台输出的错误信息,或确保所有依赖库正确安装。
---
**版本**: 1.0
**最后更新**: 2025-11-02
**数据文件**: au2512_20251013.parquet