曾经在HFT公司...

我的个人交易故事,所有比赛都是随机的。
图片
我以C ++程序员的身份在美国最大贸易公司之一的澳大利亚分支机构的HFT开始了我的职业生涯。 第一天,我遇到了一个办公室,办公室里有大窗户可以俯瞰悉尼海港,其中一个是用“ <2ms”的钢笔书写的。 这是十二个开发人员的主要任务,但到目前为止,对我而言还不是。 所以...


最初的震惊


其中一个人提出了在澳大利亚证券交易所(ASX)交易期权的想法,或者更确切地说,是期权差价及其带有强制套期的组合。 他需要可以处理一系列令人困惑的交易规则并与我们称为Orc的交易平台集成的东西。 这些是2000年代初期,我在Windows 2000下的VB6上为其编写了解决方案。为此,我使用了C ++,Boost和多线程Spirit解析器与Orc集成。 后者计算了二项式或三项式树,以根据需要评估ASX上的美国期权。 对于我的定价代码,我在VBA中使用了别人的代码,用C ++逐行重写。


但是,Orc并不总是按需计算价格,而是经常使用缓存。 如果原始参数保持不变,那么Orc只会从内存中返回价格,而不是重新计算价格。 这个平台太慢了,无法与自己的Timber Hill平台(现在称为Interactive Brokers)或IMD的Ord Liquidator(当时是最快的盒子系统)竞争。 无论我对她做了什么花招,她似乎都太穷了,无法与他人竞争。 但是,使用大型多维期权价格缓存(通过简单的插值从中获取缺失值),并使用C ++编写的代码在多个流中不断对其进行更新,出乎意料的是,我们能够进行那些以前不可用的交易。


当Orc Trader中的利率或波动率曲线发生变化时,我的价格缓存开始再次填满。 当然,这个决定不是原创的。 几年前,我在一篇老文章中首先了解了有关缓存期权价格的信息。 与在具有非凡执行力的现代微处理器中一样,您可以猜测以下计算,将来可能仍需要进行这些计算。 市场价格是离散的。 请记住,最快的计算是不需要进行的计算。 接下来的想法是打破零延迟是困难的,但并非不可能。 我从最快的消息是不必发送的消息这一事实得出了关于预测未来的奇怪结论。 我认为,这一点更为重要。


我认为,最好的架构是缺乏刚性架构。 这可能看起来有点荒谬,但是对于HFT来说,这是纯粹的事实。 如果您不注意系统的体系结构,则非结构化代码会立即变成旧版。 实际上,由于过早的优化是一切的基础 ,因此不揭穿众所周知的计算机神话并让您的竞争对手绊倒它们就更有利可图。


我对Orc Trader平台的黑客攻击不是理想的解决方案,但是它使某些人无法接受以前的交易,这使他们感到满意。 当他们亲眼看到报告中的这些交易时,他们甚至看上去很高兴。 但是,总体而言,这只是次要的成功。 随后,它变成了数百条用于搜索交易的手动规则,仅通过交易来偿还运营商成本。 但是至少我很开心。


专注于“ <2ms”


让我们回想一下记录在窗口窗格中的条件“ <2ms”。 我写了一篇文章,提出了一种更快,更复杂的方法来减少延迟。 包括我在内的三个程序员组成的团队应该执行它。 首选落在韩国证券交易所。 此项目中不需要价格缓存,因为即使在多个维度上,欧洲期权定价模型也不会比简单插值复杂得多。


此时,频率为2-3 GHz的处理器才刚刚出现。 我们的性能指标有些错误-我们主要测量的是代码内部的延迟,而不是操作系统内部的延迟(实际上更大)。当数据以毫秒为间隔到达时,此延迟仍然有效,因为在那时,网络堆栈花了50到100微秒来处理包裹。 这里要记住的主要事情是,当处理器每秒可以执行十亿次以上的操作时,在这两毫秒内有超过一百万条指令。 老实说,如果将这百万条指令进行简单定价,这将是一个非常非常糟糕的代码。 如果决定达成交易要花费一百万步,请立即退出。 每纳秒在这里很重要。


事实证明,我隶属于一个不太协调的团队,作为新员工,我必须小心。 开发部门只有我们三个人。 团队成员之一(实际上是一名出色的程序员)显然很累,开始将所有的时间都花在有关视频加速器的游戏和论坛上。 “ GPU先生”曾经为多线程编写公司的核心库,虽然它们遇到了设计问题,但也不错。 所有同步都是通过互斥锁完成的,任何操作都需要锁。 最后,我再次来使用C ++ Boost库。 “ GPU先生”显然不喜欢该项目,而是卷入了某种罢工。 毫无疑问,他需要为我的想法加油。 另一个人的能力较差,但能力却最低。 通常,他吃很多东西,然后经常去会议室看那里的另一部DVD电影。


但是我们必须以某种方式应对以克服这两个毫秒。 事实证明,我需要编写比预期更多的代码-我不得不熬夜几次。 “ GPU先生”完成了集成工作,而“ Alienated Dude”则什么也不做。 结果,我们的新系统显示了不到5微秒的延迟。 在我看来,这是巨大的成功。 但是,该数字未考虑网络延迟。 无疑,它们现在比一个月前重要得多。


另一位工作人员向我表示祝贺。 我从他那里了解到,大多数IT人员(包括他)都认为这是不可能完成的任务。 显然,他们希望我会失败。 我带来的变化并没有引起所有人的热情,但是我得到了一笔很小的奖金,却没有大幅增加工资。


我曾经幻想要在这份工作上待二十年,尤其是在网络泡沫破灭之后。 但是现在显然是我继续前进的时候了。


寻找新工作


我联系了几家HFT公司,并分享了我对可以做什么的想法。 一家不错的荷兰贸易公司非常认真地听了我的话,但什么也没提供。 多年后,我发现他们的团队开始实施类似采访后第二周在访谈中所述的内容。 我听说这种方法成功了。 他们称其为“隐含基本法”,其中所有方法都归结为预测期货或基础资产的理论价格。 我喜欢他们的名字作为我的方法,即使它看起来像是一个狂热的崇拜者。 嗯,这就是金融公司通常的经营方式。 尽管他们欺骗了我,但我还是受宠若惊。


然后,我与一家澳大利亚公司进行了交谈,该公司的团队由大约12个开发人员组成,专注于在ASX交易所进行交易。 他们的平台通常比Orc Trader还要慢,花费了数毫秒的计算时间。 我要求与公司负责人会面,而公司负责人比我成功得多,而且年轻得多。 他是薪水超高的人之一,其收入将根据澳大利亚法律宣布。


他们的业务看上去并不“完全干净”,他警告我,他们在国外赚到的钱并不能总是合法地返还给母公司。与这家公司进行谈判是浪费时间–我不想当黑帽子。只要符合道德标准,就可以找到规则中的漏洞,这是一个有趣的游戏,但是,我们不应该越过这些红线,欺骗并不会赢得胜利,更重要的是,您的声誉至关重要。低估了丑闻和我的损失 Ë要风险。


我也喜欢其中一家投资银行,我与之交谈过。 那是华尔街大型办公室的一个分支。 我已经在这种环境下工作了几年。 进入门槛似乎很低-他们不想赚钱,他们只是想建立没有任何成本的证券交易所营业额,因此他们的财务部门可以为这个分支机构演唱小夜曲。 在我看来,这是一个不错的选择,而且我确信他们不会介意创造营业额以及反对获得额外的利润。 利润通常很少引起抱怨。


我以前的公司的好处是,他们甚至可以解雇赚钱的员工。 有人违反了规则,进行了几笔未经授权的交易。 他们给公司带来了钱,但令我印象深刻的是,他们还是因为违反规定而被解雇。 这种正确的管理职位极为罕见,尤其是在金融领域。


然后,出乎意料的是,又出现了另一个机会。


我曾经与塔斯马尼亚大学计算机科学专业的一个人共进午餐,该人现在为ITG工作。 当他们从事私人交易时,他邀请我与ITG交谈。 这对我来说是个新闻-我以为他们只是经纪人。 我会见了他们在亚太地区的总经理,他详细介绍了他们的仲裁平台,该平台可处理以美元和加元指定的股票。 然后我在去澳大利亚旅行时会见了美国首席执行官雷·基利安(Ray Killian)。 会议进行得很顺利,在ITG中开展高频交易似乎再也没有障碍。 亚太地区的首席执行官及其董事长,也是纽约证交所上市公司ITG Inc.的成员,最终将即兴的商业计划和风险计算结果带到了美国,以召开董事会会议。


我不知道接下来发生的事情-在接下来的几年中,我被告知三个完全不同的版本。 根据一个版本,董事会批准了业务计划,但基利安赢回了一切。 根据另一个版本,一些董事会成员没有批准该项目。 根据第三个版本,业务计划根本没有传达给董事会成员。 我不知道哪个版本是错误的(也许是一次),但这没关系。 来自ITG的人决定在没有雇主的情况下投资个人资金。 这并不是我一直在寻找的工作,但是如果业务发展顺利,我可以通过在过去几年中获得的认股权来赚取新公司约四分之一的股份。 就像胜利一样。


HFT公司的诞生


因此,已经获得了150万澳元的投资,是时候再次开始独自在办公室使用笔记本电脑工作了。 我设置了几台服务器和工作站,安装了64位SuSE Linux,聘用了三位程序员-来衡量投资者支付时间的时钟开始计时。 原来我不是一个很好的Linux系统管理员。 很快,我厌倦了执行糟糕的管理任务,并将其分配给自由职业者。 现在有四个半人。 但是事实证明,特别是在具有Hypertransport总线的AMD处理器上,64位SuSE Linux还没有准备好进行黄金时段的加载,因此我们返回了32位RedHat / CentOS组件。 这是“ Sysadmin先生”的明智决定,有点向前。


四个月后,我们向前看。 我们必须选择是在ASX上运行还是前往韩国。 然后将三个韩国交易所KSE,KOSDAQ和KOFFEX合并为一个韩国交易所KRX。 我们选择了韩国,尽管那里的商业和技术环境更加复杂和危险。 但是,那里还有更多机会,加上定价模型中更简单的数学方法以及少量工具有望提供更轻量级的代码库。


然后一件有趣的事情发生了。 创建新系统时,通常会尝试制定一些命名约定以使您的生活更轻松。 我决定使用ISO代码或部分代码进行标准化。 但是,由于韩国交易所的合并,尚未为新交易所分配ISO代码。 我与ISO负责小组取得了联系,该小组原来是欧洲唯一拥有excel表格的人。 他决定合并后的交易所的新代码将为XKOX。 我点击并写信给他,说这种组合在英语上听起来不太和谐。 也许最好的主意是使用明显的KRX或XKRX代码? 我们笑了,所以XKRX成为了新的ISO代码。 所以现在我可以说是我为朝鲜统一交易所创建了ISO代码。


在韩国的过去,交易者,即使是高频交易者,也无法直接进入交易所。 您必须通过经纪人的网关并使用其特定的API进行连接。 根本没有搭配。 在客户之间,仅由于位置和交互技术的不同,延迟存在很大差异,不受经纪人控制。 期货和期权在KOFFEX交易所交易。 KOFFEX本身位于釜山,距首尔仅三百多公里的港口城市。 KOSPI 200指数的衍生合约面值较小,但手数较大。 因此,它们是世界上资源最丰富的衍生产品,与其他产品相比差距十倍。 CME的欧元/美元合约排名第二,而KOSPI 200的期权排名第一。 事实证明,这对于KOFFEX来说太多了,因此这些工具的主要交易是在首尔的KSE交易所进行的。 因此,尽管交易所本身是在釜山成立的,但我们从交易所获得的所有需求都位于首尔的一个地点。


至此,我已经知道网络堆栈会引入最严重的延迟,这在我的新实现中可以解决。 我发现一个硬件以太网到InfiniBand协议转换器,引入了3微秒的延迟。 它被设计为连接到TopSpin InfiniBand交换机的模块。 AMD的Hypertransport(HTX)总线是PCI Express的替代产品,它更现代,提供了更少的内部延迟。 我购买了几款支持HTX的Pathscale HTX Infinipath网络卡和主板(然后它们仅存在于alpha版本中,例如,其中一个的序列号为0x0000045!),将所有这些杂色的零件放到一个大箱子里,并得到了一个昂贵的箱子,但是非常快的网络堆栈,我对此感到非常满意。 当然,他看上去有些笨拙和笨拙,但他是世界上最具竞争力的人之一。 几年来,普通网卡无法与我的配置相提并论。


选择经纪人


之后,我们去了首尔,在数据中心里找到了一家经纪人和一个地方。 我和一位投资人一起去了,一个叫泡泡的人,后来他成为我们的雇员。 最初,它在ITG和HFT之间被撕裂,但后来完全由我们使用,因为首席执行官,APR主席和其他ITG员工都是我们的投资者。 是他被指示预订汉城的一家酒店。 原来,他选择了按小时付费的汽车旅馆,这是因为它隐藏了真实的图画,如风景如画的艺术描写-肮脏,肮脏的房间,装有薄薄的空调,装有感染病毒的计算机。 不好的开始。 几位经纪人致电给我们,对我们所在的地区表示惊讶。 笨拙但有趣。 这次旅行非常富有成效,我们达成了令人惊讶的惊人交易。


好交易


Muppetz证券办公室为我们提供了DMA服务。 我辞职的大公司没有直接联系。 在此之前,我一直在看HP / Compaq / Tandem的系统,因为这是进入特定经纪人内部网络的一种方法,以便与交易平台更近。 一个小盒子的成本约为50万美元,这是惠普专用内部应用程序开发计划的一部分。 这是诱人的,但对于正在生存的企业而言却不是。 现在,为我们提供的DMA服务是在X.25协议的基础上实现的,这对我来说是创新的。 这笔经纪交易相当昂贵,但是由于以前从未听说过真正的直接访问,所以几天后我签署了一份合同。


“ ” RTS, , . . RTS , , . , Orc. Orc, . , RTS API 10% .


, InfiniBand. – X.25. , . Muppetz Securities , , .


, Muppetz , . X.25 . - HFT-, , ? , .


, "" . , HFT- , . , . , Muppetz , . ., . , Muppetz , , – !


, . , , KRX. , , , , . . CRT-. , , . . , , ? , “”.


Muppetz X.25 , KRX, . - , , , .


X.25


X.25 . T1 E1 ( ) Koscom, KRX. 64 (kbps) . , - , . , ( ) .


X.25 . , , . - , X.25. , , , – BBS, FIDO, Z-modem, Y-modem, . , , . . . , . , , . Sangoma, .


. . . , , . HFT , . , , . , , . T1. , , . X.25, , Sangoma. – .


X.25. Postgresql ( ), C++, .. , , -. , . , , . , .


()


. . . – 85% ! , ( ), . .


.


, “” . , , . , , . , , . , . . , ( , " "), 72 . , . , . , , , . , . … ! – . , , .


(IV) . IV, ( ) . . , IV , . , . R, . IV . - , . , , . , , ( .) , .


. . , . , , . . , .


, . . . . “” . - , , . , . .


Zero


当您在交易所交易时,如果您收到了一部分有利于您的价差,我们相信您很幸运。 当时在韩国,ATM选件价格便宜,价格变动幅度为0.01个价格点。 这些0.01的成本约为一份合同的一美元。 当立即用一系列期权交易高频机器人时,如果您很幸运,那么您以平均10或20美分的价格退出交易。 我从事这项工作的目标之一是超越我先前看到的那些营业额数字。 我记得最近的记录是每天113万份合同。 如果您可以交易一百万份期权,每份的价格为10或20美分,您将非常高兴。 在理论上,实践与理论之间没有区别。 意识到这一点对我来说非常困难。


然后我想起了一位交易员B.先生与一家老公司厨房里的某人的谈话(顺便说一句,他最终领导了该公司。)问B.先生是否以良好的交易信号买入并获利,为什么?他不立即平仓吗? 他回答说,如果一切都这么简单,他将比现在赚更多的钱。 我们拥有良好的延迟,而且位置良好,并具有直接的X.25通道。 该技术有效,定价模型给出了正确的价格。 也许我们可以做不可能的事?


我与股东交谈,并告诉他们,我还需要25,000澳元才能生存一个月,并尝试一些新的东西。 主要投资者发放了25,000澳元的贷款。 最初的员工之一F.先生编写了我们称为“零策略”的代码。 一切都很简单-不要有指示性的立场,等待一个选择出现在玻璃杯中,其价格至少与我们的价格相差一时。 然后打他。 等一下 然后将其折叠并赚取利润。 这行得通吗?


我们会活的!


我们的月交易收入开始用健康的六位数来衡量。 零的策略奏效了。 我们已经增加了交易资本,因此您可以购买500或1000个ATM期权,然后转身将其抛弃。 这里没有明智的做市商。 我们只是一个积极进取的人。


成为市场的接受者比成为制造者更成问题。 作为做市商,当市场不利于您时,您必须摆脱市场的束缚,但您必须足够坚韧,以免变得愚蠢,也不会在队列中失去宝贵的位置。 通常,价格阈值在克服之后需要从玻璃杯上逃走以防止损失,但低于利用贸易优势的侵略者的价格阈值。 这看起来像是一个奇怪的游戏,其中侵略者实际上有一个延迟障碍,因为在其他所有条件相同的情况下,他只有在制造商已经做出举动之后才准备行动。 或者看起来像一个100米的冲刺,制造商在其中拥有50米的优势,您必须以某种方式追逐他。 这个类比几乎描述了Zero的策略。 通过X.25进行直接连接,使电线穿过校园的窗口和位置,足以克服我们早期策略的幼稚。 财富向我们微笑。


观看赚钱后,钱如何在银行帐户中自动显示是一种娱乐。 这有点超现实。 我们在韩国交易指数期权,而澳元则出现在悉尼的银行帐户中。


我们最近租用的办公室位于亨特街(Hunter Street),面积200平方米,花了一点钱在家庭集群上,在廉价机架上从硬件商店,RAM卡,ATX电源和网络交换机购买了许多小型mini-ITX计算机。 随着数百个附加内核的出现,隐含波动率的仿真,历史测试以及策略本身都得到了改善。


我们交易的下一步是从零策略到具有对冲功能的成熟交易策略的过渡。 我们没有尝试通过期货对冲头寸,而是转向了其他选择的对冲。 我们不想在一夜之间转移职位,但很高兴全天担任这些职位。 零策略在一天中的总曝光时间为几秒钟。 新策略使我们整日保持自己的位置。 这个想法很好。 KRX市场约三分之二是价格相对固定的低价期权。 看到超过一百万个要约或要价的小选择并不罕见。 但是,购买这些便宜的期权,您将很难在市场关闭之前重置它们。 因此,我们只关注点差较小且增量较大的期权,价格变动价位低于3.00的价格变动价位为0.01。 它们约占平均市场规模的三分之一。 最终,我们的市场份额增长到了6-7%,有时甚至超过了10%。 令人惊讶的是,我们交易了我们所关注市场的三分之一。 这样正常的小菜一碟。 克服了过去的营业额记录。


整理电线


第一个重大破解的想法是在查看穿过窗户放置的双绞线之后产生的。 T1和E1线的调制解调器通过笨拙的连接传输此信号,从而导致更大的盒子,然后通过巨大的连接器将其连接到串行卡。 一点点研究和一个显而易见的计划就诞生了。 我买了几张新的Sangoma卡,在其中用双绞线连接了NetOptics T1 / E1通道,并将此组件安装在韩国。 当被问到这是干什么的时候,我回答说这是监视线路状况并测量延迟。 该声明在技术上是正确的,但不完整。


新的Sangoma卡支持混合模式,其中卡仅接受通道中的所有位。 我开始分析它们,并意识到这些流是什么样的。 X.25虚拟通道已分组为市场数据通道。 他们倾向于一个接一个地走。 看跌期权,看涨期权和期货期权还有其他渠道。 我不得不自己拆解HDLC层,但很快我就解码了与KRX通道匹配的数据包。 调制解调器和网络设备的这种旁路节省了大约一毫秒。


这不是陌生的领域。 Eurex交换曾经提供了一个私有API-它被黑客入侵并对该交换协议进行了反向工程。 此后,对交易所会员技术规则的正式文件进行了调整,以致违反了规则。 后来这种做法被制止了,但是在韩国没有这样的规定。 同样,当ASX在Bondi开设第一个小型主机托管点时,我注意到几家客户公司使用戴尔提供的1U服务器,而没有任何调制解调器。 纳斯达克协议的反向工程并不像我所希望的那么罕见-有很多聪明的黑客。


切开扔掉


在韩国,情况有所好转。 现在我有了一个一个的比特流(或者至少一个字节一个字节),我可以看到数据包在线路中浪费了很多时间。 毫秒 当您仅剪切数据包的第一部分时,网络监控中的一种常见方法就是切片。 我用我的HDLC层旁路代码实现了这一点,现在我们遥遥领先,因为我们需要的出价和要价字段位于报价包的开头。 以128 Kbps的速度保存100个字节,而您在6.1毫秒时领先。 随着规格规格和KRX频道加速的增加,我们的优势减弱了,但是无论如何它仍然可以接受。 现在,我们甚至在完全接受包含价格的输入数据包之前就发送了订单。


有时,交换交换了虚拟频道,我们一直使用慢速的电缆,直到我解密了新的数字。 其余基础设施也在缓慢改善。 现在,我们的电缆不再穿过窗户,而是穿过建筑物主交换机的电缆通道。 我们还在窗户上悬挂了一个小型空调,这是非常必要的,因为机架中的温度不断升高。 我们的工作室不是真正的数据中心。 然后,我们的银行出售了其衍生产品业务,不久之后,新所有者决定我们的客户太小,并命令我们离开我们的办公室。 后来,我发现他在东京拥有自己的AI交易小组,这确实需要我们为自己留出空间。


再试一次


我不得不为找到我们的新家而奋斗。 我们专注于一次发现几个要点,以便使业务更具可持续性。 X.25协议尚未广为人知,但不再不寻常。 一位叫S.博士的人来帮助我们,并将我们的设备放在马路对面的数据中心中。 这个经纪人稍微聪明一点,并且了解到,如果我们看到整个物理数据流,那么我们就有可能看到其他客户的订单。 他是对的-从技术上讲我们可以,但是到目前为止还没有这样做。 我们必须为我们自己的市场数据流配置建立一个单独的基础结构。 这个经纪人做得很好,我们感谢他的顺利迁移。 Muppetz的经验是一个例外。 韩国的经纪人是好人。


我们在新位置部署了相同的基础架构,并继续进行搜索。 我们注意到,不同站点的市场数据速度差异很大。 我们无法获得GPS信号来通过网络同步本地时钟,但是韩国将CDMA标准用于移动通信。 当地制造商Endrun Technologies售出了一个漂亮的小塑料盒,通过它我们可以得到准确时间的稳定信号。 该设备在CDMA内部接收GPS信号,并通过串行端口加上(通过另一根电缆)以超精确的间隔发送NMEA数据。 CDMA规范保证了不超过10微秒的准确时间信号的抖动,实际上,在汉城,这一时间约为1微秒。 为了进行比较,加拿大的一家CDMA运营商显示出大约5或6微秒的精度。


我们最终在KRX地下数据中心进行了配置。 由于严格的安全性,进入室内并不容易。 在地下走了很长一段路之后,我注意到数据中心内部捕获了一个手机信号。 我将CDMA接收器放在机架上,它可以正常工作-我们得到了从中断的蜂窝信号到其内的某些东西耗尽之前的确切时间。 怀疑需要安装效率更高的天线,因此在下次前往首尔之前,我买了一米长的白色柔性天线,并将SMA连接器焊接到该天线上。 当我走到KRX数据中心的地下掩体并在我们的机架上放了一个大白色天线时,来自Koscom的家伙非常怀疑地看着我。 我不知道他们在那儿怎么想,但几年来其他几人提到他们看到我的白色天线躺在KRX的机架顶部。


现在我们在所有存在点都有准确的时间,我们需要在它们之间建立数据交换。 我们发现,在距校园几个街区的地方,我们通过城市提供商的10兆以太网连接在两点之间收到了300微秒的延迟。 这是一个非常好的指标,我们协调了这些互联网线路上的所有市场数据和订单。 在韩国,互联网非常棒,那时我们已经足够了。 毫秒获取所有存在点的市场数据的好处立即改善了交易。 我们最好的订单来自交易所园区,而最快的市场数据来自几个街区。 事实证明这是相当出乎意料的,并且该位置多年来一直是获取市场数据的最佳场所。


不久之后,在KRX交易所大楼扩建的新地点,我们开始获取市场数据,结果造成的延迟很大。 这是我第一次在韩国碰到Citadel,我能够通过网络数据包中的时间戳来确定这一点-如果您可以收听,它们可以告诉您所有信息。 我们要求断开此通道,Koscom停止了传输并实际断开了线路。 一两个月后,我们支付了重新连接的费用,他们接通了同一条线路,没有进行任何更改,现在它是最好的线路之一。 这些是韩国生活的变幻莫测。 我怀疑中间的某处某种新型的循环平衡器能够改善这种情况。 对于在那里观察到的其他奇怪之处,我无法提出任何明显的理由。


在X.25上发送订单的虚拟通道每个为64 kbit / s-这个通道非常慢。 我以为我们可以对Sangoma卡使用相同的技巧,并开始编写代码,即使在内存中完全形成顺序之前,也可以按顺序发送数据包,这可以节省毫秒。 发送订单后,如果市场情况突然有时间改变并且不再需要发送的订单,我们可以将包裹变成无效的包裹。 但是,我们的小团队已经很忙,这个任务也不是优先事项,因为我们的交易表现已经相当不错。 我们了解了更多有关建模隐含波动率和改进策略的知识。


只有更改是永久的


交易所永远不会停滞不前,KRX也不例外。 他们开始放弃X.25协议,转而使用以太网和TCP / IP。 该交易所计划使用TCP发送订单,使用UDP获取市场数据。 X.25 hack的交易性能开始下降。 我们的交易引擎和策略太胖了。 相对于最初的300微秒,我们的交易引擎的性能并没有太大改善,它已经膨胀了。 伙计们在某个时候重复了我长达72小时的黑客马拉松,并将引擎变成了更传统,更简单,更快速的引擎。 奇怪的是,由于我们追求战略和战术目标,我们现在不必担心这里或那里的一百微秒。 与其他服务器相比,由于网络适配器在混杂模式下工作,因此绕过了调制解调器和我们自己的HDLC解析器,因此实际上有一个负延迟。 在市场数据传给其他市场参与者之前,我们的订单仍然有效。


我们想尝试在X.25上预先发送命令,但是我们没有足够的人花几个月的时间进行编程,尤其是考虑到X.25的使用即将结束。 在该项目完成后的几个月内,所有X.25代码都将变得无用。 但是,这个想法必须经过检验,我和在Sangoma中编写大部分软件的人进行了交谈。 他是主要开发人员,主要工作是编写设备驱动程序。 也许他可以推荐某人? 他说,他将自己作为家中的附带项目来做。 由于这些驱动程序的代码与C中大量的goto transition语句非常混淆,因此出现了一些问题,但是即使这不是很好的样式,这些驱动程序也能稳定地工作。 该代码的有效期不应超过几个月,因此这似乎是可以接受的风险。 测试花费的时间比预期的要长一点,并且预发货有效,但是性能却很糟糕。 该代码非常令人讨厌,以至于“快速”路径的工作速度比常规路径慢。 但是,我们没有时间再次重写此想法的所有代码。


事实证明,对KRX的TCP支持的更改是X.25虚拟通道到TCP会话的简单映射。 您可以同时打开几个TCP会话(它们称为PID)以发送订单。 市场数据传输格式未进行任何移植就可以在UDP之上使用。 我不记得他们是在启动时还是稍后将加密添加到TCP版本中,但是现在发送命令时,应该使用ARIA密码对TCP标头之后的整个数据包进行加密,这是必需的。 ARIA是韩国的国家法规。 它与AES非常相似,但S-Box布局略有不同。 这是一个很好的密码。


我们看到,基于TCP的新体系结构将撼动市场,并可能破坏大型经纪人的大部分业务。 好的老式X.25速度很慢,但是通道的交替意味着您有许多并行的路径用于发送可以在彼此之间共享的订单。 在TCP的新世界中,会话数有限,只有两到四个,尽管看似存在许多PID,但所有客户端都必须依次通过这些连接发送订单。 序列化的结果是,客户端请求由代理排队。 现在不仅在交易所,而且每个经纪人内部都出现了竞争状况。 大型经纪人可能会失去其市场份额,因为现有的通讯线路只能支持有限数量的HFT客户。 此外,发送订单的速度增加了,市场数据包的大小也增加了,市场数据的接收率也没有按比例增长。 , - . , , .


, Koscom . 622 Mbps, , . – T1 E1. – -. T1, Cisco. T1 , , .


TCP KRX , . , Samsung Securities, , . - , . , . , , , ( .) . , , , , . – – . , .


promiscuous- , , . TCP/IP X.25 , , . . – KRX. , , - , . , , , , , . , . , .


FPGA


-. . , . – “ ” . UNSW NICTA. Linux, Itanium. - , , , . , – Sangoma, . FPGA- XILINX, Spartan 3. flash- FPGA , . , Sangoma promiscuous-. Sangoma . , Sangoma , . .


, FPGA . - FPGA Ethernet InfiniBand TopSpin. , FPGA- Celoxica 2004 , . HFT-, Celoxica UDP. , . Celoxica UDP Ethernet, . , . CTO -, , Celoxica , . Celoxica . VHDL, Handel-C , , , . - FPGA, , Impulse-C. , VHDL, .


SANGOMA . , , , , . , , . Telco, E1. , E1 . FPGA-, , , 622 /, Koscom.


, PCIe- . SFP- FPGA- XILINX . T1/E1, , . - , NetOptics . FPGA- FPGA-, . NetOptics . , , . , .


, . , , , . STS-3/STM-1 155 Mbps OC3 . , . ( .) , 64 /, , , . , “” KRX, FPGA- , .



KRX. TCP, , – . TCP- , . . -, , ? N heartbeat, PID . , . , IP-, Ethernet- .


– . . ID , . ( ), – , heartbeats-. , ARIA.


, 1Gbps FIX 4.2 ( BATS 10G), - , FPGA. 25 200 . Ethernet- , .


ARIA


, , C- 8- 32- . , . - , , , .


ARIA, . , SIMD-, . , .


, , TCP. , . , . Koscom “ , ”, , .


ARIA , .



. . Unix . , . , , . , .


, . . , . , " " - , . , , , , ? , , , . , , , . .


. TCP , , , ?
, , , . .


ARIA (CBC). , . , .


图片


, , ( .) , . , KRX . . Koscom, , , - , . , , . - ( ) - CBC XOR . , , . , .


, . TCP-, . 90 , , , . , , , (.. ) , . .



我们对该策略所做的最重大改进并不是来自这些低级技巧。 我们使用随机森林(RF)作为机器学习层来预测未来的理论价格。 最初,我将此任务委托给公司中的一位博士学位(我们有6位博士)。他似乎是一位数学天才,并使用某种单一的宇宙学模型获得了物理学博士学位,而且他还是我的好朋友,我聘用了几位多年前教他C ++。 随后,他在昆士兰大学讲授C ++。 我还聘用了他的一名研究生,他教过C ++(可笑的是该公司有几代人使用这种语言。)我委托他使用RF作为策略来开发机器学习层。 几个月后,他回来了,向我展示了他尝试过的所有东西,这些东西都没用,然后向我解释了为什么这根本不起作用以及为什么都浪费时间。


我已经在研究生院遇到过这种方法,所以我决定最好自己再做一遍。 我使用了OpenDT v5.2软件包,该软件包通过mini-ITX板上的MPI在我们的集群上工作。 如今,它已经发展到超过一千个核心,其主板从金属板上的刨花板面板和电源拧紧到机架的架子上,电源在顶部带有孔。 OpenDT在该群集上工作了两个星期,这帮助我制定了一个不错的解决方案。 我可以使用随机森林方法作者Leo Briman的原始代码重复该结果。 为了将其投入生产,我将自己的成就扔给了L.先生(那个每秒向交易所发送了1000笔订单的家伙,这几乎把我们杀死了)。 他是一个体面的程序员(尽管性格内向),两周内一切准备就绪。 我们看到利润立即增加了三分之一-这是一个好月份。


ML层的进一步改进和调整带来了可观的回报。 我们变得非常依赖它。 创建具有快速响应的随机森林是一项艰巨的工作,因为以随机顺序访问大量内存是低延迟的诅咒。 在以后的项目中,我做得更好。 大约一年后,很明显,如果我们关闭机器学习,我们将根本无法赚钱。 但是,我们从来没有真正探讨过这是否是由于我们的策略所致,还是仅仅因为一次短暂的延误就不足以赢得胜利的问题。 我怀疑第二。 我看到像Jump这样的智能播放器在韩国安装了数十台服务器,显然他们没有闲置使用它们。 空气中有足够量的ML。


思考ML的一种成熟方法是,它只是减少延迟的一种方法。 他通过不确定性交易为您赢得时间。 您反应较早,但是您可能会错。 但是,即使是最好的套利机器人也不一定能按其所有指令执行。 将ML视为在延迟和不确定性空间中获取附加参考点的一种方式更为正确。


金丝雀


我可能要提到的另一种技巧是众所周知的-金丝雀技术。 不久前,许多交易者批评芝商所,因为《华尔街日报》发表的一项研究表明,一些交易者在市场数据到来之前就收到了他们的订单,这将导致他们下达这些订单,而这种速度的提高给了他们优势。超过普通参与者。 这是一个错误的论点,因为两个这样的不同进程的速度永远不可能相同。 这更多是引入附加处理代码以便同时从市场数据的慢速通道和订单执行通知的快速通道接收信息的原因。


有一些情况不同的交易所。 纳斯达克是最早接收比定单通知更快的市场数据的交易所之一。 对于那些没想到这一点的年轻球员来说,这是一个陷阱。


在我对KRX进行的首次实验中,金丝雀在获取市场数据之前可以工作一秒钟。 让我提醒您,金丝雀是您之前在玻璃杯中放置的限位订单,而不是最佳位置。 因此,当市场突然跳升到新的价格水平时,金丝雀就会开始唱歌,让您比其他市场早一秒知道这种运动。 如果您不能以此赚钱,那么您的头骨必须充满石头而不是大脑。 好吧,我的头上发现了一些石头。


真奇怪 有时,这两个渠道之间的价格差异很大,您可以看到市场先升后降。 如果天真地在第一次上涨时就购买股票,那么当下跌时,市场可能会为您带来麻烦。 相反,您可以尝试提前确定这些事件的时间,以便可以在下方购买并立即出售您的合同。


太多的知识是一个有趣的问题。 我们已将此代码集成到我们的数据处理器中。 其中一位叫F.先生,像马里奥兄弟一样,将这一事件称为“明星力量”。


抖动与延迟


您可能还记得,三个交易所在KRX中的整合实际上并没有真正影响KOSPI的期货和期权,因为它们已经在首尔以KSE交易。 联合交易所KRX关闭了釜山的数据中心,所有人都搬到了首尔。 但是,政府没有实现其政治目标,釜山数据中心最终重新开放。


首尔的银行和经纪人在这些转账上花了很多钱。 有时,事实证明,釜山的两个数据中心之间没有对等关系,市场数据先到达首尔,然后再返回。 一团糟。 直到现在,2016年,KRX交易所才撤回,一切都集中在釜山。 在此之前,最好的解决方案是在首尔收集市场数据,并且向釜山发送订单既昂贵又效率低下。 所有HFT公司(像我们一样)都在考虑在首尔和釜山之间建立自己的线路的可能性,但是,Koscom禁止这样做,以免损失收入。 您只能从Koscom购买昂贵的线路,所有经纪人都可以这样做。 通常,您争取的通道延迟为2.9到3.1毫秒。 对于300公里的直电缆或400公里的高速公路,速度相当慢。 仅在最近几年中,出现了几个微波无线电链接。


同时,KRX数据中心已经从由HP / Compaq / Tandem设备支持的世界上最大的商业平台发展到由IBM PowerPC架构支持的AIX平台。 在此迁移之前,我们在发送指令的行上收到ping约11-12毫秒往返(RTT),抖动约为130毫秒。 移到釜山后,ping变为20毫秒以上,但抖动降至30毫秒。 尽管延迟平均增加了一倍,但减少抖动使我们的策略更加有效。


这类似于CME通过用基于FPGA的iLink设备替换其网关来减少抖动的情况。 随机性降低,速度变得更加重要。 与韩国的不同之处在于,KRX的延误实际上增加了,但是由于我们不在乎交易员,因此另一个问题的答案更为重要-我的努力值得吗? 新平台提高了我们在韩国的投资回报率。 同样,我预计由于交易所内部延迟的不断减少(不仅在CME,而且在世界各地的交易所),较小的抖动将继续将交易者划分为那些可以快速进行交易而不能进行快速交易的交易者。 即使不是很关键,延迟仍然很重要。


比赛项目


值得一提的是Getco来到韩国时发生了什么。 从实际意义上讲,我对此知之甚少。 我听到的第一件事是经纪人不断抱怨。 Getco管理着非常困难的交易,而且由于可以赚钱,因此它在韩国也很有效。 有传言称与经纪人本身达成了惊人的交易,以便他们可以增加市场份额。 也许这与加拿大与加拿大帝国商业银行的交易没有太大不同? 根据谣言,Getco随后以非常低的固定价格(可能仅为数千美元)收购了一家加拿大经纪人,以确保CIBC的市场份额。


我开始阅读有关Getco占领5%市场的报告。 有人告诉我,这个数字接近15%。 许多经纪人抱怨他们的客户没有得到足够的佣金。 当地社区对Getco的到来感到非常沮丧和沮丧。 但总的来说,我们并不感到不安。 我们是其他人所没有的非常多样化和交易的策略,因此很少有人能理解我们所发生的事情。 但是,这是一个教训-Getco通过交易更有效的策略来吸引新人。 许多人失去了收入并抱怨,新闻界掀起丑闻。 您开始阅读有关市场多么不公平的故事。 这不是-只是失败者尖叫的回声。 当交易员为市场效率低下及其技术有效性而苦苦挣扎时,您一次又一次在市场上听到这是一个可悲的故事。 市场正在改善,但抱怨越来越大。


我们所做的工作在韩国是可以接受的,在许多其他国家也可以接受。 但是,例如在Eurex中却不是。 规则因市场而异。 如果您是投资组合经理,现在您已经知道您不再想要玩此游戏。 这是一场激烈的竞争,像我这样的数百名精明的交易员一直在准备新的策略。 但是您不必在此领域中发挥作用。 像我这样的高频交易者专注于下一个波动。 这就是我们所关心的。 我们花费大量资源将HFT同事推向新的高度。 我不在乎您的投资组合alpha。 这超出了我的视野,超出了我的关注范围。


我白天输了很多钱,赢了很多钱。 我在2005年5月成立了HFT公司,在2011年1月离开了这里。根据我们的主要交易策略,这段时间我们只有八天的亏损。 在其中四个中,损失总计不到1000美元,在所有损失中都低于10000美元。 这不如著名的Virtu公司(根据他们的IPO文件,大约有1200天有1天),但我还是同意。 但是,请记住,在那些不能夸耀高财务业绩的交易中有很多交易。 我们只赚取点差的一小部分,通常在正常情况下为10%,在糟糕的日子为5%,在美好的日子为20%。 期权到期日有时给了我们50%的收益,因为许多交易员试图每月不进行此类周五交易。


大数定律允许HFT每天赚钱。 相同的定律表明,如果我们失去技术优势,我们将根本无法交易,或者每天都会亏损。 高频交易公司经常破产而退出。 这是一个艰难的行业,为了提高效率,不断钻研市场的基础设施和微观结构。 如果人们不了解,当像Getco这样的公司来到您的城市时,今天的公鸡会立即变成羽毛枕头,这将是一件不感恩的工作。 我敢肯定,Jump的到来也引起了几个多灰尘的枕头的出现。


韩国是一个有趣的地方,因为KRX交换基础设施仍然是一团糟。 还有许多想法可以在缓慢,笨拙且隐秘的基础结构中实施。 高频交易者喜欢混乱,因为他们可以深入研究并为自己找到好处。 这并不是那么困难,您只需要更多地关注最小的细节,因为任何复杂性都由简单的事物组成。 奇怪的是,HFTshniki讨厌交换主机托管和低延迟,因为在这里很难找到优势。 HFTshniki还喜欢很少有人知道的网站...没有人想要被伏击。


投资组合经理


不用担心下一个刻度线。 鼓励竞争,公平和廉价的市场结构,如ETF。 然后,您可以站起来观看这些HFT公司互相残杀,争取最低价差。 尽管他们有动机,这也使他们能够为您提供流动资金。 最后,只有在高价买入和低价卖出(即缩小实际价差)的情况下才能竞争下一个价位。 这不是在HFT中轻松赚钱的秘诀。


HFT担心投资组合经理-他们拥有一个大型信息俱乐部,该俱乐部会杀死HFT。 大订单使价格上涨,这使做市商无法获得价差。 资产经理甚至不同。 即使市场进一步不利于您并且帐户出现亏损,每次执行订单都是理想的交易,而损失只是您的模型中始终存在的一项支出。 在HFT中,执行是风险,缩水是灾难,而损失只是耸耸肩。


投资组合经理应使用算法和市场效率的魔法来提高其订单执行的质量。 您不想一次雇用二十个人只是为了在下一个滴答声中竞争队列中的职位? 您应该更害怕机器学习的量子基础,这些基础会稳定地自动执行您的alpha。 担心失望的HFT交易者决定改变其模式并进行长期投资以直接与您竞争。 我看到两者都已经发生了。


很少有经纪人提供竞争性的解决方案,但基本上一切似乎都有些陈旧。 大型团队的大型投资组合经理可以通过部署自己的算法和DMA平台来获得额外的利润,从而使他们的交易者可以更积极,更频繁地进行交易,就像挣扎的HFT盯着他们的时间范围一样。 但是要当心-这是一个湿滑的斜坡...




它以前以化名Thomas Anderson出版。 本文不包括原始草案中的性,毒品或摇滚乐,因为这不会为交易故事增加任何内容。 也许这将有助于证明我决定放弃我喜欢的工作的理由。 无论如何,最好不要说所有这些,即使失去一些个人态度。

Source: https://habr.com/ru/post/zh-CN414037/


All Articles