C++ 金融高频交易 · 核心应用

📚 共计 30 章节
01
C++与高频交易概述
为什么是C++?高频交易的核心挑战:延迟、吞吐量、确定性。
核心概念延迟
02
开发环境搭建
Linux内核调优(CPU隔离/中断亲和性)、GCC/Clang与优化选项(-O3, -march=native)。
环境编译器
03
基础数据类型与性能
基本类型内存布局、缓存行对齐(alignas)、避免false sharing。
内存对齐
04
内存管理艺术
栈 vs 堆、内存池(Memory Pool)设计与实现、避免动态分配。
内存池性能
05
引用、指针与智能指针
左值/右值引用、移动语义(move semantics)、unique_ptr与性能权衡。
移动语义RAII
06
constexpr与编译期计算
constexpr函数、consteval、模板元编程基础,将运行时计算移至编译期。
编译期元编程
07
模板编程与策略模式
模板特化、SFINAE、CRTP实现静态多态。
模板静态多态
08
标准模板库(STL)精讲
vector vs deque vs list性能对比、reserve()、自定义分配器。
STL分配器
09
算法复杂度与数据结构选择
O(1) vs O(log n)在高频场景下的影响、跳表、环形缓冲区。
复杂度环形缓冲
10
并发编程基础
std::thread、std::mutex、std::atomic、内存序(memory_order)。
并发原子
11
无锁数据结构
无锁队列(Lock-Free Queue)实现、ABA问题、Hazard Pointer。
无锁ABA
12
原子操作与CAS
compare-and-swap、fetch_add、实现高性能计数器与状态机。
CAS原子
13
内存屏障与指令重排
volatile、编译器屏障、CPU屏障(mfence/lfence/sfence)。
屏障重排
14
网络编程基础
Socket API、非阻塞I/O、epoll(边缘触发 vs 水平触发)实战。
epoll非阻塞
15
高性能网络库
ZeroMQ、nanomsg、自制简单Reactor模式。
网络库Reactor
16
应用层协议解析
FIX协议解析器优化、二进制协议设计。
FIX解析
17
序列化与反序列化
FlatBuffers、Cap'n Proto、自制紧凑二进制编码。
序列化二进制
18
时间与时钟
高精度时间(clock_gettime, TSC寄存器)、时间戳压缩。
时钟TSC
19
日志系统设计
异步日志、无锁日志缓冲区、分级日志与性能开销。
日志无锁
20
性能剖析与调优
perf、gprof、火焰图、CPU采样、热点函数定位。
perf火焰图
21
编译器优化与内联
__attribute__((always_inline))、LTO、PGO。
LTOPGO
22
SIMD指令集入门
SSE/AVX指令、向量化加法、快速比较、数据对齐要求。
SIMD向量化
23
订单簿数据结构
价格/时间优先队列、Level 2数据存储、快照与增量更新。
订单簿L2
24
交易策略回测引擎
事件驱动架构、Tick级回测、性能基准测试。
回测事件驱动
25
风险管理模块
实时计算敞口、希腊字母(Greeks)、止损逻辑延迟优化。
风控Greeks
26
网关与交易所接口
FIX网关实现、UDP组播行情接收、心跳机制。
网关UDP
27
系统稳定性与容错
看门狗(Watchdog)、优雅关闭、状态恢复。
容错Watchdog
28
测试策略
单元测试(Google Test)、性能回归测试、混沌工程。
测试混沌
29
实战项目一:低延迟行情接收器
从UDP组播到内存队列,构建完整低延迟链路。
实战行情
30
实战项目二:做市商系统骨架
构建一个简单的Market Making系统,涵盖订单管理与报价。
做市商骨架