在实时风控规则集成方面,要在撮合过程中嵌入风控逻辑,且保证风控检查在毫秒级内完成。
但目前没有现成且方便合适的规则引擎,所以团队又得开发一个类似的库,确保风控逻辑一旦需要修改,无需停机重编译,毕竟一旦撮合系统停机就可能给证券交易所带来巨大的损失。
秦奕和团队里负责这块的成员一起,查阅大量资料,参考国内外相关案例,一点点搭建框架,编写代码。
在网络通信与协议设计上,为高效传输订单和行情数据,像是 http 这类用于传输文本的常规可读性协议是无法满足需求的,团队需自定义二进制协议,减少传输开销。
好在秦奕前世就了解过不少 protobuffer 和 brpc 之类的压缩协议,倒也能给出一个设计思路,不过这种协议序列化和反序列化的工具实现起来也还有一定难度,又容易出错,短时间里是开发不出来的。
秦奕暂时是在系统设计上留出了切换协议的空间,开发时先用可读性协议,后续等工具完成了之后再切换成二进制协议。
在窄带网络环境下,协议还要处理丢包、乱序问题,秦奕之前在计算机网络标准里面提到的基于 udp 实现的冗余确认机制相对比较轻量,团队可以直接参考该协议来保证数据可达。
开发与测试工具的匮乏,同样给团队带来极大困扰。
由于目前方寸集成开发环境并没有针对多线程程序的可视化调试器,相关问题的处理开发人员只能依赖日志和核心转储分析,定位问题的效率极低。
自动化测试工具的缺乏也让团队只能手工编写脚本模拟大规模订单流,难以覆盖瞬间行情暴涨暴跌等真实场景,不过长河这个软件流水线工具到也能给开发人员提供不少帮助。
尽管困难重重,秦奕和团队成员并未退缩,他们互相鼓励,迎难而上,在一次次的尝试与失败中,不断探索前行。
另外,董日成后来还找到秦奕,谈及另一个展望。
目前鹏城证交所主要面向本地券商,不过既然五城的骨干网络已经联通,他们自然希望鹏交所未来能面向全国甚至全球券商服务。
董日成表示,政治方面的问题他们正在着手解决