《算法帝国》——华尔街,第一张多米诺骨牌

2024-04-27 07:48

本文主要是介绍《算法帝国》——华尔街,第一张多米诺骨牌,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1987年年初的一天,纳斯达克交易所的一位工作人员出现在世贸中心的电梯间,我们就叫他琼斯吧。他找到合适的电梯,按下按钮。他是来例行拜访一位快速增长的客户。琼斯知道接下来见到的人是什么样儿,华尔街从事股权交易的人都大同小异:拥有常春藤名校教育背景、追逐利润的白人男性,没什么特别的。

他穿过走廊,来到办公区门前,沉住气并打起精神,做好了准备迎接里面的躁动和兴奋。交易所和电视上播出的抓钱游戏节目是一样的,一个人被塞进玻璃箱里,大把的钱从天而降 。不过有一点不同,交易所漫天飞舞的交易单中有一些是赔钱的。而敏捷熟练的交易员能够快速交易,并飞快地分辨出哪些是赔钱的交易,哪些是可以赚钱的。

公司前台接待了琼斯,然后走进房间去请主人。她带来一位矮个子、满头银发、衣着整洁的男人。他叫托马斯•彼得菲,有着一双蓝色的眼睛,说话带着口音。他非常欢迎琼斯的到来。

琼斯不会想到,彼得菲后来会成为身价超过50亿的富翁,美国最有钱的人之一。他那时还只不过是华尔街的暴发户。但他的交易量却不断上升,利润也不断扩增。琼斯一直很好奇彼得菲这样的人为什么能从市场中持续稳定获利。他雇用了最聪明的人吗?他有强大的研究部门吗?他是在冒大险、行大运吗?

琼斯不知道的是,彼得菲根本就不是一名交易商,而是一名计算机程序员。他做交易靠的不是观察交易厅里人们的表情,预测市场的动向或经济趋势怎样影响股票走势,他靠的是写代码。他用各种计算机语言(如Fortran、C、Lisp)写出了成千上万行代码,它们构建的算法成就了他的交易所,虽然规模不大,但已是华尔街上最优秀的。他本人已经是华尔街新生代的领袖。

彼得菲带琼斯走进交易厅,琼斯迷惑不已。他看见的越多(其实没多少可看的),就越困惑。他预想的是骚动的人群、吵闹的电话声、打印机的声音,还有交易员向纳斯达克交易终端输入交易指令时此起彼伏的叫买叫卖声。可这场景并未出现在他眼前。实际上,他只看见一台纳斯达克交易终端。他清楚彼得菲的交易量有多大,可是这怎么可能呢?谁是做交易的人呢?

“其他交易场所在哪儿呢?”琼斯问,“你的交易员呢?”

“那就是,全都在这儿呢。”彼得菲指向房间里唯一的纳斯达克交易终端旁边的IBM电脑说,“我们的交易都是用它完成的。”交易终端和IBM电脑之间有一团连接线,电脑里装有指示交易品种、交易时间和交易数量的代码。这位纳斯达克职员没有想到,他刚刚见到的是世界上第一台全自动算法交易系统。彼得菲的设备可不只是像过去的交易系统那样提示交易品种,也不仅是简单地弹出需要人来执行的交易单。这台电脑悄悄潜入纳斯达克交易终端,全权决定并执行交易,不需要人的参与。虽然它的对手是人,但他们却都被打得一败涂地。

从纳斯达克终端得到的交易数据不断涌来,彼得菲的代码可以利用这些数据分析市场,轻易通过买家出价和卖家售价的不同来开出买单和卖单。这种价格上的不同成为交易差价,那时候纳斯达克交易市场差价每股可达25美分,那么进行一对1000股的交易(比如在$19.75价位开出买单,在$20.00价位开出卖单),就可以无风险获利250美元。

对彼得菲来说,他利用机器执行交易,风险成本可以更低。那时候交易员频繁开出挂单1,他们面临的最大风险就是在经历一波市场动荡后,仍然可以将原来的挂单高高挂起。大多数做市场交易的人对市场的反应速度只能和交易员一样,交易员必须不断地从电脑屏幕读取新的报价,研究报价信息,重新制定交易计划,撤销老订单,再用纳斯达克终端键盘输入新的报价。交易员要是多吃了几口金枪鱼三明治,或是和同事开了句玩笑,就有可能被交易市场甩在身后了。彼得菲的电脑是不需要吃午餐的,它能紧紧咬住交易市场的波动起伏,大大降低风险,这可是人做不到的事情。

1 证券市场电子化交易中,挂单一词等同于委托,即投资者决定买卖股票时通过电话、电脑等形式向交易系统发出的买卖股票的指令。——编者注

彼得菲的交易机构开启了华尔街的新篇章。从此,电脑程序员、工程师和数学家开始了对金融市场长达20年的大举进攻,所使用的利器就是算法和自动化交易,算法有时无比复杂精密,几乎智能化到可以取代人成为金融市场的决定性力量。

琼斯惊得目瞪口呆。彼得菲把这一切看做是创新的交易方式,琼斯却认为他用临时配置的终端作弊,违反了交易规则。

“你不能这么做。”琼斯说。

纳斯达克没有交易场所,所有交易都是通过电话或是电脑完成的。电脑网络接收从独立的纳斯达克交易终端的键盘上传来的交易指令。彼得菲整合了本应该连接到交易终端的数据线,将它连接到他的程序员和物理学家团队自制的嵌入IBM个人电脑主板的一块电路板上。IBM电脑运行的是彼得菲自己编写的软件程序。电脑通过纳斯达克的数据线获取信息,利用算法分析市场,迅速做出交易决定,然后将交易单通过一团连接线再传回纳斯达克终端的内部。在此之前,无人知晓彼得菲已然入侵了纳斯达克。

纳斯达克是不会让这奇妙精巧的设计和疯子科学家的实验室被市场参与者知晓的。其他交易者要是知道他们是在和IBM电脑所运行的算法斗智,而不是和市场上那些凭直觉下注的赌博者博弈,心里会舒服吗?纳斯达克不想知道答案。

“交易终端和IBM电脑的连接必须切断,你得像其他交易者那样,通过键盘一条一条地输入交易指令。”琼斯说。

琼斯离开了。彼得菲站在办公室里,想到这样也许会终结自己的事业。纳斯达克给了他一周的改正时间,其交易必须符合监督员的要求。一想到要拆掉自己的交易机器,他就痛苦不已。要去招聘交易员整天坐在电脑前输入交易指令,他对这想法可没有丝毫兴趣,哪怕能招来年轻又廉价的交易员。他花了好几年的时间才让自己的交易机构摆脱了人力交易的缺陷,摆脱了人的反复无常、一时兴起。人难免会出错误、懒惰、开小差,关键是输入交易指令有延迟,因此重新使用人力很难达到等同于机器自动化交易的效果,交易机构的高效会在一夜之间丧失。必须有一个更好的解决方案。

晚上他回到上东区的住所准备睡觉,脑海中忽然浮现出一个解决方案。这个方案行之不易,但却有可能解决问题。彼得菲想,即使不用交易终端,他也能从中捕获信息。不用拼接连接线,不用嵌入电路板,什么都不用。但怎样实现呢?他询问了自己的工程师,是否能够造出某种设备从屏幕直接读取信息,就像照相机那样,然后将这些信息转化成电子字符,传送到等候指令的IBM电脑里。答案是能。

但是解决数据来源的问题仅仅是个开头,由于没有任何人坐在纳斯达克终端前,彼得菲要怎样完成交易呢?他不能像之前那样把一根传输线连接在纳斯达克终端上。不行,纳斯达克明确规定了交易指令必须得通过键盘输入。彼得菲灵光一闪,有了一个疯狂的念头。

在接下来疯狂的一周里,彼得菲和他最好的工程师忙着焊接金属、编写代码、焊接数据线。他们在纳斯达克终端屏幕前安装了一个大型菲涅耳透镜,放大屏幕字体。又在离透镜一英尺远的地方安装了一部相机。从照相机牵出一根数据线连接到旁边的一台电脑上。彼得菲和他的程序员仅用了几天时间就编写出了一套软件,可以解码照相机传来的可视化数据。那些数据从特定程序软件流到彼得菲已经做好的算法里,就是那些曾经通过数据线和纳斯达克终端直接相连的算法。

现在IBM电脑有了一根新的连接线,它不是接入到纳斯达克终端机箱,而是连接到了悬在终端键盘上空的那一堆密密麻麻的金属棒、金属塞和手柄上。如果说照相机和读屏设备略显奇怪,那么彼得菲设计出的这部分悬空的系统就是怪异得超乎寻常了。它让人想起工业大革命之初复杂精细的机械设备。这个装置是一个从零组装的自动化打字机。手柄断断续续敲打着键盘,执行从电脑传来的交易指令,不到30秒就有几十个交易单输入终端。

纳斯达克说交易单必须得输入终端,可也没有规定谁来完成输入。彼得菲的团队花了六天时间创造了一种输入交易和指令的半机器人。表面上看,他遵守了法律,但实际上却违反了法律的本质。可彼得菲并不担心。华尔街不就是一个法律擦边球、变通方案和秘密交易无处不在的地方吗?而且总是青睐那些最有创造力的骗子。

纳斯达克监督员琼斯一周后如约而至。彼得菲在电梯间见到他,带他穿过走廊,来到交易厅。门哐当一响,一周以前鸦雀无声的交易厅,现在是一派喧闹繁忙,这才是交易厅该有的样子嘛。彼得菲带琼斯穿过大门,骄傲地指向自己的创作。这位纳斯达克职员仿佛置身于儒勒•凡尔纳笔下的科幻小说所描述的场景。

“这是什么?”琼斯问。

彼得菲解释他的交易机器如纳斯达克要求的那样运作——键盘输入,一次一单。就在这时候,交易市场活跃起来了,机器也跟着忙碌起来。彼得菲的程序交易速度如此之快,输入设备就像一把全自动机关枪不停开火。交易单不断涌入,手柄噼里啪啦打在键盘上,噪音如此之大,甚至淹没了谈话声。机器每次停下来,仿佛要安静一会儿,谁知转瞬之间再次启动,更加气势汹汹地弹出比上次还要多的单子。这整个交易是华尔街的聪明人对规则的又一次令人叹为观止的绕行。

“他可不太喜欢这个机器。”彼得菲回想道。

彼得菲觉得这没什么大不了的,他还提出在这奇异装置前弄个洋娃娃模型来敲键盘。这是个玩笑,不过彼得菲也愿意这样做。但是琼斯一直紧绷着脸。

琼斯摇摇头,彼得菲扮了个鬼脸。他造出了世界上运行速度最快的交易机器,他也预料到这个交易机器可能面临被拆卸的命运。这位纳斯达克职员沉思了几分钟,然后一言不发地走出了彼得菲的办公室。彼得菲做了最坏的打算,那就是纳斯达克禁止他的发明参与交易。但是琼斯没有再回来,而且彼得菲担心的那个电话也没有打来。他的交易所完好无损。彼得菲几年前不到10万美元起家,在1987年赚到了5000万美元。

1987年,彼得菲在华尔街还只是个无足轻重的小人物,但他却是新生代交易商的领袖之一。这些人擅长编写复杂的代码、焊接半导体芯片,并运用数学知识探索迷宫般的市场结构。彼得菲所做的事情理论上简单易懂,操作起来却复杂繁琐:他吸取了最聪明的交易员的智慧,用一系列的算法表达他们的思想。彼得菲的程序包含了一个高明的交易员在决策时所要考虑到的全部因素。不同之处在于电脑运行算法、核实价格、执行交易所用的时间要远远少于人为操作。

使用软件、代码和高速运行的电脑来击败市场的人不止彼得菲一个。但彼得菲的发明(不管是敲打键盘的金属塞还是窃取数据的传输线)引发了一场革命。今天,60%的交易由电脑在无人实时监管或很少监管的情况下自动执行。彼得菲在华尔街演绎的故事是独一无二的。他不是有先见之明雇用程序员来扩充自己统治领域的金融大亨,也不是自学编程期待在金融市场获得优势的华尔街玩家。他与众不同的地方在于他是个程序员,一个优秀的程序员。早在他理解股票期权的原理,理解为何不同公司的股票会走势一致之前,他就是一个程序员。

就这样,彼得菲用自己的编程技能、数学知识和编写复杂代码的能力,创造出了分层算法,从而颠覆了一个对他而言很陌生的领域:华尔街交易所。这种颠覆性的黑客范式在20世纪末风行于世界各地,并开启了21世纪:先是一个技术熟练的电脑代码和算法工程师对某一新的领域产生了兴趣,培养自身在该领域的技能,然后应用计算机科学,让代码片段模仿前人的操作,并战胜了无数的公司,破坏了行业标准,击败了行业的老旧势力,从而颠覆了整个行业。构建算法模仿、超越并最终取代人类,是21世纪最重要的能力。由于具有这种能力的人剧增,工作会逐渐消失,生活会发生巨变,各行各业都会重建规则。这已经发生了,这种趋势还会延续。这一趋势也如历史上的其他趋势一样追逐利益。这也就是为什么它始于华尔街,很大程度上要归功于这位匈牙利移民。

这篇关于《算法帝国》——华尔街,第一张多米诺骨牌的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/939917

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

康拓展开(hash算法中会用到)

康拓展开是一个全排列到一个自然数的双射(也就是某个全排列与某个自然数一一对应) 公式: X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[1]*0! 其中,a[i]为整数,并且0<=a[i]<i,1<=i<=n。(a[i]在不同应用中的含义不同); 典型应用: 计算当前排列在所有由小到大全排列中的顺序,也就是说求当前排列是第

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

【数据结构】——原来排序算法搞懂这些就行,轻松拿捏

前言:快速排序的实现最重要的是找基准值,下面让我们来了解如何实现找基准值 基准值的注释:在快排的过程中,每一次我们要取一个元素作为枢纽值,以这个数字来将序列划分为两部分。 在此我们采用三数取中法,也就是取左端、中间、右端三个数,然后进行排序,将中间数作为枢纽值。 快速排序实现主框架: //快速排序 void QuickSort(int* arr, int left, int rig

poj 3974 and hdu 3068 最长回文串的O(n)解法(Manacher算法)

求一段字符串中的最长回文串。 因为数据量比较大,用原来的O(n^2)会爆。 小白上的O(n^2)解法代码:TLE啦~ #include<stdio.h>#include<string.h>const int Maxn = 1000000;char s[Maxn];int main(){char e[] = {"END"};while(scanf("%s", s) != EO

秋招最新大模型算法面试,熬夜都要肝完它

💥大家在面试大模型LLM这个板块的时候,不知道面试完会不会复盘、总结,做笔记的习惯,这份大模型算法岗面试八股笔记也帮助不少人拿到过offer ✨对于面试大模型算法工程师会有一定的帮助,都附有完整答案,熬夜也要看完,祝大家一臂之力 这份《大模型算法工程师面试题》已经上传CSDN,还有完整版的大模型 AI 学习资料,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

dp算法练习题【8】

不同二叉搜索树 96. 不同的二叉搜索树 给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。 示例 1: 输入:n = 3输出:5 示例 2: 输入:n = 1输出:1 class Solution {public int numTrees(int n) {int[] dp = new int

Codeforces Round #240 (Div. 2) E分治算法探究1

Codeforces Round #240 (Div. 2) E  http://codeforces.com/contest/415/problem/E 2^n个数,每次操作将其分成2^q份,对于每一份内部的数进行翻转(逆序),每次操作完后输出操作后新序列的逆序对数。 图一:  划分子问题。 图二: 分而治之,=>  合并 。 图三: 回溯:

最大公因数:欧几里得算法

简述         求两个数字 m和n 的最大公因数,假设r是m%n的余数,只要n不等于0,就一直执行 m=n,n=r 举例 以18和12为例 m n r18 % 12 = 612 % 6 = 06 0所以最大公因数为:6 代码实现 #include<iostream>using namespace std;/