新增期货数据动态播放器功能,包括基础版和增强版实现,添加测试脚本和详细文档说明。主要变更包括: 1. 实现买卖盘深度可视化播放功能 2. 添加播放控制、速度调节和跳转功能 3. 提供统一价格轴显示优化版本 4. 添加测试脚本验证功能 5. 编写详细使用文档和README说明
7.0 KiB
7.0 KiB
统一价格轴期货数据播放器 - 最终优化版
🎯 核心特性
💡 创新显示方式
- 倒置柱状图: 成交量柱体从价格轴向下延伸,便于观察价格间隙
- 统一价格轴: 买卖盘挂单在同一价格体系中对比显示
- 类对数刻度: 成交量采用等距对数刻度,更好展示不同量级数据
📊 视觉效果
- 价格轴: 横轴显示,按真实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. 类对数刻度设计
volume_scale_points = [10, 30, 60, 150, 300, 600, 1500, 3000, 6000, 15000]
- 等距显示: 10与30的间距 = 300与600的间距
- 业务相关性: 覆盖期货交易常见挂单量范围
- 细节保留: 小单量和大单量都能清晰显示
3. 真实tick刻度
- AU2512最小tick: 0.02元
- 精确标注: 横轴严格按照交易所规则标注
- 价格跳跃: 真实反映买卖盘之间的价格间隙
🚀 使用方法
快速启动
# 运行完整应用
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) | 成交量↓ │ │ 速度控制 │
│ │ 绿色买盘 红色卖盘 │ │ 导航控制 │
│ └─────────────────────────────────────────────────────┘ │ 进度显示 │
│ ┌─────────────────┬─────────────────────────────────┐ │ 统计信息 │
│ │ 价格趋势图 │ 成交量分析图 │ │ │
│ └─────────────────┴─────────────────────────────────┘ │ │
│ ┌─────────────────────────────────────────────────────┐ │ │
│ │ 统计信息显示区 │ │ │
│ └─────────────────────────────────────────────────────┘ │ │
└─────────────────────────────────────────────────────────────┴─────────────────┘
🔍 数据解读指南
市场深度分析
- 流动性观察: 柱体越高表示该价位挂单量越大
- 价差分析: 黄色区域宽度显示买卖价差
- 支撑阻力: 高买柱形成支撑,高卖柱形成阻力
- 订单分布: 观察不同价位的挂单分布情况
交易信号识别
- 价差收窄: 买卖价差变小,流动性改善
- 大单出现: 某个价位柱体异常增高
- 失衡信号: 买盘或卖盘明显占优
⚙️ 技术实现
核心算法
# 成交量对数变换
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档价格和挂单量
- 最新成交价和累积成交量
- 时间戳信息
🎯 业务价值
交易决策支持
- 即时价差观察: 直接看到买卖价差大小
- 流动性评估: 快速评估市场深度
- 价格阻力识别: 识别关键支撑和阻力位
- 订单流分析: 观察买卖力量对比
市场分析
- 微观结构: 深入了解市场微观结构
- 价格发现: 观察价格形成过程
- 风险管理: 评估市场冲击成本
🛠️ 系统要求
环境依赖
pip install pandas numpy matplotlib tkinter
硬件要求
- 内存: 最少4GB,推荐8GB
- 显示: 1920x1080或更高分辨率
- 系统: Windows/Linux/macOS
版本: 3.0 Final Edition 最后更新: 2025-11-02 核心特性: 倒置显示 + 类对数刻度 + 统一价格轴