3. 欧盟MiFID II / MiFIR:算法交易定义与分类、算法测试与认证要求、交易报告义务、最佳执行规则
好,我们直接进入正题。欧盟的MiFID II,说实话,是我这些年研究过的监管框架里,最“较真”的一个。它不像某些地区的规则,写得很模糊,留给你一堆解释空间。MiFID II是那种——你写一行代码,它都要管一管的风格。
我个人习惯把MiFID II对算法交易的态度总结为四个字:“全流程穿透”。从你定义什么是算法,到你怎么测试它,再到你每笔交易怎么报,最后到你怎么证明你给客户执行到了最优价格——它全给你圈死了。今天我们就把这四个环节拆开揉碎了讲。
3.1 算法交易的定义与分类
先看定义。MiFID II里对算法交易的定义,其实挺窄的,但也很精准。它说的是:“交易指令的生成、提交或执行,由计算机算法自动决定,且无需人工逐笔干预”。
你想想看,这里的关键词是什么?是“自动决定”和“无需人工干预”。
我在项目中遇到过不少团队,他们觉得只要用了VWAP或者TWAP,就算算法交易了。嗯,严格来说,如果那个VWAP切片器是人工手动触发的,那它可能不算。但如果你写了个程序,自动根据市场波动调整切片速度,那它就妥妥地进入了监管视野。
MiFID II把算法交易分成了几类,我列个表,大家看得更清楚:
| 分类 | 典型策略 | 监管关注点 |
|---|---|---|
| 延迟敏感型 | 做市、高频套利 | 市场滥用风险、系统稳定性 |
| 执行算法 | VWAP、TWAP、Implementation Shortfall | 最佳执行、市场冲击 |
| 智能订单路由 | SOR、暗池扫描 | 透明度、订单保护 |
| 做市策略 | 被动报价、存货管理 | 持续报价义务、风险管理 |
这里有个坑,我提醒一下。很多做市商觉得自己只是“提供流动性”,不算算法交易。但MiFID II明确说了:只要你的报价逻辑是自动化的,哪怕你只是每隔几秒刷新一次双边报价,你也算算法交易。我曾经见过一家小型做市商,因为没注册为算法交易员,被罚了六位数欧元。嗯,这钱花得冤。
3.2 算法测试与认证要求
这部分是MiFID II里最“硬核”的。它要求所有算法交易系统在上线前,必须经过严格的测试和认证。说白了,你不能把代码写完就直接扔到生产环境里跑。
测试要求分三层:
- 单元测试:每个模块单独测。比如你的订单管理模块、风控模块、市场数据接口,都得单独跑一遍。
- 集成测试:把模块拼起来,模拟真实市场环境。我记得有一次,我们做集成测试时发现,当市场波动率突然飙升时,我们的风控模块和订单路由模块之间有个死锁。幸亏是在测试环境发现的,要是上了生产,后果不堪设想。
- 压力测试:这是最关键的。监管要求你模拟极端行情——比如闪电崩盘、流动性枯竭、网络延迟飙升。你的算法必须在这种环境下还能稳定运行,或者至少能优雅地降级。
认证要求呢?MiFID II要求算法交易员必须向监管机构提交一份“算法认证报告”。这份报告里要包含:
- 算法的逻辑描述(不能是黑箱)
- 测试结果(包括压力测试)
- 风险控制措施(比如最大订单量、价格偏离限制)
- 回测与实盘差异分析
这里我给大家一个避坑指南:我曾经见过一家公司,回测做得漂漂亮亮,年化收益30%,夏普比率3.0。结果一上实盘,直接亏了20%。为什么?因为回测时他们用了未来数据,而且没考虑交易成本。所以,监管现在明确要求:回测必须使用“前瞻性”数据,且必须扣除所有交易成本。别想着糊弄过去。
核心要点:算法测试不是走过场。监管机构会不定期抽查你的测试日志。如果你拿不出来,或者测试不充分,轻则罚款,重则吊销算法交易牌照。
3.3 交易报告义务
交易报告,说白了就是监管要你把你做的每一笔交易,都详细地报上去。MiFID II在这方面比它的前身MiFID I要严格得多。
报告的内容包括但不限于:
- 交易时间(精确到微秒)
- 交易品种(ISIN代码)
- 买卖方向
- 价格和数量
- 交易场所
- 算法标识(如果是算法交易)
- 客户标识(如果是代客交易)
你想想看,这数据量有多大?我参与过一个项目,客户每天要上报几百万笔交易。如果靠人工去填,根本不可能。所以,大部分机构都会开发自动化的报告系统。
这里有个技术细节:报告的时间戳必须使用UTC时间,且精度要达到微秒级。我记得有一次,我们系统用的是毫秒级时间戳,结果监管机构直接打回来,说精度不够。没办法,我们只能把所有时间戳都改成微秒级,还加了个NTP同步机制。
小技巧:如果你的交易系统是分布式的,一定要确保所有节点的时间是同步的。否则,你上报的交易时间可能会出现“倒流”的情况——比如订单A在订单B之后发出,但时间戳却比B早。这种错误在监管眼里是致命的。
3.4 最佳执行规则
最佳执行,是MiFID II里最“人性化”的一条规则。它要求经纪商在执行客户订单时,必须采取“一切合理步骤”,为客户争取最优的交易结果。
什么叫“最优”?不是单纯的价格最低。MiFID II列出了五个维度:
- 价格:当然是越便宜越好
- 成本:包括佣金、税费、清算费
- 速度:执行越快越好
- 成交概率:别给我挂个单半天成交不了
- 市场影响:别一买就把价格拉上去
这五个维度之间是有冲突的。比如,你想价格最优,可能就得牺牲速度;你想速度最快,可能就得接受更高的成本。所以,监管要求你必须有一个“最佳执行政策”,明确说明你在不同情况下如何权衡这些维度。
我建议大家在设计算法时,把最佳执行规则直接嵌入到代码里。比如,你可以写一个权重函数:
def best_execution_score(price, cost, speed, fill_prob, market_impact):
# 根据客户类型和订单类型,动态调整权重
if order_type == 'aggressive':
weights = [0.2, 0.1, 0.4, 0.2, 0.1] # 速度优先
elif order_type == 'passive':
weights = [0.4, 0.2, 0.1, 0.1, 0.2] # 价格优先
else:
weights = [0.3, 0.2, 0.2, 0.2, 0.1] # 均衡
score = (weights[0] * price +
weights[1] * cost +
weights[2] * speed +
weights[3] * fill_prob +
weights[4] * market_impact)
return score
当然,这只是个示例。实际项目中,你还需要考虑流动性、波动率、订单簿深度等因素。但核心思想是一样的:你不能拍脑袋决定,必须有一个可量化的、可回溯的决策逻辑。
警告:最佳执行不是一句空话。监管机构会定期检查你的执行质量。如果你给客户执行的价格,明显差于市场上同时段的其他交易,你就要准备好解释为什么。我曾经见过一家经纪商,因为没给客户执行到最优价格,被要求赔偿客户损失,外加罚款。嗯,这教训够深刻。
知识体系总览
最后,我画了一张图,把今天讲的内容串起来。你可以把它当作一个知识框架,方便以后回顾。
好了,这一章的内容就到这里。MiFID II的这四个方面,每一个单独拿出来都能讲一整天。但核心逻辑是相通的:监管要的不是你赚多少钱,而是你赚得“透明”、“可控”、“公平”。记住这一点,你设计算法时就不会跑偏。
公众号:蓝海资料掘金营,微信deep3321