就在1小时,为17打拼的华尔街交易龙头受到重创。

经过17年的努力,成为华尔街首屈一指的交易公司之一,灾难不到1小时。

2012年8月1日,是骑士资本的噩梦。一个看似简单又难以发现的人为失误,让17的努力付之东流。软件错误导致该公司在1小时内直接交易损失4.4亿美元。结果,Knight Capital在第二年夏天被竞争对手Getco LLC收购。

骑士资本集团成立于1995,是华尔街知名的证券公司。高峰时交易量占纽交所17.3%,纳斯达克16.9%。

除了正常的经纪业务,公司还为客户提供交易平台系统,为高频交易服务。这个由嵌入式量化模型驱动的电子交易平台,不仅根据市场数据和相关信息为客户提供决策参考,还通过交易所接口帮助客户完成自动高速下单交易(自动下单接口在国内已经关闭)。

高度程序化的量化交易系统是骑士资本高效优质服务客户的基础平台。简单来说,投资证券的客户,按照设定的交易规则,软件可以自动帮你做“买入”和“卖出”交易。交易系统高度智能化。对于大单,会拆分成小单买不同的股票。让个股不要有太大的价格波动。

先解释一个术语“暗池”。假设我手里有2000万a股,希望有一天能卖掉。如果直接按一只股票的市价卖出,股价肯定会因为大量卖出而下跌。因此,交易的隐蔽性比交易的速度更重要。而通过普通交易软件挂出的大众投资者,可以看到有巨额订单,最终成交价格肯定低于我挂出的价格。为了减少这种负面影响,我会向经纪人发出“暗卖区块”的指令。该指令表明经纪人将订单发送给许多隐藏的客户,由交易对手执行。这种“暗化”策略让券商在匿名和市场冲击方面获得了至关重要的优势。类似于场内的“非展示”大宗交易。这将为股价的稳定带来好处,并促进流动性。

2011 6月10,纽交所要求券商支持零售流动性计划(RLP),也就是暗池功能。

2012年6月上旬,纽交所获得美国证券交易委员会批准提供“RLP”功能,并宣布将于2012年8月推出RLP功能,1。

经销商调试上线的时间只有30多天。

骑士资本的客户大部分是证券经纪人,有大量的金融服务巨头与之合作。市场要求他们不要放弃这个交易市场。

骑士资本的软件开发团队从开发、测试到上线只有1个月。他们正在全力以赴地工作。他们这次需要修改的核心交易模块叫做SMARS(智能市场准入路由系统)。

SMARS每秒执行数千个订单,可以在几毫秒内显示几十个不同交易所之间的价格。它可以接收上游用户的订单,拆分后发送到交易所进行撮合。

但是他们的交易系统在升级之前的版本时,还是留有一些重构代码和测试代码。其中一个名为“Power Peg”的订单算法代码是当时一个工程师写的测试程序,程序执行的指令就是高买低卖的测试策略。这种在系统中保留“死代码”的做法在大型系统中非常普遍。

不知道是文档错误还是工程师错误。由这次升级修改的RLP码中使用的开始交换标志与“功率锁定”算法的交换标志位相同。系统升级后,激活了高买低卖的算法。

随着8月1的临近,在上线前一周,工程师们在SMARS中手动将新的RLP代码部署到其八台服务器上。这时,工程师犯了一个致命的错误,没有将新代码复制到其中一个服务器上。他们的软件升级没有相应的审核机制,没有系统自动提醒机制,没有回归测试。我匆忙上网。

1年8月,美国东部时间上午8:01,一个名为BNET的内部系统自动生成了97封报警邮件,并发送给了骑士资本的工程师。但是这些机器邮件并没有引起工作人员的注意。也让骑士资本错过了修复系统的最后机会。

上午9:30,纽约证券交易所开始交易,交易系统开始接收来自经纪人的信息RLP订单,SMARS将收到的工作分配给其服务器。七台使用新RLP代码的服务器正确处理了订单。但是,发送到第八台服务器的订单有一个由重用标志激活的有缺陷的Power Peg代码。不管Knight从其他交易场所收到的确认执行的数量是多少,服务器开始为每个收到的母订单连续发送子订单。

灾难性的交易开始了。在有缺陷的Power Peg代码处理的212个传入母订单中,SMARS每秒发送数千个子订单,这些子订单将高买低卖,导致在大约45分钟内执行400万个154股票,超过3.97亿股。其中,75只股票,骑士资本推高超过5%,占交易量的20%以上;37只股票价格暴跌10%,占骑士资本交易量的50%以上。

9点34分,纽约证券交易所的计算机分析师注意到市场交易量是正常水平的两倍,将飙升的交易量追溯到骑士资本,并立即通知其首席信息官。

Knight Capital迅速召集了公司的顶级IT人员,花了20分钟才找出问题的原因。

9点50分,纽交所触发熔断机制,自动暂停多只股票交易。

9点58分,骑士资本的工程师确定了根本原因,关闭了SMARS在所有服务器上。然而,伤害已经造成了。Knight在154只股票中执行了超过400万笔交易,总计超过3.97亿股;它在80只股票中持有超过35亿美元,在74只股票中持有约3,654.38+0.5亿美元。

骑士资本对这一事件感到震惊,其股价从8月份的65438美元+00.33美元跌至2.58美元。此外,重量级客户TDA证券、先锋基金和富国基金都宣布将停止向骑士资本发送交易订单。事后统计显示,骑士资本在65,438+0小时的交易时间内在股票期货买入了约70亿美元。根据证券交易规则,骑士资本必须在三天内支付70亿美元的费用。当然,他根本买不起。

骑士资本向交易所申请取消这些交易指令,美国证券交易所主席按照规定只取消了其中的6个,其他的都不同意取消。

如果骑士资本第二天以更低的价格出售股票,市场可能会再次融化。为了稳定市场,高盛同意斥资4.4亿美元,以折扣价购买BUG软件在Knight Capital购买的部分头寸。

一周后,骑士资本获得4亿美元资本支持。第二年夏天,他被一家竞争对手收购。

多年后,在接受骑士资本前CEO采访时,他仍然认为骑士资本不是一家科技公司,而是一家利用科技的经济公司。很明显,他把技术当成了辅助功能,而不是公司的核心竞争力。减少多系统耦合复杂系统灾难性故障的策略:

1,意识等级

灾难性的故障不是来自外部,而是来自内部的技术故障或者我们错误的组合。

2、工具和方法

如果骑士资本能够严格执行现代软件开发和运营实践的方法,或许事件就不会发生。例如,使用版本控制、编写测试单元、代码审查、自动化测试、自动化部署、分布式部署过程、风险管理等。

3.时间管理

时间表是骑士资本未能提供RLP解决方案的另一个原因。IT项目经理和首席信息官应该推迟过于激进的交付计划,并使用替代的分阶段计划来对抗他们的业务领导。花30天时间来实施、测试和部署算法交易系统的重大变革,是冲动、幼稚和鲁莽的,算法交易系统被用来让市场每天价值数十亿美元。

4.鼓励不同的意见

即使发出了警告,也没有理会,以至于浪费了最后1小时查找错误的时间。企业必须奖励有效的奖励机制,并鼓励不同意见的有效表达。

一年后的2013年10月6日,13,美国证监会因1月的违规交易,对骑士资本罚款12万美元。