【油价】负油价甩锅程序员?

【油价】负油价甩锅程序员?
本文插图
【油价】负油价甩锅程序员?
本文插图

作者 | 马超
责编 | 伍杏玲
出品 | 程序人生(ID:coder_life)
4月21日凌晨 , WTI 5月原油期货结算价跌至负数的-37.63美元/桶 , 令人意外的是 , 这只“黑天鹅 , 竟波及众多来自国内的中行原油宝产品客户 , 不但造成原油宝投资者血本无归 , 还倒欠银行资金的境地 。 从目前中行的回应来看 , 要求原油宝客户补回缺口资金 , 下面笔者就来带大家从IT的角度来解读一下此事件 。
【油价】负油价甩锅程序员?
本文插图

无杠杆的原油宝 , 怎么会倒贴钱?
从原油宝的说明上来看 , 该产品属于无杠杆产品 , 那么用户的钱是怎么亏的呢?
【油价】负油价甩锅程序员?
本文插图

原油宝的穿透损失出现得很神奇 , 我们看到WTI的最小价格变动为1美分 , 也就是当价格为1美分时 , 假如客户认为今后价格将反弹 , 他就可以用100美元本金 , 买入1万手的多单 , 多单的含义是客户以现价买入原油 , 然后以交割价格卖出 。 假如油价从1美分反弹到1美元 , 交割价格就是1美元 , 那么就会直接给客户带来1万美元的收益;而假如油价跌到0 , 也就是将100美元的本金赔进去 , 这看起来还真是挺完美的 。
但是万万没想到的是油价不仅没有反弹 , 还跌成了负值 , 这时客户按照交割价-37.63美元卖出1万桶原油 , 就需要倒贴买家37.63万美元才行 , 造成原油宝这种无杠杆产品 , 产生超出本金损失的罪魁祸首 , 是函数输入范围超出预期 。
【油价】负油价甩锅程序员?
本文插图

千年虫、负油价祸出同门?
提起“千年虫”问题可能很多90后的程序员没什么印象 , 不过对于笔者来说 , 记忆犹新 。
千年虫问题起源于60年代 , 由于当时计算机存储器的成本很高 , 计算字长也不够 , 如果用四位数字表示年份 , 就要多占用内存空间 , 因此当时最流行的企业级开发语言COBOL以及现在很多数据库的原型SABRE , 都为节省存储空间 , 默认使用两位数字表示年份 。 虽然后来计算机字长变长 , 内存价格降低 , 但在使用两位数字来表示年份的做法 , 却由于惯性力量而被沿袭下来 , 直到21世纪即将来临的1997年 , 业界才开始拉起了“千年虫”警钟 , 并很快引起了全球关注 。
千年虫的影响堪称是世纪Bug的级别 , 人们一度怀疑千年虫是否会导致核武的误发射问题 。 冈比亚成为全球受千年虫影响最为严重的国家 , 除不少地方电力供应中断外 , 其海空交通、金融和政府服务也经常中断 。 对于我国来说 , 著名的7-11便利连锁店计算机系统把2001年当成1901年 , 许多使用信用卡用户无法正常刷卡 。
从本质上讲千年虫与负油价都是输入参数越界的问题 , “千年虫”使用两位空间计数的话 , 99加1就变成0了 , 而“负油价”则意味着卖东西需要倒贴钱 , 针对这种负油价的情况 , 交易软件的行为的确无法预测 , 所以这一切基本可以回归到一个IT的基本问题 , 当一个8位的整型到了其上限127的情况下再加1 , 输出到底应该是什么?
【油价】负油价甩锅程序员?
本文插图

平衡-系统设计的艺术
如果奇点的情况不可预知 , 那么系统就只能在几种目标下寻求平衡了 , 这样的平衡术成为了系统的制约条件 , 比如分布式系统的CAP原则 , 货币系统受到蒙代尔三角的制约 。


推荐阅读