新增期货数据动态播放器功能,包括基础版和增强版实现,添加测试脚本和详细文档说明。主要变更包括: 1. 实现买卖盘深度可视化播放功能 2. 添加播放控制、速度调节和跳转功能 3. 提供统一价格轴显示优化版本 4. 添加测试脚本验证功能 5. 编写详细使用文档和README说明
177 lines
7.0 KiB
Markdown
177 lines
7.0 KiB
Markdown
# 统一价格轴期货数据播放器 - 最终优化版
|
||
|
||
## 🎯 核心特性
|
||
|
||
### 💡 创新显示方式
|
||
- **倒置柱状图**: 成交量柱体从价格轴向下延伸,便于观察价格间隙
|
||
- **统一价格轴**: 买卖盘挂单在同一价格体系中对比显示
|
||
- **类对数刻度**: 成交量采用等距对数刻度,更好展示不同量级数据
|
||
|
||
### 📊 视觉效果
|
||
- **价格轴**: 横轴显示,按真实tick (0.02元) 标注
|
||
- **成交量轴**: 纵轴显示,类对数刻度 [10, 30, 60, 150, 300, 600, 1500, 3000, 6000, 15000]
|
||
- **颜色编码**: 绿色=买盘,红色=卖盘,蓝色=当前价,黄色=价差区域
|
||
|
||
## 📈 显示逻辑详解
|
||
|
||
### 市场深度主图表
|
||
```
|
||
▲ 成交量 (对数刻度)
|
||
│
|
||
│ ● 1500 (成交量刻度点等距分布)
|
||
│ ● 600
|
||
│ ● 300
|
||
0 ──┼───────────────── ← 价格轴 (黑色横线)
|
||
│ │ ● 成交量柱体向下延伸
|
||
│ │ │●
|
||
│ │ │ │●
|
||
└──┼────┼─┼────▶ 价格 (¥)
|
||
904.86 904.88 904.90
|
||
```
|
||
|
||
### 关键设计要点
|
||
|
||
#### 1. 倒置显示优势
|
||
- **价格间隙突出**: 买卖价差在价格轴上方清晰可见
|
||
- **视觉聚焦**: 价格作为基准线,挂单量向下延伸
|
||
- **对比直观**: 不同价格档位的挂单量对比一目了然
|
||
|
||
#### 2. 类对数刻度设计
|
||
```python
|
||
volume_scale_points = [10, 30, 60, 150, 300, 600, 1500, 3000, 6000, 15000]
|
||
```
|
||
- **等距显示**: 10与30的间距 = 300与600的间距
|
||
- **业务相关性**: 覆盖期货交易常见挂单量范围
|
||
- **细节保留**: 小单量和大单量都能清晰显示
|
||
|
||
#### 3. 真实tick刻度
|
||
- **AU2512最小tick**: 0.02元
|
||
- **精确标注**: 横轴严格按照交易所规则标注
|
||
- **价格跳跃**: 真实反映买卖盘之间的价格间隙
|
||
|
||
## 🚀 使用方法
|
||
|
||
### 快速启动
|
||
```bash
|
||
# 运行完整应用
|
||
python futures_player_unified.py
|
||
|
||
# 查看演示效果
|
||
python demo_unified_player.py
|
||
|
||
# 功能测试
|
||
python test_unified_player.py
|
||
```
|
||
|
||
### 操作指南
|
||
|
||
#### 播放控制
|
||
- **▶ Play/⏸ Pause**: 播放或暂停时序数据
|
||
- **■ Stop**: 停止并回到开始位置
|
||
- **Step Controls**: ±1或±10步进播放
|
||
|
||
#### 速度调节
|
||
- **滑块控制**: 0.1x - 10x 无级调速
|
||
- **快速按钮**: 0.25x, 0.5x, 1x, 2x, 5x, 10x
|
||
|
||
#### 导航功能
|
||
- **快速跳转**: Start, 25%, 50%, 75%, End
|
||
- **精确跳转**: 输入具体序列号跳转
|
||
|
||
## 📋 界面布局
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────┬─────────────────┐
|
||
│ 图表显示区域 │ 控制面板 │
|
||
│ │ │
|
||
│ ┌─────────────────────────────────────────────────────┐ │ 播放控制 │
|
||
│ │ 倒置市场深度图表 │ │ 状态显示 │
|
||
│ │ 成交量↓ | 价格轴 (0) | 成交量↓ │ │ 速度控制 │
|
||
│ │ 绿色买盘 红色卖盘 │ │ 导航控制 │
|
||
│ └─────────────────────────────────────────────────────┘ │ 进度显示 │
|
||
│ ┌─────────────────┬─────────────────────────────────┐ │ 统计信息 │
|
||
│ │ 价格趋势图 │ 成交量分析图 │ │ │
|
||
│ └─────────────────┴─────────────────────────────────┘ │ │
|
||
│ ┌─────────────────────────────────────────────────────┐ │ │
|
||
│ │ 统计信息显示区 │ │ │
|
||
│ └─────────────────────────────────────────────────────┘ │ │
|
||
└─────────────────────────────────────────────────────────────┴─────────────────┘
|
||
```
|
||
|
||
## 🔍 数据解读指南
|
||
|
||
### 市场深度分析
|
||
1. **流动性观察**: 柱体越高表示该价位挂单量越大
|
||
2. **价差分析**: 黄色区域宽度显示买卖价差
|
||
3. **支撑阻力**: 高买柱形成支撑,高卖柱形成阻力
|
||
4. **订单分布**: 观察不同价位的挂单分布情况
|
||
|
||
### 交易信号识别
|
||
- **价差收窄**: 买卖价差变小,流动性改善
|
||
- **大单出现**: 某个价位柱体异常增高
|
||
- **失衡信号**: 买盘或卖盘明显占优
|
||
|
||
## ⚙️ 技术实现
|
||
|
||
### 核心算法
|
||
```python
|
||
# 成交量对数变换
|
||
def transform_volume(volume):
|
||
for i in range(len(volume_scale_points) - 1):
|
||
if volume_scale_points[i] <= volume < volume_scale_points[i + 1]:
|
||
ratio = (volume - volume_scale_points[i]) / (volume_scale_points[i + 1] - volume_scale_points[i])
|
||
return i + ratio # 等距映射
|
||
|
||
# 倒置显示
|
||
bars = ax.bar(all_prices, [-v for v in transformed_volumes]) # 负值向下
|
||
```
|
||
|
||
### 性能优化
|
||
- **高效渲染**: 优化的matplotlib绘图
|
||
- **内存管理**: 合理的数据处理策略
|
||
- **实时更新**: 流畅的播放体验
|
||
|
||
## 📊 数据源
|
||
|
||
### 文件信息
|
||
- **数据文件**: `data/au2512_20251013.parquet`
|
||
- **数据量**: 66,596个有效数据点
|
||
- **时间范围**: 00:00.5 - 59:59.5
|
||
- **价格区间**: 901.84 - 928.88元
|
||
|
||
### 数据字段
|
||
- 买1-5档价格和挂单量
|
||
- 卖1-5档价格和挂单量
|
||
- 最新成交价和累积成交量
|
||
- 时间戳信息
|
||
|
||
## 🎯 业务价值
|
||
|
||
### 交易决策支持
|
||
- **即时价差观察**: 直接看到买卖价差大小
|
||
- **流动性评估**: 快速评估市场深度
|
||
- **价格阻力识别**: 识别关键支撑和阻力位
|
||
- **订单流分析**: 观察买卖力量对比
|
||
|
||
### 市场分析
|
||
- **微观结构**: 深入了解市场微观结构
|
||
- **价格发现**: 观察价格形成过程
|
||
- **风险管理**: 评估市场冲击成本
|
||
|
||
## 🛠️ 系统要求
|
||
|
||
### 环境依赖
|
||
```bash
|
||
pip install pandas numpy matplotlib tkinter
|
||
```
|
||
|
||
### 硬件要求
|
||
- **内存**: 最少4GB,推荐8GB
|
||
- **显示**: 1920x1080或更高分辨率
|
||
- **系统**: Windows/Linux/macOS
|
||
|
||
---
|
||
|
||
**版本**: 3.0 Final Edition
|
||
**最后更新**: 2025-11-02
|
||
**核心特性**: 倒置显示 + 类对数刻度 + 统一价格轴 |