4、做市商风控体系:风控系统的三层架构与指标设计原则
做市商的风控系统,说白了就是你的「刹车系统」。
我见过不少团队,策略写得漂亮,交易执行也快,但风控这块就是个空壳子。结果呢?一次极端行情,几分钟就把几个月的利润全吐回去了。嗯,这可不是危言耸听。
今天我们就来聊聊风控系统的三层架构——策略层、执行层、监控层,以及风控指标该怎么设计。
4.1 为什么需要三层架构?
你想想看,做市商每天要处理成千上万笔订单。如果所有风控逻辑都揉在一起,出问题的时候你根本不知道是哪里崩了。
我个人习惯把风控拆成三层,每层各司其职:
- 策略层:管「该不该做」—— 决定交易方向、仓位大小
- 执行层:管「能不能做」—— 检查订单合法性、资金余额
- 监控层:管「做得怎么样」—— 实时盯盘、异常报警
这样分层的好处是:某一层出问题,不会牵连其他层。我在项目中遇到过,执行层因为交易所API超时卡住了,但策略层和监控层依然正常工作,能及时发出警报并暂停交易。
4.2 策略层风控
策略层是风控的第一道防线。它决定的是「要不要开这个仓」。
核心指标包括:
| 指标 | 说明 | 我的经验值 |
|---|---|---|
| 最大持仓量 | 单个品种最多持有多少张 | 建议不超过总资金的20% |
| 最大敞口 | 净头寸的绝对值上限 | 我一般设总资金的5% |
| 最大订单数 | 同时挂单数量上限 | 超过1000单就要小心了 |
| 最大撤单率 | 撤单次数/总订单数 | 超过30%说明策略有问题 |
重要原则:策略层的风控参数,必须写在配置文件里,不能硬编码。我曾经见过有人把最大持仓量写死在代码里,结果想改参数还得重新编译部署——太坑了。
4.3 执行层风控
执行层是「守门员」。策略层说「可以开仓」,但执行层还要再检查一遍。
执行层主要做这几件事:
- 资金检查:账户余额够不够?保证金够不够?
- 价格检查:订单价格是否偏离市场太远?我一般设偏离不超过0.5%
- 频率检查:同一品种每秒最多下几单?超过阈值直接拒绝
- 重复检查:同样的订单是不是已经发过了?防止重复提交
避坑指南:我曾经遇到过一个bug,因为网络延迟,同一个订单被重复提交了3次。结果交易所那边成交了3笔,我们这边只记录了一笔。后来我加了个「订单指纹」机制——每个订单生成一个唯一哈希值,执行层先查哈希表,重复的直接丢弃。
4.4 监控层风控
监控层是「瞭望塔」。它不直接干预交易,但负责实时盯盘和报警。
监控层需要关注这些指标:
- 延迟监控:从策略生成订单到交易所确认,耗时超过500ms就要报警
- 成交率监控:挂单成交率突然下降,可能是流动性出了问题
- 盈亏监控:实时计算PnL,亏损超过阈值自动暂停
- 连接状态:交易所API、数据库、网络,任何一个断开都要立刻通知
监控层还有一个重要功能——熔断。当某个指标连续触发报警,监控层可以直接切断交易链路。我习惯设三级熔断:
- 一级:发邮件+短信通知
- 二级:暂停该品种交易
- 三级:全品种暂停,人工介入
4.5 风控指标设计原则
指标设计不是拍脑袋。我总结了几条原则:
| 原则 | 解释 | 反面案例 |
|---|---|---|
| 可量化 | 每个指标必须有明确的数值 | 「不要下太多单」—— 这叫废话 |
| 可观测 | 指标值要能实时获取 | 「市场情绪」—— 你拿什么量化? |
| 可行动 | 触发阈值后有明确动作 | 「注意风险」—— 然后呢? |
| 可调整 | 参数能动态修改 | 写死在代码里,改一次重启一次 |
小技巧:指标阈值不要设得太死。我习惯用「动态阈值」——比如最大持仓量,平时是20%,波动率大的时候自动降到10%。说白了,风控也要跟着市场走。
4.6 三层架构的关系图
下面这张图展示了三层架构的协作关系:
你看,策略层往下传信号,执行层做检查,监控层实时盯着。一旦监控层发现问题,可以直接向上反馈熔断信号。这个闭环设计,我用了好几年,基本没出过大问题。
4.7 最后说两句
风控系统不是一锤子买卖。你上线之后还要不断调参数、加指标。我每个月都会复盘一次风控日志,看看哪些指标触发了但没意义,哪些该触发却没触发。
记住一句话:风控不是为了限制你赚钱,而是为了让你活得更久。
公众号:蓝海资料掘金营,微信deep3321