新增期货数据动态播放器功能,包括基础版和增强版实现,添加测试脚本和详细文档说明。主要变更包括: 1. 实现买卖盘深度可视化播放功能 2. 添加播放控制、速度调节和跳转功能 3. 提供统一价格轴显示优化版本 4. 添加测试脚本验证功能 5. 编写详细使用文档和README说明
155 lines
5.7 KiB
Markdown
155 lines
5.7 KiB
Markdown
# 期货数据动态播放器 - 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 |