算法交易:华尔街怪兽的核武器

算法交易:华尔街怪兽的核武器1980年华尔街的黑客生涯:天时地利20世纪70年代末期,算法开始进入人们的工作,这一趋势席卷了世界各地的金融市场,标志着华尔街黑客时代已然来临。华尔街逐渐吸引了美国越来越多杰出的数学家和科学家投身于编写交易算法的工作。在布莱克?斯科尔斯统治市场之前,已经有少数工程师和科学家进入曼哈顿下城市场了,但他们大都是外来移民。麻省理工、哈佛和此类高等学府的工程楼和科学楼成了招聘者竞相争夺人才…

大家好,又见面了,我是你们的朋友全栈君。

1980年华尔街的黑客生涯:天时地利

 

20世纪70年代末期,算法开始进入人们的工作,这一趋势席卷了世界各地的金融市场,标志着华尔街黑客时代已然来临。华尔街逐渐吸引了美国越来越多杰出的数学家和科学家投身于编写交易算法的工作。在布莱克?斯科尔斯统治市场之前,已经有少数工程师和科学家进入曼哈顿下城市场了,但他们大都是外来移民。

麻省理工、哈佛和此类高等学府的工程楼和科学楼成了招聘者竞相争夺人才、扩大影响力的地方。华尔街的猎头总会潜行于角落,向看中的人许诺华尔街高薪、光鲜体面、红利多多的工作。金融业最终不仅成功地吸引到研究学府和科技公司前途无量的年轻人才,也使许多功成名就的资深工程师和科学家放弃学界显赫又轻松的职位来到华尔街。

为什么华尔街想要这种人才呢?因为要先发制人。能够率先抓住交易机会的就是赢家,电脑运行的算法总是能抢得先机,击败寻找相同交易的人类。20世纪70年代末期,用代码构建算法的能力还很罕见。这就是为什么彼得菲这样一个拥有15年编程经验,并在市场上摸爬滚打了10年的移民发现自己处于引领华尔街巨变的天时地利的位置。

编写了期权代码之后,彼得菲开始组建编程部,雇用了更多的程序员,因为他们在市场中的作用越来越大。在精明的杰里克和精通算法构造的彼得菲的带领下,莫卡塔赚取了数百万美元,成为世界上最有影响力的商品交易商之一。莫卡塔在成长,彼得菲的黑客军团也是如此。到1975年,他们雇用了50名程序员,成为华尔街编程宝库的中流砥柱之一。

那么这些程序员具体在做什么呢?他们大多数人用可被电脑执行的代码去实现彼得菲和杰里克构建的交易算法。随着算法越来越复杂,需要更多的程序员写出更好的代码。

算法可以做很简单的事。比如洗衣服,输入十分简单:(1)衣物重量;(2)衣物面料。算法获得重量输入,如果衣物不足0.45千克,就把洗衣机的水量设置为低量。然后处理面料,输入“棉质”,把洗涤水温设置为热,漂洗水温设置为冷。不同重量和面料参数的输入会引发算法设置不同的洗衣程序。那么要是算法需要根据待洗衣物的颜色、污点、浸泡需求、干燥时间和清洁剂类型正确设定洗衣程序呢?任何计算机专业的大二学生都可以构建这样的算法,但这要比第一种只需处理重量和面料参数的算法要复杂得多,结构层次也要多得多。人们可以不动脑筋根据待洗衣物的不同洗涤需求来洗衣服,但是编写具有同样功能的计算机算法还是很考验技术的。突然之间,洗衣这样的事就有了基于输入参数的几百种解决方案。每一个输入都会被算法考量并正确分类,以维持程序的正常运行。

这样看来,算法可以看做是由一个又一个的二元决策组成的巨大的决策树。我们做的所有事情,从开车到股票交易再到选择配偶,几乎都可以分解成一连串基于二进制输入的二元决策。待洗衣物里有红色的吗?没有。有黑色的吗?有。是尼龙的吗?不是。是棉质的吗?不是。是丝绸的吗?是。黑色丝绸衣物有污迹吗?有。是咖啡渍吗?不是。是蛋黄酱吗?不是。是奶酪酱吗?是。诸如此类。二叉决策树可以为复杂的对象生出数百万甚至数十亿的节点。算法的决策树接收输入,然后将输入值带入方程和公式中运行,再将得到的答案作为新的输入,层层迭代演绎,创建出细节复杂的一串串长字符串。德国数学家戈特弗里德·莱布尼茨300年前就为这一精密学科建立了理论:生命可以分解为一长串连续的二元决策。这一理论要比使机器运行的半导体的问世还要早很多。

彼得菲的算法成为数百个输入、变量以及依赖性微分方程和积分的复杂矩阵,就好像一个密密麻麻的蜘蛛网。把这样的东西用计算机代码表达出来需要真正的高手和庞大的团队。在位于曼哈顿的莫卡塔总部,彼得菲的程序员们在电脑屏幕前工作,读取电传打字机传来的实时市场数据。程序员将数据手动输入到电脑,待算法运行并发出交易指令后,莫卡塔员工再在纽约商品交易所提出报价。程序员直接连线莫卡塔在交易厅的员工,一旦算法得出交易价格,程序员马上大声喊出报价。莫卡塔的员工再用手势向场内交易员传达交易价格。这种交易模式虽然算不上高速,但市场交易从头到尾由算法指示还是破天荒头一次。对彼得菲来说,最妙的地方在于市场的其他参与者对于他的这些数字从何而来毫不知情。

彼得菲初入华尔街时或许是一个没什么市场意识的黑客,但他从分销口香糖、买卖破铜烂铁、典当邮票培养起来的交易直觉却越发地敏锐。杰里克也注意到了这一点。每次莫卡塔要做出重要的交易决策时,他都会征求彼得菲的意见。莫卡塔的一位工作人员回忆:杰里克要是没有彼得菲的陪伴,根本不会出席重要会议。[SuzanneMcGee,“ABreedApart,”InstitutionalInvestor,November10,2005.]

1976年,彼得菲的黑客军团已经发展到了80人,是当时世界上最大的金融交易编程团队。彼得菲证明了自己不仅是一个头脑敏捷的代码写手,更是一位管理能手,他手下全都是些性格迥异,而又极有才智的科学人才,管理他们更需要罕见而又精妙的技巧。

虽然莫卡塔不断发展壮大,它的交易范围却只限于商品市场。彼得菲想将他的算法引入证券交易市场,但是杰里克却只想专注于贵金属交易。证券交易市场被证券交易所的交易员所统治,其中公司的价值由参与市场交易的人所决定,也理应如此。影响股价的很多因素不可量化,比如商业信誉、发展前景、诉讼隐患和行业竞争。因此不存在股票定价的神奇公式。然而期权价格却可以单纯用概率与数据反映。只有极少一部分包括彼得菲在内的精英人士知道这一点。对懂数学的人来说,机会就如滔滔江河般奔腾不息。

20世纪70年代末期,芝加哥期权交易所成立了,彼得菲认为这是期权市场大爆发即将来临的信号。1976年,彼得菲飞到芝加哥去实地考察期权交易所。有些期权的买卖价差高达2到3美元。“交易者就这样补上买卖差价,然后在市场上抛售商品。”彼得菲说。

股票期权市场欣欣向荣,机遇良多。彼得菲不甘局限于商品市场。他知道黄金白银及其期权交易量还不足以为他带来华尔街的真正财富,而且他想分得莫卡塔股份的计划也受阻了,据他说杰里克向他承诺过这点。但是杰里克否认达成过任何此类协议。

1977年,彼得菲花两千美元购置了他的第一台Olivetti牌家用电脑。他白天在莫卡塔工作,晚上用这台意大利电脑编程,夜以继日地构建可以攻下股票期权市场的算法。

算法交易之父

彼得菲成为莫卡塔合伙人的希望落空了,他认定自己在莫卡塔已经没有大的前途。于是在1977年,彼得菲带着20万美元存款辞掉了安稳的工作,在期货交易刚刚起步的美国证券交易所买了一个交易席位。购买交易席位花掉了他3.6万美元,还有剩下的16.4万美元用来进行交易。

为了能在美国证券交易所的第一个交易日有一个好的开始,彼得菲整天面对着电脑苦干18个小时,完善算法,绘制出指导他在交易厅买卖期货的表格。他苦心钻研那些他认为期货定价与实际价值相差较大、定价可能存在问题的公司。对每一个公司,他都要做出一系列关于该公司不同股价所对应的期货价值表。在一天中股价波动的时候,彼得菲迅速查询他做的那些表格,推算出股票期权的合理价格,根据这个价格进行买卖操作。这些表格就是他的纸质版算法。

彼得菲把这些纸张放进他的三孔档案夹,以便携带到交易场迅速查询。他发现准备美国证券交易所的交易很难,这并不是因为对自己的微积分没有信心,而是他害怕无依无靠、单枪匹马地战斗。他担心自己的口音会带来不便,而且一想到不得不在交易厅跟一大群满脸兴奋、浑身是汗的人推来攘去,大声吼叫,他就感到焦虑。他也担心排外的交易者会联合起来排挤他,不公地扼杀他尚未成熟的实验。比起这些来,他最担心的就是失败后不得不落魄地回到莫卡塔。

彼得菲手拿档案夹出现在美国证券交易所,他下定决心要成功,绝不让之前的那些担心变成现实。在拥挤不堪的交易厅里,他很快发现打开的档案夹使他占了两个人的位置,其他交易者可不乐意为彼得菲空出位置让他打开“奇书”。“这里究竟有什么鬼东西?”他们问。他们鼓吹的可是靠智慧和胆量来赢得交易,而不是一叠滑稽的纸。

“他们觉得我想要从档案夹中的那叠纸里研究出点什么东西的想法非常荒谬可笑。”彼得菲说。

为了适应交易厅的环境,也为了让自己在交易厅的日子好过一点,彼得菲把他最重要的几页笔记写在可以轻易折叠的双面纸上并且放在后兜里。当他认为价格合适的时候,他会伸手从口袋里拿出表格来查阅。他站在那儿看纸上的算法时,涌动的人潮把他挤来挤去。但他毫不分心,直到最后抬起头,举起手,望向另一个交易者或是做市商,用浓重的口音大声喊出交易单。他的口音确实是个问题,另外他查阅口袋里破旧的折叠纸的习惯也显得极为怪异。“其他交易者认为我疯了。”彼得菲说。

彼得菲有时会在交易厅呆上几个小时,却一言不发,一单不做。他严格遵循表格上的价位,如果期权价位不符合他保守的赢利方针,他就不会买入。他说:“我做单非常谨慎。”

虽然彼得菲已经非常小心了,但还是难以避免一个新手在市场中必须遭受的打击。在早期的交易生涯中,他有一次花了一上午时间一直在交易杜邦的期权。中途,他发现一个价外看涨期权的报价为31美元。根据他的表格,此期权实际价值是22美元。他准备卖空。“那对一个匈牙利穷小子来说可是一大笔钱呢。”他说。

彼得菲实际上已经在18美元价位时买入了300手期权合约,他便把这300手合约在31美元的价位卖空了,然后再多开了200手的空单。彼得菲在没有保值期权头寸的情况下沽售[沽售是指低价出售。——编者注]了200手看涨期权——他没有买入相同份额的股票,也没有反向操作看跌期权。走势一旦朝着他预期的反方向运行,他就完了。但是他怎么会拒绝这样的一个交易机会呢?

就在彼得菲开出卖单后,杜邦停牌了。消息不断传来,杜邦公司公布了远远高于预期的实际收益,以及一拆二的分股计划,股价大涨。彼得菲200手的期权合约,每1手合约分别有100股的股票,每1股损失5美元,每1手合约就会损失500美元。10万美元就这样没了,损失超过了他全部交易金的一半。他把这次事件归咎于靠内部消息交易的人。不管什么原因,这10万美元的损失对彼得菲而言是一次灾难性的打击。“我不知道是该放弃还是该哭。”他说。那晚,彼得菲身心俱疲,垂头丧气地回到家,对自己的交易方法产生了怀疑。“我以前觉得自己很聪明啊。”他说。

彼得菲抽着烟,盯着自己上东区出租房里的小餐桌,他想他需要将更多的时间、金钱、注意力放到做交易上,虽然不管怎么看他都早已疯狂地沉迷于交易了。唯一摆脱困境的方法就是成为一个机器专注于交易、存钱、赢利,其他任何事情都不重要了。他站起来把香烟扔进了厨房的垃圾桶里,下定决心不再抽烟。他盘算着把买烟的钱用在交易上才更有价值。“我马上就算出了我要是20年不抽烟能省下多少钱,”他解释道,“那时候我太需要钱了。”

彼得菲重新投入到交易市场。他仍然坚持查阅他的表格,但是杜邦的亏损一直是个阴影,他再也不下他称为“牛仔赌注”的单了。

他账户里的钱又一点一点地回来了,每天都是一场难熬的战斗。他一直坚持算法系统交易,很少有大损失。虽然布莱克?斯科尔斯公式早在七年以前就发表了,但它对市场的撼动力还不够,不足以影响到彼得菲和其他交易者依靠他们自己的聪明才智赚钱的做法。

尽管彼得菲的算法和表格很有成效,但他始终都是单枪匹马一个人。他需要更多人和他一起在交易厅奋斗。他逐渐聘请了一些交易员。为了避免损失并且能够掌控交易员的操作,彼得菲训练他们根据表格开出买卖报价,他每晚都要根据算法更新表格上的数字。由于彼得菲在美国证券交易所的交易量越来越大,他把自己的交易机构重新命名为原木山(TimberHill),这个名字来源于纽约某乡村的一个路名,是他曾经度假的一个地方。他买下了更多的交易席位,开始尝试诸如配对交易和套利的其他交易策略,而这两种策略他在莫卡塔制定交易战术时就已经很熟悉了。

虽然彼得菲有很多的交易员活跃在交易所,但他仍然一连几个小时冥想苦思着怎样把所有的场内交易理论抛给电脑,因为电脑能比场内交易员更好地执行他的算法。但他暂时还没有办法。交易厅的构造让他苦恼不已。天花板的高度高于12米,交易厅由一排排围栏隔开,员工们居高临下用手势指导站在下面的交易员如何买卖。“每个人都能清楚地看到其他人的手势,”彼得菲说,在某些交易者举起手之前场内大部分人就知道他们会如何买卖报价了,很有可能他们要喊的单已经被别人抢先一步喊了,“这真可笑。”

所以彼得菲提出了一个想法,交易者可以通过连接到中央计算机的手持设备输入买单卖单,电脑再根据价格?时间优先的原则自动公平地匹配报价单。但这个想法很快就被控制这一行的人——专家经纪人(也称庄家)扼杀了。

既然不能用技术改变整个市场的运行方式,彼得菲决定加入一个更有权势的群体,成为美国证券交易所的期权做市商。他想只要严格地根据算法在合理的价格波动区间进行交易,扩大交易量就会降低风险,提高利润。但他首先得想法子让控制交易的专家经纪人能一致、迅速地确认他的买单卖单。他不像其他的交易者会饶舌闲聊,互换消息,他更像是一个局外人。专家经纪人不喜欢和彼得菲做交易,所以他们并不经常接受他的买卖申报。这个匈牙利人决定雇一些专家经纪人会喜欢的人。

金融行业跟大多数高薪行业一样,是一个由男人主宰的世界。所以当彼得菲聘请最高挑、最漂亮,又最丰满的女人为他工作时,他可绝不是心血来潮。这个法子很快奏效,彼得菲交易集团下单更为流畅了。突然间,专家经纪人更愿意接受彼得菲的报价了。他们把手臂搭在彼得菲的交易员身边谈天说地,在金发美女开出买卖单的第一时间确认了她们的单子。“专家经纪人想的是‘这些蠢女人知道啥’。”彼得菲说。

的确,彼得菲招来的女人不懂交易,更不要说算法了。但那时候彼得菲的交易员并没有依靠自己做交易,也没有用表格做指导。因为彼得菲已经设计出了让每个人都可以漂亮完成交易的新系统。

和很多发明一样,这个系统的产生也是一次偶然的机会。1982年中旬,彼得菲的膝盖韧带拉伤了。在康复期间,他的膝盖感染了,他不能长时间站在交易厅,更别提和那些四肢发达、呆头呆脑的人在交易厅里推推攘攘了。彼得菲被安排到了他在交易所楼上的办公室,他朝楼下喊单,自己独自养伤。他的注意力最终集中到他的那台一次报给用户一支股票或期权价格的科特龙行情报价机上。科特龙的数据来自一条电话专线。彼得菲问过科特龙(那个时期数据业的老大)是否愿意把传送到机器的数据卖给他。每次得到的回答都是简单的“不行”。

彼得菲带了一把电线剪到办公室,锁上门一个人捣腾着,这一举动后来激发了他窃取纳斯达克数据的灵感。“的确,是这样,”他说,“我们偷了数据。”

彼得菲使用电工用的老式工具,剪开了连接到科特龙行情报价机的电线。他用一个电子示波器来测量电线的电脉冲,然后将电脉冲与数据匹配,就这样解码了电线信号。然后,彼得菲在实时接收并保存科特龙数据的电脑上编写了程序,程序扫描这堆股票期货大杂烩,将它们带入算法运行。算法首要寻找的是那些价格严重偏离的期权。

彼得菲尤其感兴趣的,也是他编写算法所寻找的称为delta(对冲比率)中性的交易。在这样的交易里,彼得菲卖出权利金过高的看涨期权,同时买入权利金过低的看跌期权,这样不管行情大涨还是大跌,他都处于一个安全位置。

比如IBM的股票以75美元的价格交易。对彼得菲来说,一个delta(对冲比率)中性交易大概就是这样:他卖出1万手美式看涨期权(买方在未来60天以75美元的执行价买入IBM股票的权利),每手收取1美元(权利金收益),总共获利1万美元。几乎同时,彼得菲的另一个交易员买入1万手看跌期权(买方在未来60天以75美元的执行价卖出IBM股票的权利),每手花费85美分(权利金付出),总共花费8500美元。交易结果:近乎无风险获利1500美元。

因为像IBM这种大公司的股票期权有十几种不同的执行价以及大量各不相同的合约到期日,对有心人来说,1980年的期货交易市场充满了这样的delta(对冲比率)中性交易机会。有些场内交易员领会了这个交易策略,他们寻遍股票行情收录器希望找到价格偏离的期权实现对冲无风险获利。但是这些在交易厅寻找机会的人,怎么能跟彼得菲不知疲倦的机器相提并论呢。

电脑一旦整合了delta(对冲比率)中性交易,就立刻打印出来。彼得菲腿上有伤,只能坐在椅子上,他打电话叫来他的场内员工,由场内员工将打印出来的交易单交给他的美女军团。就这样日复一日,窃取科特龙数据,交由电脑处理。4个月后,彼得菲赚的钱比以往任何时候都多,而秘诀就是在市场对手毫不知情的情况下从科特龙获取的数据流。当今世界的很多热门公司已经证明了数据是一个公司在某一行业成败的关键所在。彼得菲开创了对大型数据库进行自动化编译及使用的先河,自此华尔街便开始了对数据库的挖掘。

算法传到好莱坞

自从请到漂亮的女交易员成为交易所的新面孔,又安装了处理从科特龙窃取来的数据的交易系统,彼得菲觉得他已经构造了一个完美的赚钱工具。“任何人,”他告诉朋友们,“任何人跟我做交易都能赚钱。”

不愧是华尔街的人,很多人因为彼得菲的这番话去拜访他。他的吹嘘多么可笑,竟然大言不惭地说他的系统可以击败满交易厅那么多的行家里手——那些花了整个职业生涯来培养交易直觉,并且练就了一身交易本领的人,而且能够赚取他们的钱。彼得菲坚守立场,为了证明自己的话,他请来一位最不可能出现在交易厅的人——马文·范·皮布尔斯,彼得菲旧东家杰里克的朋友。1971年,范·皮布尔斯在19天内紧锣密鼓地编写、导演、制作并出演了《斯维特拜克之歌》。当初他向比尔·科斯比借了5万美元才能完成电影的制作。但是后来电影取得了巨大

的成功,总共收入1千万美元,范·皮布尔斯也由此开始了他作为制片人、导演和演员的职业生涯。

尽管已经非常有名而且工作也相当繁忙(那时,范·皮布尔斯正忙着制作百老汇音乐剧),这个剧作家还是抵挡不住华尔街的诱惑,于1982年11月来到彼得菲的交易机构原木山,和其他女交易员一起为彼得菲工作。范·皮布尔斯在原木山整整工作一年,每个人都惊奇不已,当然除了彼得菲和他自己。“我现在就在做我一直都在做的事——做交易。”范·皮布尔斯这样告诉《纽约杂志》。[JoeKlein,“SweetSweetback’sWallStreetSong,”NewYork,September5,1983,p.43.]

范·皮布尔斯也赚到了一大笔钱。他这样解释自己的成功:“你得要会计算——啪啦啪啦啪啦——下单!我可以做得到。”[同上。]他说自己学过数学,在荷兰当空军的时候还学过天文学。不过目前看来他做交易时需要做的数学题已经全权由算法代劳了,彼得菲构建的算法不停地运算着从科特龙窃取来的数据。

和彼得菲的其他交易员一样,范·皮布尔斯经常突然跑向交易厅的那一排电话,和原木山总部通话。在电话里,范·皮布尔斯杂乱无章地记下交易指令——一大堆文字、数字和分数。然后折回人声鼎沸的交易厅,举起手,申报新的delta(对冲比率)中性交易。范·皮布尔斯的故事吸引我们注意到即使在今天看来也是令人难以置信的交易团队:活跃在纽约交易所的三个金发美女和一个声名显赫自导自演的黑人作家。他们将运行于电脑中的算法掩饰得很好。

平板电脑的先驱

彼得菲迎合交易所臭名昭著的沙文主义的策略最终奏效了,专家经纪人们总是在众多申报中优先接受美女们的买卖申报。但是彼得菲连续六个月轻松获利,专家经纪人不由得注意到彼得菲的交易单好像拥有不可思议的市场洞察力。

其中一个专家经纪人找到彼得菲说:“我知道跟你交易就肯定没有好结果。几乎单单必输。你到底是在干什么?”

头脑敏锐的人料想彼得菲一定事先知道了什么,但又不确定到底是什么。但他们确信自己是一点也不想接彼得菲那些美女交易员喊的单了——不管他们曾经有多希望得到美女的注意。在这之前,彼得菲被专家经纪人指派为做市商,这样他就有机会率先得到交易厅新开的单。从技术角度来说,不管市场走势如何,做市商必须总是同时保持买卖单。彼得菲像大多数做市商那样违反了规定,只是按照算法的指示挑选交易来做。他没有一刻连续稳定地报出买卖价。

专家经纪人厌恶了每次交易都输给彼得菲的感觉,他们告诉这个匈牙利人至少得对最少数量额度的期权保持公开稳定的买卖报价,否则就要取消他的做市商资格。彼得菲不失谨慎地对此进行了争辩,同时思索着既可以保持利润不受这些人的破坏,又能平息他们怒气的方法。

因为彼得菲被要求在某些股票品种上长时间保持买卖单,所以他不能让交易员迅速到电话处听候每个指示。时刻保持公开报价意味着交易员不得不待在交易厅,时刻警惕地盯着市场走势。彼得菲的交易员是按照个人电脑中运行的算法指示进行交易,指望他们自己做买卖市场还能风平浪静吗?

解决方案就藏在他过去对于交易的一项提议中:手持电脑。彼得菲曾经提出在交易所配置某种设备以摆脱专家经纪人组织交易的过时交易方式,但当时他并不知道这种特定的设备是什么(这种设备还不存在),也没有认真考虑过交易所独断专行的处事方式以及谁握有生杀大权,而这些人正是他想要用某种设备来取代的人。

彼得菲的新计划不是要让整个交易厅都配备手持电脑,只是给他的交易员配备。但是交易所会批准这样的提议吗?彼得菲希望如此。如果他在美国证券交易所使用设备的提议被批准了,他就要把这个游戏(他的算法、电脑、场内机器)玩到美国最大的期权交易所——芝加哥期权交易所去。

交易所监管人员对彼得菲的这一招并不感兴趣,只是某些人的反应有点神经质。机器,放在交易厅的地上,还要做交易!大多数反对者声称机器会挡住不停走动的交易者的路,而且很有可能在市场走势对彼得菲不利的时候莽撞下单导致他没有能力平仓。

美国证券交易所不顾这些反对,还是同意彼得菲的交易员把小型平板电脑带到交易厅来。彼得菲被难住了:他根本没有平板电脑。在苹果公司iPad出现的30年以前,没有任何人有平板电脑。这种设备需要从零开始设计制造。

彼得菲有了一个大概的想法,他请来纽约大学物理学准博士帮他用聚酯薄膜(一种黑色塑料)做了些小型长方形盒子。这些盒子长约12英寸,宽约8英寸,高约2英寸(约30厘米×20厘米×5厘米)。盒子里装满了连接到顶面板的晶体管和电路板,面板上有一根根金电线。电线在用户用手按压的时候有感应,设备顶端表面形成触感屏幕。彼得菲可以在盒子上安装不同的薄型塑料模板来当键盘。不同种类期权需要不同的键盘和程序。每一个盒子上的覆盖物就类似一个应用程序。通过这种方法,彼得菲就可以做出一种盒子,然后根据用户的交易品种为每一个盒子编程,构建交易算法。[彼得菲在他办公室的一个木制展示柜里仍保存着这样一个平板电脑。]

早上,市场交易铃声响起之前,彼得菲会打开设备,从里面拉出一簇连接线,接上从科特龙专线收集数据的个人电脑。手持设备从电脑上下载最新市价和数据,指示只能待在交易场内的交易员如何提出股票和期权报价。交易员输入现行市场价格,平板电脑通过指示灯告诉他们这笔交易是否值得做。所以现在专家经纪人让彼得菲的女交易员提出买卖报价时,她们能迅速开出符合彼得菲的算法的价格。

那时候,彼得菲每年的收益超过100万美元。新的问题来了:他的交易可以做到多大呢?美国证券交易所已经被他征服了,彼得菲需要新的挑战。他有信心可以用代码统治任何市场。他把目光移到了交易量最大的芝加哥期权交易所。芝加哥期权交易所的监管人员反对他的提议,拒绝他把手持设备带到交易厅,声称交易厅本来就拥挤,机器太大太占地方。彼得菲接受了他们的说法,回到工作室,制造了面积仅为7平方英寸(约45平方厘米)的盒子,比原来的小得多,交易员可以很轻松地把它抱在胸前。彼得菲拿着他的新设计给监管人员看,这次他们直截了当说明问题的关键所在:交易所的成员绝对不能容忍在交易时使用任何电脑,很明显是害怕这种设备会给用户带来交易上的优势。他们不考虑投资者会享受到更便捷高效的交易以及市场价差可能会缩小这些事。

“交易所当然反对我了,”彼得菲说,“他们总是反对所有事。”

彼得菲随即转战纽约证券交易所,该交易所在证券交易领域有统治地位,同时也想发展期权业务。平常发号施令的交易所为了扩大交易量,急切地满足了彼得菲的要求。为了更好地协助他的交易员们,彼得菲又在他们所站的位置上空安装了一组由不同颜色的灯泡组成的灯条。然后他编写了一个可以通过这些彩灯传递交易指令的系统。对于已经配备了场内电脑的交易员,这真是如虎添翼。

万事俱备,只欠东风,现在只剩下最重要的电脑编程了。彼得菲用C语言重新编写了程序,C语言比大部分系统使用的过时的Fortran语言更先进、更高效。一切如常,电脑不停地处理数据,寻找好交易。当它找到了合适的交易机会,会立即向纽约证券交易所天花板上的彩灯传送一系列电脉冲,原木山的交易员从开市到闭市一直盯着那组彩灯看。不久之后,彼得菲成了交易所最大的做市商之一。

彼得菲于1977年花了36000美元在美国证券交易所买下了原始交易席位,所以他的办公总部就一直安在美国证券交易所。如果想要扩大交易领域和交易量,美国证券交易所能够提供的空间已经不够了。所以,他于1986年将总部搬迁到世贸中心。在那里,他有足够的空间指挥分散在各地交易所的交易员。

世贸中心离交易厅有好几个街区那么远,平板电脑很难更新数据,因为提供数据的个人电脑也被搬到了新的总部。彼得菲的解决方案很简单,这是华尔街过去流行的一种做法:送信人在新动向传开之前跑步到市郊,告知市郊的人。彼得菲雇了好几个跑步快的员工,除了在办公室打打杂,主要任务就是携带数据更新好的手持设备从世贸中心全速奔跑到交易所。

“你要是在市中心看到一些拿着黑盒子发疯一样快跑的家伙,”彼得菲说,“那就是我的人了。”

跑步送情报的人最终还是被传输数据的电话专线取代了。20世纪80年代中期,一些精通技术的交易商开始使用电话专线。彼得菲也是引领这一潮流的人。他租赁了电话线在世贸中心办公室和他的交易厅战场之间传输数据,安置在交易厅的电脑处理总部传来的数据,然后将数据一股脑儿导入手持设备。但即使有了这一步升级,交易员一天也要在场内和电脑间跑几次才能让手持设备接收到数据。为了免去这样的麻烦,彼得菲和他的工程队在手持设备和原木山的电脑上安装了小型无线电发射机。完成了这一步,数据便可以轻轻松松传到交易厅的手持设备上了。

1986年,交易厅已经成了彼得菲交易集团的取款机了。算法源源不断算出好交易,钱源源不断流入。无线设备为彼得菲提供了一个能够毫无约束地引用算法从而自由获取更多好交易的通道。原木山1986年初有100万美元资金,年末银行存款有500万美元,收益为本金的400%。一次又一次的成功又让彼得菲开始考虑扩大规模了。

科学技术不断进步,彼得菲精明的对手复制了他的交易方法,也在不断优化交易。乔·里奇的芝加哥研究与交易事务所实力雄厚,在芝加哥很有势力。布莱尔·赫尔的赫尔交易公司于1985年创建后也开始崭露头角,声名鹊起。芝加哥的奥康纳公司(O’Connor&Associates)所使用的交易战术和彼得菲的如出一辙:为交易员配备了期权定值的速查表,楼上电脑不停处理数据,然后将新的数字传给楼下的场内交易员。奥康纳对自己的交易策略相当保密,80年代中期当它引进200台Symbolics电脑的时候,公司高管下令销毁了外包装,这样一来,那些试图寻找蛛丝马迹的商业对手就不会知道他们在用什么高科技了。

算法从东海岸传到西海岸

1987年,诸如标准普尔500指数之类的指数基金不仅在普通民众之间广为流行,专业交易员也对其青睐有加。指数基金按照其指数构成标准包含了证券市场中某些流行的证券组合。但是某些指数,比如标准普尔500指数,只能由一个市场的股票组成,其交易许可仅限于芝加哥商业交易所。其他交易所使用的指数不尽相同,但也大体一致。芝加哥期权交易所交易OEX指数,也就是标准普尔100指数;纽约证券交易所交易NYSE指数,由纽约证券交易所的所有股票组成;美国证券交易所交易主要市场指数,包含30种大股;太平洋交易所把他们的指数称为PSE,主要投资市场份额不断增长的科技公司的股票。

所有这些指数的组成都不相同,但它们的核心持股却是相似的。标准普尔500指数只含有500种股票,但其市值却占NYSE指数所包含股票市值的90%,NYSE指数包含了纽约证券交易所所有上市公司的股票。因为纽约证券交易所前500大股市值远远大于市场其他股票,NYSE指数基本上随标准普尔500指数的变化而变化,反之亦然。标准普尔100指数、主要市场指数和其他指数也是同样的情况。

彼得菲推测,如果指数构成大同小异,那么它们的波幅及其期权期货走势也应该相同。而事实上,这些金融衍生工具在不同的交易所价格迥异。11月份NYSE指数看涨期权在纽约的交易价可能为2美元,与此同时标准普尔100指数看涨期权在芝加哥的交易价可能为3美元,而与它们类似的另一个金融衍生工具在旧金山的太平洋交易所的交易价可能为2.25美元。“该如何操作一目了然,至少对我们来说是如此。”彼得菲说。如小孩的游戏那样轻而易举:卖出较贵的指数衍生产品,买进便宜的。“这可真是太妙了。”彼得菲愉快地回忆着。

为了充分利用这些把握十足的交易机会,彼得菲需要在旧金山的交易所,芝加哥的两个交易所还有纽约的两个交易所安置人手。他和他的工程队制造了新的手持设备,他们雇用的一波波交易新兵将会利用这些设备为原木山占领这个国家的其他交易所。彼得菲购入了几十台计算机,还租赁了横越全国的电话线以保证数据传输畅通无阻,使得计算机网络可以保持实时通信,实现全国范围内交易价格的更新。新的交易所也安装了无线电发射机,这让彼得菲在芝加哥、旧金山和纽约的交易员可以看到相同的信息。现在在纽约下的卖单可以立即用芝加哥的买单实现对冲。

当金融衍生品的价值回归到期望区间,彼得菲的电脑会指示交易员平掉仓位,锁定利润。指数在所有市场的交易量都很大,每天的套利机会没有几千次,也有几百次。几乎没有人像彼得菲那样完全利用科技交易。有些交易商在纽约和芝加哥之间安装有电话线路,方便员工互通价格,利用大的价格差获利。但彼得菲的自动化交易系统大小通吃,不仅能够收获大价差盈利,也能抓住小价差获利机会,而且总是比别人抢先一步。彼得菲创建了第一个统辖东海岸和西海岸的算法交易机构。

手持设备完成的所有交易活动通过无线电传输到彼得菲安置在每一个交易所等候交易数据的终端。然后电脑将数据打包整理通过租赁电话线直接送达世贸中心原木山的总部。数据到达总部后,会由一个简称为相关器的大型主算法进行处理。相关器运行大批密集代码方阵分析市场,定位风险;然后发出指令,调度分散在各个市场的原木山交易员通过相关操作抵消风险。相关器分析十几个证券及金融衍生品市场的实时价格,发出一个个轻而易举稳赚的交易指令。已经完成的交易通过数据线传入,相关器接收了原木山交易员所有已建头寸信息,发出对已建头寸进行风险对冲的交易指令。相关器的某些交易是100%全自动的——交易指令直接发送到被彼得菲侵入的纳斯达克终端,这些纳斯达克的终端会自动键入交易指令。

相关器触发交易指令,纳斯达克终端自动执行交易,这是算法统治的第二阶段。这一阶段,算法处理数据,分析市场,发出不再是由人而是由一台机器执行的交易指令。彼得菲从根本上创建了一个在机器之间,而非在人之间传送重要信息的华尔街。第二阶段的算法交易尚需十年以上才能完全统治美国交易市场,但是彼得菲和纳斯达克开启了第二阶段算法交易的先河。在彼得菲将他的科技窍门发展到这一步后,只剩下第三阶段——算法摆脱人的控制实现自动调整,并在某些情况下实现算法自编——来彻底实现计算机程序自动化模式。

彼得菲经常坐在原木山位于世贸中心的总部办公室里看着交易员下的单不断地流入相关器。屏幕上列出了已经完成的交易及相应的对冲风险的交易,总部电脑会将交易指令传达给相关市场的原木山交易员。对冲风险的交易一旦完成,也会在相关器的屏幕上显示出来。彼得菲从来不是一个赌徒,他的游戏策略是零风险稳赚,不管盈利多小。当大笔交易从相关器的屏幕弹出,彼得菲会目不转睛地盯着屏幕,看他的交易员对冲掉风险。但再强大的相关器也会有弱点——所有没有人类监管,任其独自运行的算法都是如此。

1987年年初的一个早上,彼得菲看着不断涌入的交易单,发现了其中的一笔大交易。他的一个交易员卖出10万份NYSE指数看跌期权,给予买入期权方在未来以特定价格卖出10万份指数股票的权利。如果指数崩盘,这在1987年下半年确实发生了,这样的走势对原木山来说将是致命的打击。彼得菲眉头紧锁,想知道是谁做了这样一大笔莽撞交易。这又让他想起了灾难性的杜邦交易,他经常想起这笔交易。他没有反向操作对冲风险,所以杜邦交易才成了一场灾难。但是原木山做任何交易都会对冲风险。

彼得菲端坐在椅子上,等着接下来他早已知道要出现的对冲交易。电脑按照既定的程序调研市场,分析出抵御风险的最低成本的方法,然后发出相应交易指令。因为卖出看跌期权是一笔看涨行情的交易。相关器指示交易员在其他交易所买入相似的、较便宜的看跌期权,同时卖空与NYSE相似的指数。他的系统严格按照程序运行。彼得菲看到对冲交易确认后,又轻松地躺回椅子上。

但是两分钟后,这笔大交易又弹了出来:一个交易员卖出10万份NYSE指数看跌期权。杜邦交易的惨败又刺痛了彼得菲。他感到一阵头晕眼花,拿起电话,拨通了他的交易员在纽约证券交易所的办公电话。

“你们把这些看跌期权卖给谁了?”彼得菲问。

“什么看跌期权?”接电话的交易员说。原木山在纽约证券交易所有六个交易员,接电话的那位不知道这笔交易也情有可原。彼得菲向他解释了这件事,然后说“去给我查出这是谁做的”,说完挂断了电话。

彼得菲恼怒地坐了回去。他看着相关器发出更多的对冲交易指令,交易员们也都及时执行了。然后他感到胃部一阵痉挛。这是第三次了,相关器屏幕显示:“卖出:10万份NYSE指数看跌期权。”

“这是什么狗屁玩意?!”彼得菲吼道。他疾步走到电话机前,拨通了纽约证券交易所的办公电话,一位交易员接听了。“这到底是怎么回事——谁在卖出看跌期权?”彼得菲问。

“我什么也不知道!”接电话的交易员答。

彼得菲吼道:“把线都给我扯掉,快扯掉!”

这名交易员立马回去扯掉了连接到交易所电脑的所有电源和数据线,叫停了原木山在纽约证券交易所的交易。原木山在纽约证券交易所的其他几名交易员因为手持设备收不到任何信息,都感到莫名其妙,折回了办公室。

彼得菲冲出世贸中心,来到具有新古典主义装饰风格的纽约证券交易所。纽约证券交易所总部位于华尔街11号。彼得菲拾级而上,推开原木山小办公室的门。他质问所有交易员:“怎么可能没一个人知道这几笔交易究竟是怎么冒出来的?”

彼得菲心乱如麻,决定清点大楼里所有的手持设备。每个交易员都迅速取出了自己的平板电脑,都是完好无损,没有问题的。然后彼得菲想起办公室里还有一个备用设备,遇到交易员的设备有损坏的情况就可以替换使用,这事儿也常发生。他马上认出立在门边桌上的那个小长方形盒子。正当他准备去取它时,他的一个交易员从厕所回来了,交易员砰的一声打开门时明显可以感觉到空气的嘶嘶声。彼得菲看向那个设备,风经过时它的塑料表层振动了一下。

门关上后,空气又静止了。但是在办公室外空气的推力下,门又打开了,气流再次冲击平板触屏,触屏表面沙沙作响。

“打开电脑。”彼得菲现在来了兴趣,对他的一个交易员说。

门又打开了,重新启动的电脑寄存了之前的任务项,显示卖出10万份NYSE指数看跌期权。开门时产生的小气流对设备表面施力仿佛是有人在用手指按压屏幕,开出了卖单。相同的卖单连续开出是因为办公室的门不断被从交易厅吹向走廊的风撞开。要登记一个合法的交易单,交易员在输入交易信息后还要进行确认。当平板电脑的确认按钮闪烁时,气流轻轻碰触了一下按钮,相关器就接收到交易完成通知了。

这几笔大交易都没有真正做成。但是相关器照其设计的程序运行,对此毫不知情。所有抵御风险的对冲交易根本就不是在对冲风险。这纯粹就是在下赌注,这天闭市后,原木山账上有了价值300万美元的暴露于市场风险的单边赌注。彼得菲恰恰陷入了他努力想要规避的情况——他成了一个莽撞下大赌注的赌徒。他必须得等到第二天早上才能平掉仓位;他所能做的只有希望开市前市场不要朝着对他不利的方向走。

当晚,彼得菲难以入眠。他整夜盯着天花板,直到第二天回到办公室。

幸好市场没有太大波动,原木山几乎毫无亏损地了结了头寸。可这要是发生在1987年下半年的一天——10月19日的黑色星期一,这些错误就足以终结彼得菲的交易生涯。

一个登上华尔街巅峰的黑客

1986年到1987年两年间,彼得菲赚了5000万美元,这一令人震惊的数字标志了他的巨大成功。他处于引领趋势的有利地位,没人知道他会走向哪里。他远远将大众甩在身后,利用始终领先人类的计算机程序持续统治证券和期权市场。然而在某些时刻,被科技超越的华尔街玩家又赶了上来——那是曼哈顿下城掀起一股宽客[宽客是现代金融市场的基础即金融衍生品的创造者。另一种定义:指一群靠数学模型分析金融市场的物理学家和数学家。——编者注]热的时候,科学家和工程师开始被吸引到金融界。

1999年,高盛集团开价9亿美元购买彼得菲的交易机构。彼得菲想要30亿美元。高盛转而出资5亿美元购买了布莱尔·赫尔在芝加哥的自动化交易机构。赫尔的

交易机构虽然远远小于彼得菲的,但在彼得菲开启自动化交易先河的六年多以

后,就是在20世纪90年代初期,赫尔也开始在辛辛那提证券交易所使用计算机程序进行交易,并引起了轰动。

投资银行和华尔街的头号交易商最终会赶上彼得菲和其他胜过普通交易员的程序员的脚步。金融界的交易怪兽们雇用了自己的黑客、工程师,全力以赴冲上云霄俯瞰众生。赫尔把交易机构出售给高盛,而后又在伊利诺伊州的参议员初选败给巴拉克·奥巴马,之后便淡出了交易舞台。其他一些算法交易的先驱退出得更早。奥康纳公司,这家曾对自己的交易策略守口如瓶的公司,于1992年卖给了瑞士银行,乔·里奇的芝加哥研究与交易事务所卖给了国民银行,也就是现在的美国银行。而算法交易之父彼得菲仍然坚守在战场和那些自称为宇宙主宰者的人进行较量。这位匈牙利人的交易机构最终在总部搬到了康涅狄格州的格林威治后更名为盈透证券集团(InteractiveBrokers),在20世纪90年代持续领跑华尔街,至今依然如此。

彼得菲的交易机构能够领跑华尔街的原因在于:无论以前还是现在,它都是工程师和程序员的交易机构。高盛及华尔街中那些与之类似的机构去寻找工程应用型人才的目的是扩充他们的数量分析专家部门,但是在盈透证券集团,工程师就是整个公司,这让彼得菲的机构类似于华尔街版的谷歌——一个工程师生产产品并作出重大决策的地方。实际上彼得菲的员工75%以上都是程序员和工程师。“大多数华尔街的公司专注于他们做得最好的领域,”彼得菲说,“那意味着它们是很受欢迎的。但我们就是写代码的,那就是我们做的事情。”

彼得菲指出盈透证券集团没有一个人有商学院学位,这让它在华尔街显得那样格格不入。彼得菲坚称他不会雇用MBA,永远不会。

从20世纪90年代一直到21世纪,盈透证券的业务不断扩张,在美国获取越来越多的市场份额后,彼得菲把算法用到了欧洲市场。2007年5月4日星期五,彼得菲为这一天做着准备。那是所有公司,不管是科技公司还是金融公司,都梦寐以求的一天。这一天,盈透证券首次公开发行股票。彼得菲身穿熨得整整齐齐的白色衬衣,一件淡色格子花纹的米色西装,搭配一条蓝得发紫的领带。他早早来到办公室,抿了几口绿茶,凝视着窗外,康涅狄格州的格林威治,人来人往,熙熙攘攘。

早上7点半的时候,盈透证券开始热闹起来了。彼得菲走出办公室,跟来客打招呼。9点29分的时候,几十个人聚集到了一个地方,彼得菲站在人群中央。当9点30分的时钟敲响,他举起手来,鼓掌,兴奋地叫喊着,然后在雷鸣般的欢呼喝彩声中迅速按下了一个大大的橘黄色按钮。在纳斯达克试图取缔这个靠拼接的电线、窃取数据的连接线和自定义编写的代码生存的自动化交易机构20年之后,彼得菲敲响了纳斯达克的开市钟。他的公司市场定价为120亿美元。

彼得菲保留了盈透证券85%的控股权,只公开出售10%的股份。即便这样,这次IPO[首次公开募股(InitialPublicOffering,简称IPO)是指一家企业或公司(股份有限公司或有限责任公司)第一次将它的股份向公众出售。——编者注]也使得彼得菲将11.8亿的美元尽收囊中。盈透证券的上市亦成为当年美国年度第二大规模IPO。这对于一个没有修完工程学学位,在20世纪60年代决定阅读英文电脑操作手册自学电脑编程的匈牙利移民来说,还算是一个不错的结局吧。

李筱莹译 摘自《算法帝国》

推荐阅读:一个量化策略师的自白(好文强烈推荐)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/157334.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • wing是什么_一圈四叶草的项链

    wing是什么_一圈四叶草的项链在 Mars 星球上,每个 Mars 人都随身佩带着一串能量项链,在项链上有 N 颗能量珠。能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数。并且,对于相邻的两颗珠子,前一颗珠子的尾标记一定等于后一颗珠子的头标记。因为只有这样,通过吸盘(吸盘是 Mars 人吸收能量的一种器官)的作用,这两颗珠子才能聚合成一颗珠子,同时释放出可以被吸盘吸收的能量。如果前一颗能量珠的头标记为 m,尾标记为 r,后一颗能量珠的头标记为 r,尾标记为 n,则聚合后释放的能量为 m×r×n(Mars 单位),新产

    2022年8月9日
    6
  • python3 gil锁_python锁有哪几种

    python3 gil锁_python锁有哪几种前言python的使用者都知道Cpython解释器有一个弊端,真正执行时同一时间只会有一个线程执行,这是由于设计者当初设计的一个缺陷,里面有个叫GIL锁的,但他到底是什么?我们只知道因为他导致pyt

    2022年7月28日
    3
  • 微信浏览器

    微信浏览器

    2021年10月23日
    46
  • git 提交代码常用命令

    git 提交代码常用命令 一、master分支代码提交过程 gitlog 查看git合入的记录    gitpull从服务器重新拉代码,将本地代码更新为服务器上的最新代码 gitstatus查看本地代码状态,是否有待提交的代码  git add.  将本地代码全部提交  gitcommit-m"合入新的PUCCH和小区功率代码"   为本次提交添加注释 …

    2022年6月26日
    43
  • strstr()函数的使用说明(C语言)

    strstr()函数的使用说明(C语言)头文件<string.h>函数作用:1、strstr()函数搜索一个字符串在另一个字符串中的第一次出现。2、找到所搜索的字符串,则该函数返回第一次匹配的字符串的地址;3、如果未找到所搜索的字符串,则返回NULL。函数原型:char*strstr(char*str1,constchar*str2);//返回值为字符型指针str1:被查找目标…

    2022年10月15日
    4
  • javascript nextSibling属性「建议收藏」

    javascript nextSibling属性「建议收藏」对于nextSibling属性,在W3school中的定义为:nextSibling属性返回指定节点之后紧跟的节点,在相同的树层级中。注意所返回的节点必须是与上一个节点是同级关系,且彼此之间不能有空格,否则将会返回:undefinedTitl</p> </div> <div class="item-meta"> <div class="item-meta-li author"> <a data-user="1" target="_blank" href="https://javaforall.net/user-2/1" class="avatar j-user-card"> <img alt='全栈程序员-站长的头像' src='https://javaforall.net/wp-content/uploads/2025/04/2025042212521933-300x300.jpg' class='avatar avatar-60 photo' height='60' width='60' /> <span>全栈程序员-站长</span> </a> </div> <span class="item-meta-li date">2022年7月13日</span> <div class="item-meta-right"> <span class="item-meta-li views" title="阅读数"><i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-eye"></use></svg></i>344</span> </div> </div> </div> </li> </ul> </div> <div id="comments" class="entry-comments"> <div id="respond" class="comment-respond"> <h3 id="reply-title" class="comment-reply-title">发表回复</h3><form action="https://javaforall.net/wp-comments-post.php" method="post" id="commentform" class="comment-form"><p class="comment-notes"><span id="email-notes">您的邮箱地址不会被公开。</span> <span class="required-field-message">必填项已用 <span class="required">*</span> 标注</span></p><div class="comment-form-comment"><textarea autocomplete="new-password" id="j265fd99e5" name="j265fd99e5" class="required" rows="4" placeholder="写下你的评论…"></textarea><textarea id="comment" aria-label="hp-comment" aria-hidden="true" name="comment" autocomplete="new-password" style="padding:0 !important;clip:rect(1px, 1px, 1px, 1px) !important;position:absolute !important;white-space:nowrap !important;height:1px !important;width:1px !important;overflow:hidden !important;" tabindex="-1"></textarea><script data-noptimize>document.getElementById("comment").setAttribute( "id", "aad3a033c7c5ff0668b2b7d41d238e5d" );document.getElementById("j265fd99e5").setAttribute( "id", "comment" );</script><div class="comment-form-smile j-smilies" data-target="#comment"><i class="wpcom-icon wi smile-icon"><svg aria-hidden="true"><use xlink:href="#wi-emotion"></use></svg></i></div></div><div class="comment-form-author"><label for="author">昵称:</label><input id="author" name="author" type="text" value="" size="30"></div> <div class="comment-form-email"><label for="email">邮箱:</label><input id="email" name="email" type="text" value=""></div> <div class="comment-form-url"><label for="url">网址:</label><input id="url" name="url" type="text" value="" size="30"></div> <label class="comment-form-cookies-consent"><input id="wp-comment-cookies-consent" name="wp-comment-cookies-consent" type="checkbox" value="yes"> 记住昵称、邮箱和网址,下次评论免输入</label> <div class="form-submit"><button name="submit" type="submit" id="submit" class="wpcom-btn btn-primary btn-xs submit">提交</button> <input type='hidden' name='comment_post_ID' value='157334' id='comment_post_ID' /> <input type='hidden' name='comment_parent' id='comment_parent' value='0' /> </div></form> </div><!-- #respond --> </div><!-- .comments-area --> </article> </main> <aside class="sidebar"> <div class="widget widget_profile"><div class="profile-cover"><img class="j-lazy" src="https://javaforall.net/wp-content/uploads/2020/11/2020110817443450.jpg" data-original="//javaforall.net/wp-content/uploads/2025/04/anthony-delanoix-urUdKCxsTUI-unsplash-1.webp" alt="全栈程序员-站长"></div> <div class="avatar-wrap"> <a target="_blank" href="https://javaforall.net/user-2/1" class="avatar-link"><img alt='全栈程序员-站长的头像' src='https://javaforall.net/wp-content/uploads/2025/04/2025042212521933-300x300.jpg' class='avatar avatar-120 photo' height='120' width='120' /></a></div> <div class="profile-info"> <a target="_blank" href="https://javaforall.net/user-2/1" class="profile-name"><span class="author-name">全栈程序员-站长</span></a> <p class="author-description">本网站汇聚当前互联网主流语音,持续更新,欢迎关注公众号“全栈程序员社区”</p> <div class="profile-stats"> <div class="profile-stats-inner"> <div class="user-stats-item"> <b>95.5K</b> <span>文章</span> </div> <div class="user-stats-item"> <b>2</b> <span>粉丝</span> </div> </div> </div> <button type="button" class="wpcom-btn btn-xs btn-follow j-follow btn-primary" data-user="1"><i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-add"></use></svg></i>关注</button> </div> <div class="profile-posts"> <h3 class="widget-title"><span>最近文章</span></h3> <ul> <li><a href="https://javaforall.net/192368.html" title="缺陷报告-模板_质量缺陷报告">缺陷报告-模板_质量缺陷报告</a></li> <li><a href="https://javaforall.net/192369.html" title="Ubuntu如何安装vscode_ubuntu20.0.4 vscode配置c++环境">Ubuntu如何安装vscode_ubuntu20.0.4 vscode配置c++环境</a></li> <li><a href="https://javaforall.net/192370.html" title="C++之vector 初始化指定大小容量[通俗易懂]">C++之vector 初始化指定大小容量[通俗易懂]</a></li> <li><a href="https://javaforall.net/192371.html" title="linux命令行修改用户名_linux 更改用户密码">linux命令行修改用户名_linux 更改用户密码</a></li> <li><a href="https://javaforall.net/192372.html" title="CountDownTimer_final countdown">CountDownTimer_final countdown</a></li> <li><a href="https://javaforall.net/192373.html" title="mysql 练习题及答案 50道">mysql 练习题及答案 50道</a></li> <li><a href="https://javaforall.net/192374.html" title="京东云服务器_docker 京东自动签到">京东云服务器_docker 京东自动签到</a></li> <li><a href="https://javaforall.net/192375.html" title="U盘中毒了?教你如何删除System Volume Information这个顽固文件夹「建议收藏」">U盘中毒了?教你如何删除System Volume Information这个顽固文件夹「建议收藏」</a></li> <li><a href="https://javaforall.net/231391.html" title="Web Services 教程">Web Services 教程</a></li> <li><a href="https://javaforall.net/192376.html" title="从0到1搭建一款数据平台产品_全国大数据采集软件免费">从0到1搭建一款数据平台产品_全国大数据采集软件免费</a></li> </ul> </div> </div><div class="widget widget_post_thumb"><h3 class="widget-title"><span>最新发布</span></h3> <ul> <li class="item"> <div class="item-img"> <a class="item-img-inner" href="https://javaforall.net/192442.html" title="idea如何配置数据库连接_idea配置数据库驱动"> <img class="j-lazy" src="https://javaforall.net/wp-content/uploads/2020/11/2020110817443450-480x300.jpg" data-original="https://javaforall.net/wp-content/uploads/2020/11/2020110817443450-480x300.jpg" width="480" height="300" alt="idea如何配置数据库连接_idea配置数据库驱动"> </a> </div> <div class="item-content"> <p class="item-title"><a href="https://javaforall.net/192442.html" title="idea如何配置数据库连接_idea配置数据库驱动">idea如何配置数据库连接_idea配置数据库驱动</a></p> <p class="item-date">2025年12月15日</p> </div> </li> <li class="item"> <div class="item-img"> <a class="item-img-inner" href="https://javaforall.net/192457.html" title="idea配置Tomcat_tomcat docbase"> <img class="j-lazy" src="https://javaforall.net/wp-content/uploads/2020/11/2020110817443450-480x300.jpg" data-original="https://javaforall.net/wp-content/uploads/2020/11/2020110817443450-480x300.jpg" width="480" height="300" alt="idea配置Tomcat_tomcat docbase"> </a> </div> <div class="item-content"> <p class="item-title"><a href="https://javaforall.net/192457.html" title="idea配置Tomcat_tomcat docbase">idea配置Tomcat_tomcat docbase</a></p> <p class="item-date">2025年12月14日</p> </div> </li> <li class="item"> <div class="item-img"> <a class="item-img-inner" href="https://javaforall.net/192733.html" title="idea创建一个javaweb项目"> <img class="j-lazy" src="https://javaforall.net/wp-content/uploads/2020/11/2020110817443450-480x300.jpg" data-original="https://javaforall.net/wp-content/uploads/2020/11/2020110817443450-480x300.jpg" width="480" height="300" alt="idea创建一个javaweb项目"> </a> </div> <div class="item-content"> <p class="item-title"><a href="https://javaforall.net/192733.html" title="idea创建一个javaweb项目">idea创建一个javaweb项目</a></p> <p class="item-date">2025年12月9日</p> </div> </li> <li class="item"> <div class="item-img"> <a class="item-img-inner" href="https://javaforall.net/192761.html" title="idea社区版免费吗_intellij idea community edition"> <img class="j-lazy" src="https://javaforall.net/wp-content/uploads/2020/11/2020110817443450-480x300.jpg" data-original="https://javaforall.net/wp-content/uploads/2020/11/2020110817443450-480x300.jpg" width="480" height="300" alt="idea社区版免费吗_intellij idea community edition"> </a> </div> <div class="item-content"> <p class="item-title"><a href="https://javaforall.net/192761.html" title="idea社区版免费吗_intellij idea community edition">idea社区版免费吗_intellij idea community edition</a></p> <p class="item-date">2025年12月8日</p> </div> </li> </ul> </div> </aside> </div> </div> <footer class="footer"> <div class="container"> <div class="footer-col-wrap footer-with-logo-icon"> <div class="footer-col footer-col-logo"> <img src="http://javaforall.net/wp-content/uploads/2020/10/4545-头像.jpg" alt="全栈程序员必看"> </div> <div class="footer-col footer-col-copy"> <ul class="footer-nav hidden-xs"><li id="menu-item-152" class="menu-item menu-item-152"><a href="https://javaforall.net/contact">联系我们</a></li> </ul> <div class="copyright"> <p>Copyright ©2018-2025 版权所有 <a href="http://beian.miit.gov.cn" target="_blank" rel="nofollow noopener noreferrer">晋ICP备19011774号</a> Powered by 全栈程序员必看 <a href="/sitemap.xml" target="_blank" rel="noopener">网站地图</a></p> </div> </div> <div class="footer-col footer-col-sns"> <div class="footer-sns"> <a class="sns-wx" href="javascript:;" aria-label="icon"> <i class="wpcom-icon fa fa-wechat sns-icon"></i> <span style="background-image:url('//javaforall.net/wp-content/uploads/2020/11/2020110814274114.jpg');"></span> </a> </div> </div> </div> </div> </footer> <div class="action action-style-0 action-color-1 action-pos-0" style="bottom:15%;"> <div class="action-item"> <i class="wpcom-icon fa fa-wechat action-item-icon"></i> <div class="action-item-inner action-item-type-1"> <img class="action-item-img" src="http://javaforall.net/wp-content/uploads/2020/11/2020110814274114.jpg" alt="关注全栈程序员社区公众号"> </div> </div> <div class="action-item gotop j-top"> <i class="wpcom-icon wi action-item-icon"><svg aria-hidden="true"><use xlink:href="#wi-arrow-up-2"></use></svg></i> </div> </div> <script type="speculationrules"> {"prefetch":[{"source":"document","where":{"and":[{"href_matches":"\/*"},{"not":{"href_matches":["\/wp-*.php","\/wp-admin\/*","\/wp-content\/uploads\/*","\/wp-content\/*","\/wp-content\/plugins\/*","\/wp-content\/themes\/justnews\/*","\/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} </script> <script type="text/javascript" id="main-js-extra"> /* <![CDATA[ */ var _wpcom_js = {"webp":"","ajaxurl":"https:\/\/javaforall.net\/wp-admin\/admin-ajax.php","theme_url":"https:\/\/javaforall.net\/wp-content\/themes\/justnews","slide_speed":"5000","is_admin":"0","lang":"zh_CN","js_lang":{"share_to":"\u5206\u4eab\u5230:","copy_done":"\u590d\u5236\u6210\u529f\uff01","copy_fail":"\u6d4f\u89c8\u5668\u6682\u4e0d\u652f\u6301\u62f7\u8d1d\u529f\u80fd","confirm":"\u786e\u5b9a","qrcode":"\u4e8c\u7ef4\u7801","page_loaded":"\u5df2\u7ecf\u5230\u5e95\u4e86","no_content":"\u6682\u65e0\u5185\u5bb9","load_failed":"\u52a0\u8f7d\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5\uff01","expand_more":"\u9605\u8bfb\u5269\u4f59 %s"},"lightbox":"1","post_id":"157334","user_card_height":"356","poster":{"notice":"\u8bf7\u300c\u70b9\u51fb\u4e0b\u8f7d\u300d\u6216\u300c\u957f\u6309\u4fdd\u5b58\u56fe\u7247\u300d\u540e\u5206\u4eab\u7ed9\u66f4\u591a\u597d\u53cb","generating":"\u6b63\u5728\u751f\u6210\u6d77\u62a5\u56fe\u7247...","failed":"\u6d77\u62a5\u56fe\u7247\u751f\u6210\u5931\u8d25"},"video_height":"482","fixed_sidebar":"1","dark_style":"0","font_url":"\/\/fonts.proxy.ustclug.org\/css2?family=Noto+Sans+SC:wght@400;500&display=swap","follow_btn":"<i class=\"wpcom-icon wi\"><svg aria-hidden=\"true\"><use xlink:href=\"#wi-add\"><\/use><\/svg><\/i>\u5173\u6ce8","followed_btn":"\u5df2\u5173\u6ce8","user_card":"1"}; /* ]]> */ </script> <script type="text/javascript" src="https://javaforall.net/wp-content/themes/justnews/js/main.js?ver=6.20.0" id="main-js"></script> <script type="text/javascript" src="https://javaforall.net/wp-content/themes/justnews/themer/assets/js/icons-2.8.9.js?ver=2.8.9" id="wpcom-icons-js"></script> <script type="text/javascript" id="wp-postviews-cache-js-extra"> /* <![CDATA[ */ var viewsCacheL10n = {"admin_ajax_url":"https:\/\/javaforall.net\/wp-admin\/admin-ajax.php","nonce":"b842d24635","post_id":"157334"}; /* ]]> */ </script> <script type="text/javascript" src="https://javaforall.net/wp-content/plugins/wp-postviews/postviews-cache.js?ver=1.77" id="wp-postviews-cache-js"></script> <script type="text/javascript" id="wpcom-member-js-extra"> /* <![CDATA[ */ var _wpmx_js = {"ajaxurl":"https:\/\/javaforall.net\/wp-admin\/admin-ajax.php","plugin_url":"https:\/\/javaforall.net\/wp-content\/plugins\/wpcom-member\/","post_id":"157334","js_lang":{"login_desc":"\u60a8\u8fd8\u672a\u767b\u5f55\uff0c\u8bf7\u767b\u5f55\u540e\u518d\u8fdb\u884c\u76f8\u5173\u64cd\u4f5c\uff01","login_title":"\u8bf7\u767b\u5f55","login_btn":"\u767b\u5f55","reg_btn":"\u6ce8\u518c"},"login_url":"https:\/\/javaforall.net\/login?modal-type=login","register_url":"https:\/\/javaforall.net\/register?modal-type=register","errors":{"require":"\u4e0d\u80fd\u4e3a\u7a7a","email":"\u8bf7\u8f93\u5165\u6b63\u786e\u7684\u7535\u5b50\u90ae\u7bb1","pls_enter":"\u8bf7\u8f93\u5165","password":"\u5bc6\u7801\u5fc5\u987b\u4e3a6~32\u4e2a\u5b57\u7b26","passcheck":"\u4e24\u6b21\u5bc6\u7801\u8f93\u5165\u4e0d\u4e00\u81f4","phone":"\u8bf7\u8f93\u5165\u6b63\u786e\u7684\u624b\u673a\u53f7\u7801","terms":"\u8bf7\u9605\u8bfb\u5e76\u540c\u610f\u6761\u6b3e","sms_code":"\u9a8c\u8bc1\u7801\u9519\u8bef","captcha_verify":"\u8bf7\u70b9\u51fb\u6309\u94ae\u8fdb\u884c\u9a8c\u8bc1","captcha_fail":"\u4eba\u673a\u9a8c\u8bc1\u5931\u8d25\uff0c\u8bf7\u91cd\u8bd5","nonce":"\u968f\u673a\u6570\u6821\u9a8c\u5931\u8d25","req_error":"\u8bf7\u6c42\u5931\u8d25"}}; /* ]]> */ </script> <script type="text/javascript" src="https://javaforall.net/wp-content/plugins/wpcom-member/js/index.js?ver=1.7.10" id="wpcom-member-js"></script> <script type="text/javascript" id="QAPress-js-js-extra"> /* <![CDATA[ */ var QAPress_js = {"ajaxurl":"https:\/\/javaforall.net\/wp-admin\/admin-ajax.php","ajaxloading":"https:\/\/javaforall.net\/wp-content\/plugins\/qapress\/images\/loading.gif","max_upload_size":"2097152","compress_img_size":"0","lang":{"delete":"\u5220\u9664","nocomment":"\u6682\u65e0\u56de\u590d","nocomment2":"\u6682\u65e0\u8bc4\u8bba","addcomment":"\u6211\u6765\u56de\u590d","submit":"\u53d1\u5e03","loading":"\u6b63\u5728\u52a0\u8f7d...","error1":"\u53c2\u6570\u9519\u8bef\uff0c\u8bf7\u91cd\u8bd5","error2":"\u8bf7\u6c42\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5\uff01","confirm":"\u5220\u9664\u64cd\u4f5c\u65e0\u6cd5\u6062\u590d\uff0c\u5e76\u5c06\u540c\u65f6\u5220\u9664\u5f53\u524d\u56de\u590d\u7684\u8bc4\u8bba\u4fe1\u606f\uff0c\u60a8\u786e\u5b9a\u8981\u5220\u9664\u5417\uff1f","confirm2":"\u5220\u9664\u64cd\u4f5c\u65e0\u6cd5\u6062\u590d\uff0c\u60a8\u786e\u5b9a\u8981\u5220\u9664\u5417\uff1f","confirm3":"\u5220\u9664\u64cd\u4f5c\u65e0\u6cd5\u6062\u590d\uff0c\u5e76\u5c06\u540c\u65f6\u5220\u9664\u5f53\u524d\u95ee\u9898\u7684\u56de\u590d\u8bc4\u8bba\u4fe1\u606f\uff0c\u60a8\u786e\u5b9a\u8981\u5220\u9664\u5417\uff1f","deleting":"\u6b63\u5728\u5220\u9664...","success":"\u64cd\u4f5c\u6210\u529f\uff01","denied":"\u65e0\u64cd\u4f5c\u6743\u9650\uff01","error3":"\u64cd\u4f5c\u5f02\u5e38\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5\uff01","empty":"\u5185\u5bb9\u4e0d\u80fd\u4e3a\u7a7a","submitting":"\u6b63\u5728\u63d0\u4ea4...","success2":"\u63d0\u4ea4\u6210\u529f\uff01","ncomment":"0\u6761\u8bc4\u8bba","login":"\u62b1\u6b49\uff0c\u60a8\u9700\u8981\u767b\u5f55\u624d\u80fd\u8fdb\u884c\u56de\u590d","error4":"\u63d0\u4ea4\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5\uff01","need_title":"\u8bf7\u8f93\u5165\u6807\u9898","need_cat":"\u8bf7\u9009\u62e9\u5206\u7c7b","need_content":"\u8bf7\u8f93\u5165\u5185\u5bb9","success3":"\u66f4\u65b0\u6210\u529f\uff01","success4":"\u53d1\u5e03\u6210\u529f\uff01","need_all":"\u6807\u9898\u3001\u5206\u7c7b\u548c\u5185\u5bb9\u4e0d\u80fd\u4e3a\u7a7a","length":"\u5185\u5bb9\u957f\u5ea6\u4e0d\u80fd\u5c11\u4e8e10\u4e2a\u5b57\u7b26","load_done":"\u56de\u590d\u5df2\u7ecf\u5168\u90e8\u52a0\u8f7d","load_fail":"\u52a0\u8f7d\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5\uff01","load_more":"\u70b9\u51fb\u52a0\u8f7d\u66f4\u591a","approve":"\u786e\u5b9a\u8981\u5c06\u5f53\u524d\u95ee\u9898\u8bbe\u7f6e\u4e3a\u5ba1\u6838\u901a\u8fc7\u5417\uff1f","end":"\u5df2\u7ecf\u5230\u5e95\u4e86","upload_fail":"\u56fe\u7247\u4e0a\u4f20\u51fa\u9519\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5\uff01","file_types":"\u4ec5\u652f\u6301\u4e0a\u4f20jpg\u3001png\u3001gif\u683c\u5f0f\u7684\u56fe\u7247\u6587\u4ef6","file_size":"\u56fe\u7247\u5927\u5c0f\u4e0d\u80fd\u8d85\u8fc72M","uploading":"\u6b63\u5728\u4e0a\u4f20...","upload":"\u63d2\u5165\u56fe\u7247"}}; /* ]]> */ </script> <script type="text/javascript" src="https://javaforall.net/wp-content/plugins/qapress/js/qa.js?ver=4.10.2" id="QAPress-js-js"></script> <script type="text/javascript" src="https://javaforall.net/wp-content/themes/justnews/js/wp-embed.js?ver=6.20.0" id="wp-embed-js"></script> <script type="text/javascript" src="https://javaforall.net/wp-content/plugins/baidu-submit/assets/baidu_push.js" id="wb-baidu-push-js"></script> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?2f4d2b9bcf94270f8bf99ccde97cb4b9"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Article", "@id": "https://javaforall.net/157334.html", "url": "https://javaforall.net/157334.html", "headline": "算法交易:华尔街怪兽的核武器", "description": "算法交易:华尔街怪兽的核武器1980年华尔街的黑客生涯:天时地利20世纪70年代末期,算法开始进入人们的工作,这一趋势席卷了世界各地的金融市场,标志着华尔街黑客时代已然来临。华尔街逐渐吸引了美国越来越多杰出的数学家和科学家投身于编写交易算法的工作。在布莱克?斯科尔斯统治市场之前,已经有少数工程师和科学家进入曼哈顿下城市…", "datePublished": "2022-07-11T09:00:00+08:00", "dateModified": "2022-07-11T09:00:00+08:00", "author": {"@type":"Person","name":"全栈程序员-站长","url":"https://javaforall.net/user-2/1","image":"//javaforall.net/wp-content/uploads/2025/04/2025042212371781.jpeg"} } </script> </body> </html>