管理大资金的量化交易系统,有没有出bug的情况?遇到bug采取何种应对措施?
同意
@梦想永动机
的说法,交易员是最后一道防线
量化交易系统是程序员开发的,如果程序员知道程序有 BUG 是不可能让系统上线生产环境的,那么“出现 BUG” 的判断必然是由交易员给出的判断。那么一旦实时交易中出现了严重的 BUG 会导致财产损失,最快速且最安全的解决方法必然是从交易员这道关立马先采取对应的措施!
题主说的是量化交易系统出现 BUG 怎么办,那么我们就先假设现在在生产环境跑着的系统已经有不为人知的安全隐患。
现在与量化交易系统绑定的,有着监控作用的必然需要有三道关,分别是:
事前风控
事中风控
交易员
事前风控 – 顾名思义已经在系统模块中,做出了类似于在订单指令未发出之前,防止下单程序存在 BUG 而导致疯狂,最终下单总量超过阈值等 BUG。如果事前风控的阈值控制在一个合理的范围内,可以避免一定程度上的损失,但更多的是由于资金量比较大,事前风控的阈值往往会设置比较大,在不超过阈值的情况下,由于 BUG 而导致财产的损失。事前风控能起到一定作用,但不是最关键的。
事中风控 – 在订单指令发送之后,通过其他渠道从对应的柜台轮询实时的后台数据,与内部系统记录数据做实时比对,同时监控资产、委托、成交等状况,如若异常则通知交易员。事中的可能不像事前能提前发现异常的状况而阻止指令下达,因为它会有一定的延迟,但事后的风控能更全面地监控到在事前风控无法阻止,处于阈值范围之内的异常状况,并反映给交易员。
交易员 – 前两道关,说到底,无论是事前还是事后,最终反应出来的现象以及异常报告,比如发现频繁挂撤单、价格档位异常、行情速度迟缓等,交易员这道关都能且理应识别到,交易员势必得时刻关注内部风控系统的监控状态以及第三方客户端交易软件的真实状态,然后来做出是否停止下单,通知运维关闭程序,是否需要补下单等等反应,并迅速反馈给对应的开发人员 BUG 的现象等。
不过请注意,风控多多少少会影响你的指令延时噢,algo 的时候你就是想高频低延,你需要自己权衡,但无论什么时候,好的交易员不能少。
基于量化交易系统在敏捷开发的情况下,when you fix a bug, you two 的情况下,请招多几个专业素养高的交易员,会对避免财产损失、定位 BUG 起到非常重要的作用
