01
行情数据源概述
为什么需要聚合行情?主流交易所API对比(Binance、OKX、Coinbase)。
交易所数据源
02
WebSocket基础
WebSocket协议原理、与HTTP的区别、心跳机制。
协议实时
03
Python WebSocket实战
使用websockets库连接交易所,订阅深度流和交易流。
Python代码
04
数据清洗与标准化
不同交易所的数据格式差异,统一成标准OrderBook和Trade结构。
ETL规范
05
内存中的OrderBook维护
使用sortedcontainers维护买卖盘口,增量更新与快照恢复。
数据结构性能
06
K线基础概念
开盘价、收盘价、最高价、最低价、成交量,时间周期的选择。
OHLC周期
07
Tick级K线生成
从逐笔成交数据实时合成1分钟K线,处理跨周期边界。
实时合成
08
多周期K线聚合
基于1分钟K线合成5分钟、15分钟、1小时等周期,重采样算法。
聚合重采样
09
K线数据存储
使用InfluxDB存储K线数据,Schema设计与查询优化。
时序库InfluxDB
10
实时数据管道架构
生产者-消费者模式,使用asyncio.Queue解耦行情接收与K线生成。
架构异步
11
多交易所聚合器设计
统一订阅管理器,连接池管理,断线重连策略。
高可用重连
12
数据一致性校验
检查时间戳对齐、价格精度、成交量单位,处理数据缺失。
质量校验
13
性能优化
使用Cython加速OrderBook操作,内存池与对象复用。
Cython优化
14
K线指标计算
在K线流上实时计算SMA、EMA、RSI、MACD,滑动窗口算法。
指标技术分析
15
事件驱动架构
基于K线生成事件,触发策略信号,使用回调函数与消息队列。
事件MQ
16
历史数据回放
从数据库读取历史Tick数据,模拟实时推送,用于策略回测。
回测模拟
17
WebSocket安全
WSS加密连接、API Key鉴权、IP白名单。
安全加密
18
分布式部署
使用Redis Pub/Sub分发行情,多进程/多机器协同。
分布式Redis
19
监控与告警
行情延迟监控、连接状态告警、数据异常检测。
监控告警
20
K线可视化
使用Plotly绘制实时K线图,OHLC图表与成交量柱状图。
可视化Plotly
21
REST API补充
使用REST API获取历史K线数据,补全WebSocket缺失数据。
REST补全
22
数据压缩与归档
使用Parquet格式存储历史Tick数据,按日期分区。
Parquet存储
23
单元测试
为OrderBook、K线生成器编写测试用例,使用pytest-asyncio。
测试pytest
24
压力测试
模拟万级连接,测试系统吞吐量与延迟,使用Locust。
压测Locust
25
常见坑与解决方案
时间戳时区问题、数据乱序、交易所限频。
踩坑实战
26
扩展:支持期货合约
处理资金费率、标记价格、持仓量数据。
期货衍生品
27
扩展:支持期权数据
处理隐含波动率、希腊字母。
期权希腊字母
28
项目实战:完整聚合系统
搭建一个完整的实时行情聚合系统,从零到一。
全栈实战
29
项目部署
使用Docker容器化部署,Kubernetes编排。
DockerK8s
30
总结与展望
当前架构的局限性,未来方向(Flink、Kafka流处理)。
流处理展望