高频交易 1~2 毫秒速度的差别会对收益有多大影响?

论坛 期权论坛 期权     
期权匿名问答   2021-9-14 11:21   15430   20
相同的高频交易系统,分别在相差 1~2 毫秒的网络、硬件环境下,收益会有多大差别?关注者
766

被浏览
110,836





关注问题写回答
邀请回答好问题 2
2 条评论
分享









<div class="Question-main"><div class="Question-mainColumn"><div id="QuestionAnswers-answers" class="QuestionAnswers-answers" data-zop-feedlistmap="0,0,1,0"><div class="Card AnswersNavWrapper"><div class="ListShortcut"><div class="List">33 个回答

默认排序


<div class="" role="list"><div class="List-item" tabindex="0"><div class="ContentItem AnswerItem" data-za-index="0" data-zop="{"authorName":"何波","itemId":507297832,"title":"高频交易 1~2 毫秒速度的差别会对收益有多大影响?","type":"answer"}" name="507297832" itemProp="acceptedAnswer" itemType="http://schema.org/Answer" itemscope="">何波
量化交易话题下的优秀答主





70 人赞同了该回答

<div class="RichContent RichContent--unescapable"><div class="RichContent-inner"><span class="RichText ztext CopyrightRichText-richText css-hnrfcf" options="[object Object]" itemProp="text">首先我们要有个量化的指标来衡量延迟对交易的影响,我们一般用主动成交率这个指标,就是你用对方最优价下单能成交的概率,这个直接影响了策略的收益,至于对策略的收益影响有多大,不同的策略可以根据这个指标来评估。
那么1-2毫秒对主动成交率有多大影响呢?这其实和交易所有关系也和你衡量的基线有关系,比如上交所的成交回报>70毫秒,那1-2毫秒影响就不大,深交所成交回报大约4毫秒,那1-2毫秒影响就很大了,就需要考虑亚毫秒的影响。具体的数值上的估计,以我们xtp为例,一个客户从level1切换到我们的level2行情,大约提高了十多毫秒,成交率从不足90%提升到99%。
分享到 :
0 人收藏

20 个回复

倒序浏览
首先我们要有个量化的指标来衡量延迟对交易的影响,我们一般用主动成交率这个指标,就是你用对方最优价下单能成交的概率,这个直接影响了策略的收益,至于对策略的收益影响有多大,不同的策略可以根据这个指标来评估。
那么1-2毫秒对主动成交率有多大影响呢?这其实和交易所有关系也和你衡量的基线有关系,比如上交所的成交回报>70毫秒,那1-2毫秒影响就不大,深交所成交回报大约4毫秒,那1-2毫秒影响就很大了,就需要考虑亚毫秒的影响。具体的数值上的估计,以我们xtp为例,一个客户从level1切换到我们的level2行情,大约提高了十多毫秒,成交率从不足90%提升到99%。
老问题已经有很多不错的回答了。差1~2ms有可能对收益完全没影响,也有可能从让本来高收益的策略彻底失效,极端一些的10个微秒能让收益降50%以上。具体的影响取决于策略的性质,对手的情况,以及现有的交易所基础设施。
追求速度这个东西即使在专业人士那里都很容易限入误区非从业者就更难弄明白了。
大的误区有两点。
一是在追求速度的时候抓不住重点。比如在没有一个完善的测量系统不知道瓶颈在哪就开始优化,花了一个多月软件提高了半个毫秒结果发现别人一个网络改动一下省10毫秒。小公司在进行大优化之前不估算投入产出比,耗费大量软硬件开发资源做对策略影响不大的改进。比如没弄清楚情况自己策略情况就强行上FPGA团队的。
二是误认为速度就是硬件和软件。实际上有相当大一部分从结果上看来是速度优化的事是在对交易规则的理解以及对交易所软硬件架构的理解上进行的,有可能一点小的配置或者代码上的改动能使得hit rate从30%提升到90%。当然这类类型的优化需要通才式的有经验的人来做,光是计算机知识往往不够。
这个时延包含了网络时延和交易所的撮合耗时,还是单纯的tick to order呢?如果是后者,那可能是很致命的。
虽然目前暂时没机会再去实际做超低时延的交易系统了,我还是尝试写写我的理解,就当是抛砖引玉吧,希望有大佬指点下。这两年都是自己在独自研究,感觉进展不大。
一般的做法:
不考虑策略开销,不考虑策略全跑在FPGA的情况,最好把tick to order压缩到5微秒以下。
1.交易的机器离行情源和撮合系统,物理距离越近越好,而国内没有微波和激光通信可用,所以涉及的网络拓扑越简单越好(这需要和broker的关系和资源)。另外,交易所的路由器,存在网络抖动,级别约5微秒的样子。
哦,还有,现在国内不可以直连交易所,所以得了解你的broker的柜台系统是不是足够快。
2.行情报文的网络协议处理,一定要绕开内核,也不要用CPU 去处理。用FPGA 做吧,处理时延为纳秒级。而处理完后,如果通过PCIE 总线写入内存,耗时约1微秒。至于能不能把在这里通过类似Intel ddio的技术把行情数据写入cache,待考。
3.显然,写行情的线程要和信号计算的线程分离,这就涉及线程或进程间通信的问题。
3.1请把这两个线程或进程绑在同一个CPU 的不同core上(NUMA架构)。这两个core需要从OS 里分离出去,还要修改内核,确保OS 不把任务和中断交给这两个core处理。一个core只做一件事。
3.2 接下来就是行情存储的数据结构问题,从cache hit rat角度出发,最好是线性连续的结构。我这里是从dpdk扒了一部分代码做了改写,做成一个更通用的lockfreeringbuffer。即可以用在共享内存上,也可用在自己改下的C++版disruptor上。
3.3 行情更新后的线程通信机制和开销问题,最蠢的办法是常规的互斥锁,次一级蠢的是用原子操作(缓存一致性协议有开销),稍微常规的做法是一写多读,读写线程之间通过volatile型数据通信,告知行情更新。实际上这要读写内存,非连续读写的话,耗时2微秒左右,但显然这不是最快的,最快的方法应该还是使用X86的指令集来实现特殊的自旋锁,让位于同一个CPU但core不同的线程通过共享的L3cache通信,这样通信开销可以压缩到纳秒级别,    可惜我现在只知道原理,还不会实现这样的锁,求大佬点拨。
4.下单,当然也要绕开内核。
5.显然,直接用ctp,飞创之类的API是达不到绕开内核的要求的,这里不展开说了
5.订单管理部分,使用定制的数据容器加快访问速度。
6.尽力避免cache  miss,线程间通信能在L3cache 完成最好,能不读内存就不读内存。
其他的优化要点,比cache  line对齐避免乒乓缓存之类的,太常规了,就不讲了。
影响太大了。别说毫秒,100微秒都能让很多策略失效。
我们把快的系统叫做A,慢的叫做B。
先对这个问题做两个假设。1) 这两套系统都是有完善交易策略的系统,并且策略一模一样, 2)系统A的延迟性每次比系统B低。
高频交易最常见的两个策略是套利和做市,而延迟性分为internal latency和network latency。对于套利我们在乎的internal latency是tick-to-order这个时间,也就是从你拿到包到发出订单包的这个时间。这个时间在美国通常用arista来测量,精确到纳秒,目前基于软件的交易系统优秀的可以做到2微秒,基于FPGA的可以做到300ns,所以在这个语境谈论1~2毫秒的差别那就是毫无竞争力的,如果只有这两套系统的话B只能吃A的剩饭。同样的,期权里边的做市场我们看中的internal latency是tick-to-cancel这个时间,就是能多快的把quote给取消。这个时间也是纳秒或者微秒衡量的,B系统1-2毫秒的差距这时候不只是拿不到利润,更是会因为取消订单慢而在市场变动的时候被对手当做套利机会而吃掉。
至于network latency的影响也是一样的,假设系统A每次逗比系统B先看到feed,那么同样的系统A每次都会拿到系统B拿不到的利润。
那在实际情况下慢的系统是不是就完全赚不到钱了呢?也不是的。假设市场上只有这两套系统,A系统不可能每次都把所有市场的单扫完,这个时候系统B就能扫系统A没扫到的剩下的单了。再者如果抛去开头的两个假设,那么系统B的机会就更多了。速度上吃亏的B可以在策略上取得优势,比如通过某种机器学习系统B在系统A 5毫秒前就预测到自己是否要下单了,这时候1-2毫秒的优势也就微不足道。此外,如果A延迟性的方差特别大,虽然平均快乐2毫秒,但是有50%的情况下比B还慢,那么这两者系统的收益也不好估计。当然这些都是只是对系统B乐观的估计,实际情况还是速度是王道。
要分 network time 和 processing time (tick-to-trade)。

network time,主要是不同交易所之间的消息传播时间。
得搞各种专用的线,等等。
不同城市之间都是以几十几百毫秒来算的。这些专用线已经很非常直了,接近光速。
实际上,很多团队都在用同一条线。所以只能靠硬件再争取几十个微秒的时间差距。

processing time,就是从收到消息后,多久才能算清楚,并且发出自己的命令(交易)给交易所。
一般公司也都得保证在1000微妙(一毫秒)以内。著名HFT公司,需要一百微妙以内。
最快的,听说有七微妙的样子。就是把一切算法都搞得特别精致有效。

各个公司已经很讲究,有专门负责这两个方面的团队。
有时候,你只要保证自己每次都比别人快一微妙,盈利会突然大很多。
突然比大家都快了,能够先抢到一切,利润可能是之前的好几倍。

博彩这方面我比较熟悉。这一领域科技落后一些,没有人挣微秒。毫秒还是有不少团队讲究的。
如果我们把程序processing time弄快了,省了一毫秒,大概也会翻倍利润。
有一次发现network time可以减少15毫秒,突然好了很多。
(然后我们今天发现交易所的bug漏洞,可再提高100毫秒,好激动)
这样做,看到别人发出的交易更快,发出自己的交易也更快。

但是tick-to-trade我们做得超烂,可能要十毫秒以上,因为没有这方面压力。
不过博彩的算法确实复杂了一点。各种赌注法(交易对象)之间还得不断地匹配在一起。

金融行业就是把这个思维再弄得更夸张一千倍,现在竞争到微秒这一阶段了。

不过很重要的一点就是:如果你的方法还没有别人发现,速度慢一点都没问题。
但是现在这种复杂的模型,什么方法都有了,也各种重叠。快一点和利润多一点直接成比例了。
看这个撮合系统里有多人少人在做啊,其实和时间没关系。和你在赛跑的是其他交易者,不是交易所。如果合约交易人数巨多,那么这1毫秒里成百上千的单子在你之前下到交易所。如果是很不活跃的合约,延时自然没有很大问题。
梳理下问题,思路会清晰很多。

题主的原问题:高频交易中,延迟绝对数值(如1-2ms)的差异,对于收益差异的影响会有多大?
将原问题分解为2个层次的问题:
    高频交易中,延迟的绝对数值(如1-2ms)的差异,对于抢到交易机会(交易信号)的差异影响有多大?高频交易中,抢到交易机会(交易信号)的差异对于收益差异的影响会有多大?

对于问题1,在没有明确界定讨论的是哪个市场或者哪些市场的情况下,是没有意义的,因为不同市场间的系统差异、交易者差异极大,而这种差异大多是数量级差异的。对于抢到交易机会(交易信号)的差异的影响,在于相对延迟,因此对问题1做如下修改:
问题1(修改后):
    高频交易中,延迟的相对位次(如A交易者排在B交易者之前)的差异,对于抢到交易机会(交易信号)的差异影响有多大?
答:简化一下,假设只有2个交易者A和B竞争这一个交易机会(对应题目中相同的高频交易系统),且双方的资金量都是足够的(足以独吞这个交易机会的对手盘报单),A的延迟比B低(A交易者排在B交易者之前),那么无论这个延迟差别是毫秒级还是微秒级甚至纳秒级,这个交易机会都会完完全全属于A,而B与之无缘。

对于问题2,讨论起来往往要复杂的多,假定这套高频交易系统的期望收益是正的且撤单面临的不确定性不予考虑(极度简化、实盘中不能这么玩),提供循序渐进的分析思路,不具体展开。
    对于某一个具体的交易机会(交易信号)来说,这个信号是盈利的,A比B快,那么A获得这个信号的全部收益,B没有收益。如果交易系统的信号是同分布的,从概率上讲,A比B快,那么A获得这个信号的更多正收益, B获得这个信号的更少正收益。如果交易系统的不同信号是不同分布的,情况进一步复杂化,A比B快虽然能抢到更多交易机会,但是如果抢到的交易机会期望收益不如B抢到的交易机会期望收益高,那么最后可能收益不如B。。。。。。

解释这么多,绝不是为了把你弄晕,总结两个结论:
    延迟的相对位次比延迟的绝对数值更重要。延迟(实盘交易)和高频策略信号预期收益的联合分布,最终决定实际交易收益差异。
毫秒,10年前的low latency 的交易竞争还是毫秒级别的,题主问微妙还差不多,而且要细分开来看的话,有些部分的竞争已进入纳秒级别。

首先你要了解从你收到交易所的报价到你发出order,到交易所成交中间有哪些因素会影响速度,然后再在这些因素当中发现哪些是决定性的。各交易所的软硬件条件不一样,决定你本身的速度是否是决定性的。比如韩国KRX, gateway 上有太多随机性,你本身的绝对速度并不是决定性的,也就是说你的order比别人早到交易所并不代表你会得到交易。像Eurex, 你先到Gateway的订单就一定是比之后到同一个gateway的订单有优先权,但Eurex有16个gateway,gateway的随机性导致不一定哪个gateway的订单会先到matching engine,所以大公司的做法就是在16个Gateway 同时发order。

扯远了,在纯速度的比拼中, winner takes all. 这也导致软硬件升级,网速升级像军备竞赛一样,被拉下的一方必定要被淘汰,顺便一提的是,在某些领域,微波已经不是最新的技术了。
等两秒钟我就可以去抄你的底
在中国金融期货交易所和上海期货交易所,大家一般不太谈论1-2毫秒,而在谈论1-2微秒的速度提升了。

现在这两个交易所比较主流的高频柜台,一般的全部穿透延时估计在6-10微秒之间,策略服务器的全部穿透时间一般5微秒以上(取决于不同团队)。也就是说,现阶段,在我认知到的比较合规的做法里面,如果能在收到行情之后,11微秒之内把委托单递交到交易所,算是很快的。打合规擦边球的做法可能能做到速度更高,但我等有身份证的是不敢干的。

在有些交易所,这几微秒的时间相对于其他因素的影响可以忽略不计。对于期货公司而言,如果其他因素没有搞好,优化这几微秒用途不大。
我坚信伟大的交易员绝对不会出自高频交易员,no soul
----------------
这篇两年前的东西怎么又被翻出来了?我记得当初的问题好像不是延迟对收益的影响(?)

虽然过了两年,但是我思考了一下,我还是坚持之前的看法,虽然没有回答现版本的问题、虽然我马上也要靠hft混饭吃。高频交易员肯定都是智商above average甚至更高,但是跟伟大没什么关系。什么?你超级聪明牛比的要命,那堕落成金融从业者就更加不应该了。

再过两年,等hft实际t经验有一些,再来看看我对市场交易的理解是否会有变化。如果有不同的理解,那么我会写在这里;如果没有更新,那么就代表我的理解没有暂时还没有变化。

有人回复说什么叫“伟大”,我思考了一下,在我的理解中伟大是这样定义的:后天习得的能力突破了禀赋给予的限制+大成就,而且不可复制。获得奥林匹克竞赛金牌的,拿普通大学生做衡量的标杆,那么只能说太不求上进。再比如,如果你的智商是200,那么你获得菲尔兹奖就是应该的,谈不上伟大;没得奖那么就是失败。单单有成就恐怕谈不上伟大。

一致性的意见某种程度对我是个好消息。所以回复“哈哈哈”的,我对你们的回复也是“哈哈哈”。如果高频交易员知乎里面都有这么多,而且假设你们都很成功,那么这个产业有点到头了的迹象呢。当然我希望事实证明我是错的。
高频交易市场错综复杂,行情瞬息万变,盈亏只在瞬息之间,时间比黄金更为宝贵。
在实盘交易中,高频交易团队正在纳秒尺度内争分夺秒,从策略机-机构交易平台-交易所前置机之间的光纤距离,到行情接收、解析和转发系统、策略执行系统、经纪商极速柜台系统等每一个环节的延时都希望缩短到极致。
而传统的软件计算已经不能满足高频交易对计算速度的极高要求,许多外资和国内领先的交易团队以及部分敏锐的经纪商已经开始寻求基于FPGA 硬件加速的解决方案。
Xele-Trade极速风控交易系统,是南京艾科朗克信息科技有限公司为了满足与解决客户开展程序化交易的需求,而量身打造基于FPGA硬件技术的高频交易平台。我们期货、期权、证券版交易柜台的穿透延迟为2.5微秒,标准差在500ns以内。在兼容客户已有交易系统的前提下,在微秒级内完成端到端的所有交易环节。保证用户能在最激烈的交易环境中,用最极致的交易速度批量下单及撤单。
以前做过期货程序化交易

随便编些初级交易策略程序,模拟回测都会不错吧~

但这些策略真敢跑?网不好,实盘很多单子都抢不到,血崩无疑。

其他地区不清楚,成都这边程序化交易主要还是中频,以减少盯盘工作量、克服人性、止损止盈为主…

貌似成都就华西证券有个华尔街回来的在主导高频,硬件软件升级得花几百万,赚没赚钱不知道,但交易量的确上来了段时间。

题主关心的高频交易,其实也是一个道理。网慢了单子还排队就很TM很尴尬啊…

但是又讲道理,身边很多哥们儿职业美股高频,那都是成都顶着延迟纯手工,清一色学霸兼电子竞技高手…要不是我不想熬夜…我也去了…

所以,实际操作可能影响也没那么大,毕竟国内市场还不够成熟,政策也随时变,股指手续费一提,大家都一脸懵逼,量化高频土壤还不够好。前两年资本市场全面深化改革引得一帮子华尔街海龟归乡潮,但是那边的经验拿回来就得真金白银做实验呢… 大部分机构都做不到这么极限。

最终结论,网速需求与交易频率成正比。
国内超高频的不多,所以大部分都没影响。

个人感觉,目前量化高频在国内还是属于初级阶段,大部分都是小打小闹的投机。真正大资金,自己都成主力了…操盘玩儿法也不一样了…
上海和深圳交易所交易机制有差别,导致上海和深圳延时差异比较大。通过我们的快速交易柜台测算,深圳可以稳定在2毫秒左右,上海要到100 多毫秒。为了追求1,2毫秒的差异,通常会在沪深交易所机房内托管机器,互联网肯定会慢很多了。。。有条件的可以两地托管就近交易,只想托管在一处的,通常会托管在深圳交易所机房里,然后拉专线,交易上海的。
高频交易一般0.几毫秒都会比较在意的。
毫秒没戏
如 @ChrisDiesel的回答。

按照题目设定,同一策略在同一市场不考虑轮询周期带来的问题的条件下,FrontRun1毫秒就是winner赚走100%的收益,loser什么都没有...

至于现实的情况,大家也都在追求收益最大这件事,做来做去发现还是回到了要frontrun其他交易者的路上...那么优化的方向自然就是要不策略比你好(你看两步我看三步这种),要不就是速度比你快喽。

所以我们天天做model同时研究别人的策略就是要琢磨怎么frontrun他们,但是所有人都smart enough然后就会慢慢的变成策略大家都差不多。尤其频率越高基本上策略都是比较相似的...所以这个时候还想frontrun就要开始折腾比你快...

所以要优化算法啊,专门找大大用更底层的代码重构我们的策略算法..(反正他们写的我经常已经看不懂了...)然后还有专门的网络工程师优化网络底层拓扑..反正就是争取在各种层面提升速度..自然比如在交易所旁边租个楼把服务器放过去啊或者当年有小哥搞了个很笔直的光纤连接交易所啥的都市传说也都有道理啦,反正能更快就好呗,各种奇技淫巧都是可以的呗...

最后其实还是个trade-off,因为硬件提升速度对应成本其实是挺高的,所以总的来说还是测算我们的策略能在多大概率上保证博弈优势,以及对应的收益期望是否合适作为最终的决策点吧...
Jump 在Cme到Island的线上发垃圾被禁了,就是为了延迟对手几个mic。为了几个mic铤而走险,你说值不值?
上金所中立仓抢单时间在零点几毫秒之内,抢到是年化百分之六的收益,胜者全得,抢不到就啥都没有
看策略与别人的相关度和盘口的厚度吧,如果策略与他人没有竞争没有区别,否则基本上没有下文。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:392657
帖子:78532
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP