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

7.0 KiB
Raw Permalink Blame History

统一价格轴期货数据播放器 - 最终优化版

🎯 核心特性

💡 创新显示方式

  • 倒置柱状图: 成交量柱体从价格轴向下延伸,便于观察价格间隙
  • 统一价格轴: 买卖盘挂单在同一价格体系中对比显示
  • 类对数刻度: 成交量采用等距对数刻度,更好展示不同量级数据

📊 视觉效果

  • 价格轴: 横轴显示按真实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) | 成交量↓                     │   │  速度控制       │
│  │  绿色买盘   红色卖盘                               │   │  导航控制       │
│  └─────────────────────────────────────────────────────┘   │  进度显示       │
│  ┌─────────────────┬─────────────────────────────────┐   │  统计信息       │
│  │   价格趋势图     │      成交量分析图               │   │                 │
│  └─────────────────┴─────────────────────────────────┘   │                 │
│  ┌─────────────────────────────────────────────────────┐   │                 │
│  │              统计信息显示区                          │   │                 │
│  └─────────────────────────────────────────────────────┘   │                 │
└─────────────────────────────────────────────────────────────┴─────────────────┘

🔍 数据解读指南

市场深度分析

  1. 流动性观察: 柱体越高表示该价位挂单量越大
  2. 价差分析: 黄色区域宽度显示买卖价差
  3. 支撑阻力: 高买柱形成支撑,高卖柱形成阻力
  4. 订单分布: 观察不同价位的挂单分布情况

交易信号识别

  • 价差收窄: 买卖价差变小,流动性改善
  • 大单出现: 某个价位柱体异常增高
  • 失衡信号: 买盘或卖盘明显占优

⚙️ 技术实现

核心算法

# 成交量对数变换
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 核心特性: 倒置显示 + 类对数刻度 + 统一价格轴