4、风控规则分类:交易前、交易中、交易后
做市商的风控规则,说白了就是三道防线。
我习惯把它们按时间轴切分:交易前、交易中、交易后。这三类规则,各自盯着不同的风险点。你想想看,如果只做交易前检查,那滑点风险谁来管?如果只做交易后监控,那爆仓了才报警,黄花菜都凉了。
所以,一个成熟的风控系统,必须把这三类规则串起来。今天我就把每一类拆开,讲讲里面的门道。
4.1 交易前规则:把风险挡在门外
交易前规则,是风控的第一道闸门。订单还没进市场,就先过一遍筛子。我个人习惯把这类规则叫做「准入检查」——不合格的订单,直接拒掉,不给交易所添乱。
4.1.1 价格偏离检查
这个最简单,也最容易被忽略。我记得刚入行时,有个同事的脚本出了bug,往市场里丢了一笔价格偏离市场中间价30%的买单。结果呢?瞬间被高频玩家吃掉,亏了十几万美金。
从那以后,我设计的系统里,价格偏离检查永远是第一优先级。逻辑是这样的:
// 伪代码示例:价格偏离检查
function checkPriceDeviation(order, marketPrice, thresholdPercent) {
const deviation = Math.abs(order.price - marketPrice) / marketPrice;
if (deviation > thresholdPercent) {
return { passed: false, reason: `价格偏离 ${(deviation * 100).toFixed(2)}%,超过阈值 ${thresholdPercent * 100}%` };
}
return { passed: true };
}
阈值怎么设?我建议分品种:
- 主流币种(如BTC/ETH):0.5% - 1%
- 流动性较差的币种:2% - 5%
- 新上线/波动剧烈的币种:5% - 10%
4.1.2 数量限制
数量限制,说白了就是「别一次下太多」。做市商的核心是提供流动性,不是赌方向。如果一笔订单的量太大,会把你的库存风险瞬间拉高。
我一般设两层限制:
- 单笔最大数量:比如不超过该币种24小时交易量的0.1%
- 单账户累计数量:比如某个账户在1分钟内累计下单量不超过某个值
这里有个坑:数量限制要和你的库存挂钩。如果你库存已经很大了,那单笔限制应该更严。我见过一个做市商,库存已经占了市场总量的5%,还在按正常阈值下单,结果被对手盯上,硬生生被逼仓了。
4.1.3 频率限制
频率限制,防的是「手滑」和「程序bug」。你想想看,如果某个策略模块出了死循环,一秒发一千笔订单,交易所不封你才怪。
我常用的频率限制策略:
| 维度 | 典型阈值 | 说明 |
|---|---|---|
| 每秒订单数 | 50笔/秒 | 超过直接熔断该策略 |
| 每分钟撤单率 | 80% | 撤单率过高说明策略有问题 |
| 单品种并发订单 | 20笔 | 防止订单簿被刷屏 |
4.2 交易中规则:动态盯防
交易中规则,是风控的第二道防线。订单已经发出去了,但还没成交或正在成交中。这时候要盯什么?两个核心:滑点和保证金。
4.2.1 滑点控制
滑点,就是「你看到的价」和「你成交的价」之间的差距。做市商最怕什么?怕的是挂单被吃掉后,市场瞬间反向波动,导致你补仓时滑点巨大。
我一般用两种方式控制滑点:
- 预期滑点检查:下单前,估算当前市场深度,如果预期滑点超过阈值(比如0.1%),就拒绝这笔订单
- 实际滑点监控:成交后,实时计算实际滑点。如果连续多笔滑点超标,自动降低下单频率或缩小报价价差
嗯,这里要注意:滑点控制和价格偏离检查是两回事。价格偏离检查看的是订单价格本身,滑点控制看的是成交过程中的市场冲击。我见过有人把这两个混为一谈,结果滑点控制形同虚设。
4.2.2 保证金检查
保证金检查,说白了就是「看看你还有多少钱」。做市商通常用杠杆,如果保证金不够,交易所会强平。那画面太美我不敢看。
我建议做两件事:
- 实时计算当前占用保证金:包括所有未成交订单的冻结保证金
- 设置预警线和平仓线:比如保证金率低于150%时报警,低于120%时自动减仓
4.3 交易后规则:事后复盘与止损
交易后规则,是风控的最后一道防线。订单已经成交了,风险已经发生了。这时候要做的,是控制损失、防止风险扩大。
4.3.1 持仓限额
持仓限额,就是「别在一个品种上押太多」。做市商的核心是赚价差,不是赌方向。如果某个品种的持仓量过大,一旦市场反向,亏损会非常恐怖。
我一般设三个维度的限额:
- 单品种净持仓:比如不超过该品种24小时交易量的2%
- 总净持仓:所有品种加起来,不超过总资产的某个比例(比如30%)
- 方向敞口:多头和空头的差值,不能超过某个绝对值
这里有个实战技巧:持仓限额要和波动率挂钩。波动率大的品种,限额要更小。我做过一个回测,如果把BTC的持仓限额设成和稳定币一样,那风险敞口会大得吓人。
4.3.2 盈亏监控
盈亏监控,是风控的「最后一道光」。如果前面所有规则都失效了,至少盈亏监控能告诉你:兄弟,你亏钱了,赶紧跑。
我常用的监控指标:
| 指标 | 计算方式 | 报警阈值 |
|---|---|---|
| 累计盈亏 | 所有已实现盈亏之和 | 当日亏损超过总资产的2% |
| 浮动盈亏 | 当前持仓的未实现盈亏 | 浮动亏损超过总资产的5% |
| 最大回撤 | 从峰值到当前值的跌幅 | 超过10%时强制减仓 |
4.4 三类规则的联动逻辑
这三类规则不是孤立的。它们必须联动起来,才能形成完整的风控闭环。
我画了一张图,展示它们之间的关系:
从图里你能看到:
- 订单先过交易前规则,不合格直接拒
- 通过后进入交易中规则,动态监控滑点和保证金
- 成交后进入交易后规则,检查持仓和盈亏
- 交易后的数据会反馈给交易前规则,动态调整阈值
- 任意环节触发规则,都会导致订单被拒或策略熔断
这个联动逻辑,我花了两年才打磨成熟。一开始我只做了交易前规则,结果交易中出了问题;后来加了交易中规则,又发现交易后没人管。直到把这三类规则串成闭环,风控才算真正「硬」起来。