一个错误程序引发的地震:光大证券被罚5.2亿

摘要: 8月16日,光大证券程序员演示操作时敲下的一个键,引发了A股市场自诞生以来的最大乌龙,管理层急于补救的措施,又让光大证券陷入内幕交易质疑。 昨日下午,证监会就光大证券异

  8月16日,光大证券程序员演示操作时敲下的一个键,引发了A股市场自诞生以来的最大乌龙,管理层急于补救的措施,又让光大证券陷入内幕交易质疑。

  昨日下午,证监会就光大证券异常交易事件召开了专场通气会,公布了调查结果和处罚决定。因异常事件发生之后、信披之前的卖空操作,这一事件被定性为内幕交易。光大证券被处以没收所有违法所得,以及5倍的罚款,罚没款总金额达到5.23亿元。徐浩明、杨赤忠、沈诗光、杨剑波等四人被处以警告,罚款60万元,并在证券市场和期货市场都被终身禁入。

  在给出严厉罚单的同时,证监会开始对各个券商的量化投资进行排查,并试图在鼓励创新与加强风控间寻求一种平衡。除此之外,对现有交易制度的反思也因光大证券事件被摆上台面,证监会即将出台一系列政策,对异常交易发生前的防火墙、发生后的纠错及熔断机制做出规定。

  错误的“重下”功能

  证监会调查结果表明,光大证券策略投资部自营业务使用的策略交易系统中,订单生成系统中ETF套利模块的“重下”功能(用于未成交股票的重新申报),在设计时误将“买入个股函数”写成“买入ETF一篮子股票函数”。执行系统错误地将市价委托订单的股票价格默认为“0”,导致系统对市价委托订单是否超出账户授信额度不能进行正确校验。

  再加上策略投资部长期没有纳入公司的风控体系,在8月16日异常交易之前,该系统实际运行不足15个交易日,“重下”功能甚至从未实盘启用。

  直到8月16日11点05分,交易员想尝试使用“重下”功能,让当天第三组交易时未成交的股票自动补单,他向程序员请教,程序员演示时按下了“重下”按钮,补单买入24只股票被执行为“买入24组ETF一篮子股票”,并报送至订单执行系统。由此引发了234亿元订单进入上证所系统,72.7亿元实际成交。

  “这是光大证券内控缺失和管理混乱造成的。”证监会相关负责人如此评价,“策略投资部在外购软件之后,又自行开发了订单生成系统。系统本身就带有严重缺陷。即使8月16日不出现异常交易事件,它在之后的某个时间点迟早可能会被触发。”

  内幕交易

  如果仅仅是系统错误,光大证券仅仅会受到内控缺失、管理混乱的指责。但其管理团队在市场尚不知情时做出的“卖空”决定,才是光大证券被认定为内幕交易、受到严厉处罚的最重要原因。

  异常交易之后,11时20分,计划财务部总经理沈诗光向策略投资部总经理杨剑波询问情况后,向总裁徐浩明汇报大盘暴涨可能和策略投资部的操作有关,11时40分至12时40分,徐浩明、杨赤忠(助理总裁、分管策略投资部)、沈诗光、杨剑波等人紧急商定卖空股指期货、转换并卖出ETF对冲风险。

  13时,光大证券开始停牌,直到14时22分,光大证券才正式公告“当天上午公司策略投资部自营业务使用独立的套利系统时出现问题”,投资者至此才了解到上午暴涨的真相。但在此期间,光大证券却卖空股指期货合约共6240张,转换并卖出180ETF 2.63亿份、50ETF基金6.89亿份。上述操作共获利及规避损失8721万元。

  而这8721万元,是证监会处罚光大证券的依据,除了没收该收入之外,证监会还对其处以了5倍罚款。而在上述过程中参与决策的4人,悉数被罚。

  除此之外,光大董秘梅键在对事件情况和原因并不了解的情况下,轻率向记者否认了“乌龙指”事件,这一表态被视为误导投资者,梅键也因此被责令改正,并处以20万元罚款。

  此外,光大证券的自营业务(固定收益证券除外)被停,新业务被暂停审批,根据证监会要求,光大证券还将整改并处分相关责任人,并将整改情况和处理结果报告证监会。

时间: 2024-08-16 20:06:45

一个错误程序引发的地震:光大证券被罚5.2亿的相关文章

一个小程序引发的思考

   既然是一个小程序引发的思考,那么我们就先看看这个小程序,看看他有何神奇之处: namespace ConsoleApplication1 { class Program { static void Main(string[] args) { MyClass s = new MyClass(); s.val = 10; int i = 20; Console.WriteLine("s.val={0},i={1}",s.val,i); MyMethod(s, i); Console.

为AJAX应用程序构建一个错误提交系统

ajax|程序|错误 摘要 当一些应用程序崩溃时,它们往往向用户提供一个机会来提交关于该错误的信息.该信息能够帮助开发者追踪并修正错误.本文将向你展示如何在你的JavaScript/AJAX应用程序中实现这样的功能. 一. 引言 如果可以存取终端用户的计算机的话,那么终端用户的JavaScript错误就很容易调试.既然你不能实现这样的操作,那么你可以采取下面这样的措施:让用户向你发送你修正该问题需要的内容. 当象Mozilla浏览器这样的应用程序崩溃时,它们会启动一个错误提交程序.这些程序将询问

代码-请问这个程序怎么修改,总是提示一个错误

问题描述 请问这个程序怎么修改,总是提示一个错误 #include#include#include#include#define N 3#define M 10int add = N-1;int sum[N]={0}Max[N]Min[N];float aver[N]={0};struct player{ int num; char name[8]; int score[M];}PL;void Inistplayer(PL player[]int n){ int i; for(i=0;i sca

一个c++程序,编译没错。运行后出现错误 debug assertion failed

问题描述 一个c++程序,编译没错.运行后出现错误 debug assertion failed 具体错误如图 解决方案 VC++调程序出现如下错误: Debug Assertion Failed! Program: D:wyuStuddebugwyuStud.exe File: afx.inl Line:157 可能问题:1.野指针;2.内存泄露 解决方法: 1.看一看你的程序里是不是有ASSERT()或VERIFY()语句.这两个宏是用来测试它的参数是否为真的.出现你说的,这说明你的指针或表

buffer-C#的安装程序,导入压缩包的一个错误

问题描述 C#的安装程序,导入压缩包的一个错误 已离职的同事,用C#写的客户端程序,功能是导入固定格式的压缩包或者Excel文件,对应显示数据,验证通过后,导出来成zip包.可以再次将导出的zip包导入进去,显示同样的数据,目前问题是,将通过验证导出的数据包再次导入时,弹出框提示错误,代码里,捕获了异常,弹出了异常信息:Size mismatch:4294967295;115<->88;115.在ICSharpCode.SharpZipLib.ZipInputStream.BodyRead(B

调试-在测试一个tesseract程序时logcat抛出一个错误无法解决,请教各位大侠

问题描述 在测试一个tesseract程序时logcat抛出一个错误无法解决,请教各位大侠 这是logcat的信息 02-09 12:45:12.405: D/MainActivity ...(2210): begin>>>>>>> 02-09 12:45:12.409: D/nimei(2210): ---in ocr() before try-- 02-09 12:45:12.409: V/MainActivity ...(2210): not in the

一个SQL语句引发的ORA-00600错误排查

作者介绍 杨建荣,[DBAplus社群]联合发起人.现就职于搜狐畅游,Oracle ACE-A.YEP成员,超7年数据库开发和运维经验,擅长电信数据业务.数据库迁移和性能调优.持Oracle 10G OCP,OCM,MySQL OCP认证,<Oracle DBA工作笔记>作者.   Merge是从Oracle 9i就引入的功能,它是有别于其他DML中的一种特殊语句,类似于MySQL中的 insert into on duplicate key操作,而且Merge功能更丰富,可以同时对一个表中的

c语言-C语言的推箱子在推箱子移动的时候存在一个错误,求大牛解答,并且修改程序绝对不麻烦,谢谢了。

问题描述 C语言的推箱子在推箱子移动的时候存在一个错误,求大牛解答,并且修改程序绝对不麻烦,谢谢了. #include #include #include //定义墙壁的高和宽 #define H 11 #define W 26 int scr[H][W] = {{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1}, {1,0,0,0,0,0,0

c++-C++,书店的一个小程序,有错误

问题描述 C++,书店的一个小程序,有错误 #include #include using namespace std; class Sales_data { friend std::istream& operator>>(std::istream&, Sales_data&); friend std::ostream& operator<<(std::ostream&, const Sales_data&); friend bool