一、权限与风控概述:量化平台为什么需要权限与风控?核心概念解析
做量化系统这些年,我见过太多「裸奔」的平台了。
什么叫裸奔?就是谁都能下单,谁都能改策略,谁都能看别人的持仓。说实话,早期小团队搞量化,大家坐在一起,喊一嗓子「别动我的策略」就完事了。但一旦系统上线、用户超过两位数、资金开始流转……嗯,问题就来了。
我有个朋友,他们团队做的量化平台,上线第三天就出了事故——一个实习生不小心点了「全仓做空」,把整个基金的头寸给干翻了。你说这是权限问题还是风控问题?其实都有。权限没拦住不该操作的人,风控没拦住不该执行的指令。
所以今天咱们就聊聊:量化平台为什么需要权限与风控?以及那几个绕不开的核心概念——用户、角色、资源、策略。
1.1 为什么量化平台离不开权限与风控?
你想想看,量化平台本质上是个什么?
它是个「钱+代码」的混合体。策略是代码,交易是钱。代码写错了可以回滚,钱转出去了可就真没了。
我个人的经验是,量化平台的风险主要来自三个方向:
- 操作风险:人干的事。比如误操作、越权操作、恶意操作。
- 系统风险:代码干的事。比如策略bug、接口超时、数据错乱。
- 外部风险:别人干的事。比如黑客攻击、API滥用、撞库。
权限系统主要解决第一个,风控系统主要解决第二个和第三个。但现实中,它们经常交织在一起。
核心观点:权限是「谁可以做什么」,风控是「什么可以做」。两者缺一不可。
举个例子。一个交易员有下单权限(权限允许),但他试图在非交易时段下单1000手(风控拦截)。你看,权限放行了,风控拦住了。反过来,如果风控没拦住,那权限再严格也没用。
所以我的建议是:权限做「准入」,风控做「准出」。两者配合,才能形成闭环。
1.2 核心概念解析:用户、角色、资源、策略
这四个词,说白了就是权限与风控的「四块积木」。搞懂了它们,整个体系就清晰了。
1.2.1 用户(User)
用户就是「谁」。可以是人,也可以是程序(比如API调用方)。
我在项目中遇到过一种情况:同一个用户,白天是人操作,晚上是程序跑策略。那权限怎么给?给多了怕滥用,给少了跑不动。
所以用户模型里,我习惯加一个「身份标签」字段:
{
"userId": "U10086",
"userType": "human", // human | bot
"department": "quant",
"riskLevel": "low"
}
别小看这个标签。它决定了后续的权限继承和风控阈值。
1.2.2 角色(Role)
角色是「一类人」。说白了就是权限的集合。
常见的角色有:
- 管理员:啥都能干。但建议加个「双人复核」。
- 交易员:能下单、能看持仓。但不能改策略。
- 策略研究员:能写策略、能回测。但不能实盘交易。
- 风控员:能设风控规则、能冻结账户。但不能交易。
- 观察员:只能看,啥都不能动。
这里有个坑,我踩过:角色别太细。你搞个「高级交易员」「初级交易员」「实习交易员」……最后你会发现,权限配置比写策略还累。我的经验是,3-5个角色就够了,剩下的用「临时权限」去补充。
小技巧:角色设计遵循「最小权限原则」——给一个人刚刚够用的权限,不多给一分。
1.2.3 资源(Resource)
资源就是「什么东西」。在量化平台里,资源包括:
- 策略:代码、参数、回测结果
- 订单:委托、成交、撤单
- 账户:资金、持仓、流水
- 数据:行情、因子、研究报告
- 系统配置:风控参数、费率、交易时段
资源之间还有层级关系。比如「策略A」下面有「策略A的实盘版本」和「策略A的回测版本」。权限能不能继承?我建议是:默认不继承,显式授权。否则很容易出现「给了策略查看权,结果连底层数据都暴露了」的情况。
1.2.4 策略(Policy)
这里的「策略」不是交易策略,而是权限策略和风控策略。
权限策略决定「能不能做」,风控策略决定「做了会怎样」。
举个例子:
| 策略类型 | 示例 |
|---|---|
| 权限策略 | 「交易员角色可以下单,但单笔不超过100手」 |
| 风控策略 | 「当日累计亏损超过5%,自动暂停交易」 |
| 混合策略 | 「只有风控员才能修改风控参数,且修改后需要管理员审批」 |
我个人的习惯是,把策略写成「条件+动作」的形式:
IF 用户.角色 == "交易员" AND 订单.金额 > 100000
THEN 需要审批
ELSE 自动通过
这样写,业务方看得懂,开发也容易实现。
1.3 权限与风控的关系:一张图说清楚
下面这张图,是我自己画的一个简化模型。它展示了用户从登录到执行交易的全流程中,权限和风控分别在哪个环节起作用。
这张图里,我刻意把「权限校验」放在「操作执行」之前,把「风控拦截」放在「操作执行」之后。为什么?
因为权限是「能不能进门」,风控是「进门后能不能乱来」。顺序很重要。
注意:千万不要把权限和风控混在一起做。我曾经见过一个系统,把「用户角色」和「风控阈值」写在同一个配置文件里。结果改个风控参数,不小心把权限也改了……那场面,惨不忍睹。
1.4 小结:记住这三句话
好了,第一章的内容差不多就这些。我帮你总结三句话,记住了,后面就好办了:
- 权限管「人」——谁可以做什么,基于角色和资源。
- 风控管「事」——什么可以做,基于策略和阈值。
- 两者要分离——代码分离、配置分离、数据库分离。
下一章,我们会深入权限模型的设计,聊聊 RBAC、ABAC 这些「听起来高大上、用起来真香」的东西。到时候我会拿一个真实的量化平台案例来拆解,保证你看完就能上手。
公众号:蓝海资料掘金营,微信deep3321