求教API高频手机量化交易软件平台交易系统有啥好处呢?

本篇文章从高频交易的原理出发,带大家认识高频交易系统是怎么构建的。原文链接:组装一个入门级高频交易系统我们从高频交易背后的原理讲起。高频交易能在这个市场行得通,有一个前提假设:市场总存在无效的时候。每一个市场参与者都盯着行情变化,总有一部分人能发现价格无效的时刻并参与利用,在高频交易领域,速度就是生命线,你出手越晚,在价格被纠正之前,捕捉到这种交易机会的概率越低。时间级别越小,市场无效的可预测性越大,但是竞争也更激烈。有效的市场:无效的市场:注意两幅图的横坐标,下面这幅图的时间间隔是1分钟,在1分钟的时间周期里我们观察到,价格之间出现了缺口,高频交易的单子就是从这些缺口中获利。来看一个更形象具体的例子。一个机构客户想买入1000股通用公司的股票,当前GE的股价是10.5美金,客户要求买入的成本价不能高于11美金。客户把单子切成了10份,每份100股,同时设定了一个程序,当价格高于11美金时就不再买入。HFT(高频系统)就像一群秃鹫一样在市场蹲着,当100股的买单进来时,秃鹫们会意识到有人正在大量买入股票。然后HFT就要开始行动了,他们先甩几个单子来试水:先在市场上挂13美金,100股的限价单,没反应;又挂12美金,100股的限价单,还是没反应......直到挂上11美金,100股的限价单,这时候HFT触碰到了机构客户的上限价格,于是系统启动,大量买入GE股票然后以11美金的价格脱手给客户。此外,还有一种HFT的利器——快速下单(flash order)。一个订单先到达交易所,交易所接到订单号,可以先发给交易所的会员,如果单子成交不了再发到市场上。这些交易所的会员利用时间差,先买入,再卖给市场其他投资者,低买高卖,赚取了中间价。高频交易非常非常适合crypto市场。原因有二,一是高频交易着为市场带来了流动性,所以brokers经纪商会给他们返佣,甚至直接支付一定的费用;二是个人交易者能直接拿到crypto的实时市场数据。为什么原始的市场实时数据如此重要呢?用一句大家熟知的机器学习谚语来回答就是:Garbage in, garbage out垃圾进,垃圾出。进来的是垃圾,出去的也一定是垃圾。总览高频交易系统构建HFT系统的一大原则是:必须对错误有很大的容忍度(容错率高)。在实盘交易时,会发生各种各样始料未及的错误,比如分布式拒绝服务攻击(Distributed Denial-of-service,DDoS)干扰经纪商执行正常交易。还有就是高频交易必须高频率的获取实时数据,如果哪个链接崩了,整个系统就GG了。怎么提高HFT系统的容错率呢?我(本文作者)采用了微型服务架构(micro service architecture),它的好处是一旦哪个服务节点崩了,调度器就会马上重启。高频交易架构的简化图:高频交易架构的简化图组建介绍:①Database(数据库)高密度的时间序列数据库,每天要处理成千上万的数据。②scrapper(传输器,可以把它理解成爬虫,通过API把数据扒下来然后传给数据库)把新获得的数据流传输到数据库。③Quantitative Model(量化模型)当出现交易机会时发出信号,把信号传递给订单执行器。④order executer(订单执行器)收到量化模型发出的信号,然后下单。有时候市场流动性不够好,或者单子要几个滑点才能成交,但是HFT系统又需要严格执行限价单,这就需要等待,或者在挂单上做调整。⑤Quantitative Analysis(量化分析模块)这是一模块是对数据进行量化分析。你可以在此分析HFT系统的限制条件,比如说在哪些时候单子没法成交。举个栗子,在高波动的市场行情下,你的单子很可能不能成交,这个时候Quantitative Analysis就会记录这种状况,这样在下一次市场高波动的时候,系统就不会下单了。我为什么要用这样一套微观服务架构呢?因为经纪商(broker)有时候会短路,scrapper爬虫拿不到实时行情数据。比如说在市场行情波动特别大时,有一些经纪商就会被DDoS攻击,单子就无法成交。更具体的HFT架构解释:我推荐用Docker来搭建HFT系统,Docker是一个很nice的管理工具,通过docker我们能更方便地部署像Kubernetes这样的集群。HFT的详细架构设计图:1、scrapperscrapper通过REST API scrapper service获取数据,上图可见REST API scrapper service下面有好多个REST service,分别被标注为REST service 1、REST service 2、REST service 3、REST service 4,这里缓存了最近的市场交易记录,报价和订单薄。有这么多个service的原因是当连接阻塞时(这种情况经常发生),有多个service能最大程度上保证获取数据的获取。比如有时候其中一个连接崩了,你还有其他不同ip地址的连接,这就保证了实时数据获取的稳定性。scrapper接收到REST API上的交易信息后,就会把这些信息传递到数据库里,scrapper能在多个REST API的service之间切换,如果检测到哪个service出现了错误,就会立刻重新启动它。2、Order Execution Service(订单执行服务)收到量化模型发出的信号,执行下单程序。3、Quantitative Algorithm Service模型对数据处理,然后发信号。4、Development and Research Tools也就是上面所说的Quantitative Analysis量化分析工具,对高频交易的一些限制条件进行分析(比如什么市场状况下,订单不能成交?)在HFT系统中,为什么要把REST API抓取服务和scrapper传输器分开?主要是为了提高速度,增强系统的稳定性。当你要开平仓时,你肯定不想一直访问数据库,而是直接查询REST API,将信息存储在RAM上(降低硬盘开销),能够实现更高的存储效率。如果由于某种原因REST API服务失败,你可以重新启动,不丢失任何数据,又有足够的时间安全重启系统。欢迎关注我的公众号,带你玩赚量化呀:跟puppy玩量化}
“高频交易”是一个挺差劲的名字。按照字面意思,任何能够以较高频率进行交易的系统都可以叫“高频交易系统”。比如说你用VBA写个小程序,连上券商给你的接口,也完全可以按毫秒级进行交易,你也可以说自己开发了一个“高频交易系统”。不过,按照现在市面上的主流认知,我想大多数人概念里的高频交易系统是这样的:交易指令完全由电脑发送,对市场数据的响应延时在微秒级(VBA退散)。系统由专用的软硬件组成,研发时需要大量计算机专家级的工作(散户随便编个小程序退散)。系统的硬件需要放在离交易所主机很近的位置上,所谓 co-location。并且得到专门的准入许可证,交易指令直接发送至交易所(而不是通过券商中转)。符合这三点的,就可以叫做高频交易系统。有人说你这三条没有一条在说频率,只能叫低延迟系统不叫高频交易。的确,我再一次深切赞同“高频交易”是一个很差劲的名字。但现在市面上的主流媒体,包括大部分新闻和畅销书在谈到这个话题时,说的就是这种系统,所以我在这里就不纠结字面意思了。如果对我上面给出的描述仍有疑问,那么事实上还有一个非常官方的定义,来自美国证券交易委员会(SEC)。SEC 也很难给出明确的定义,最终的描述是基于5个特性:使用超高速的复杂计算机系统下单使用 co-location 和直连交易所的数据通道平均每次持仓时间极短大量发送和取消委托订单收盘时基本保持平仓(不持仓过夜)见:http://www.sec.gov/rules/concept/2010/34-61358.pdf相比起这种形象:更真实的一面的其实是这样的:除此之外,存在很多妖魔化高频交易的言论,比如:超强的盈利能力,仿佛高频交易的机器就跟印钞机似的。纯粹靠交易赚钱,有着神秘的数学模型和尖端科技,精准的预测市场走势,带着无可比拟的优势在市场上呼风唤雨。利用速度优势割其他机构类交易者的肉,大家认为这是作弊。回想一下,有没有人对你高谈阔论高频交易提到这里任何一点?你听完以后有何感想,好生羡慕,心潮澎湃,还是满腔愤恨上天不公?别着急,继续往下看,相信你看完这个回答以后,能够建立起一个正确的概念,下次遇到这种人,直接请他闭嘴。特别是那些对高频交易有兴趣,还没入门的朋友,希望你们有一个正确的认识。否则,当你历尽千辛万苦,怀着满腔热情加入一家HFT,以为从此以后你的工作就是对海量数据做高深莫测的数学模型,架起机器冲进市场草割那些无知的低频交易者,白花花的银(da)子(tui)像雪片一样冲进你的口袋,你很可能要失望。摒除这些错误的观念,这个行业的真正的精髓才能向你展开:偏执的科技至上理念,极其复杂的技术难题,疯狂追求机器极致的性能,以及,高强度的同业竞争。这才是我认为本行业最吸引人的特点,它本身就足够让人着迷了。至于赚钱,建议你把它当作承担压力,努力工作之后的回报,而不是被葵花宝典砸到无意间学得惊世神功,从此纵横股市点石成金,这种神话至少在这个行业是不存在的。下面来说一说这几条有什么问题。高频交易的盈利能力很高吗?传说是这样的:但现实很残酷。和任何其他行业一样,赚大钱的的确有,赔钱的也大把存在。我想这个行业特别吸引眼球的原因主要是因为它融合了金融和计算机这两个热门词汇,而且确实是一个高科技行业(相信没几个行业会关心光速在不同介质中的区别),很容易给外人一种神秘感。但如果只盯着金字塔顶端的几家公司而下结论,就好像看了乔丹集锦以后就认为所有打篮球的人都能扣篮一样,是不现实的。特别需要说明的是,因为高频交易系统对低延迟的敏感性,研发时需要投入大量的人力物力,要高薪聘专业的计算机专家,花钱买昂贵的硬件,租用专门的微波通信线路。但这一切也不能保证你得到一个预想中的“低延迟”系统。整个系统的设计和开发是一个非常复杂的工程。而且交易系统对于准确性和稳定性要求极高,不够精密的话上线后会出现各种问题,根本无法使用。如此大规模的投入,很多时候换来的是一个残次品系统。非常非常多的公司因为搞不定技术问题而赔钱关门。这里有一个深远的问题是,高频交易是一个金融和计算机结合的产业,但同时精通这两者的人才是非常稀少的。金融人士主导的项目会缺乏对技术的判断能力,IT人士主导又会对需求把握不清。在对性能不敏感的行业这可能不是太大问题,可以按照传统的甲方乙方方式解决,有问题慢慢扯皮。但在这个高竞争行业,没有太多时间可以用来浪费在扯皮上。投产的系统可能慢上几微秒就是废物,而那时往往会发现基本的设计就有问题,根本无力回天。这种超高难度的研发压力,其实才是高回报的来源。高频交易的策略?有两种策略,做市(market making)和套利(arbitrage),从性价比来说,做市是更好的选择。做市是指,在市场上充当流动性提供者,通俗的说就是有任何人想买一个东西(比如股票,期货等),你要保证能卖给他,有任何人想卖一个东西,你要保证从他那买。保证的意思就是如果市场上没有别人出头,做市商就必须出来。隐含的意思就是,做市商是所有人的对手盘。在过去,做市商可能是这样的:也可能是这样的:而在高频交易时代,他们变成了这样:这里需要仔细想一下,一般情况下,如果你想买一支股票,往往是因为你看好它会升值,而你的对手盘跟你交易,是因为他认为会贬值,你们有一个价值判断上的分歧。那么做市商为什么能豪气干云的出头做所有人的对手盘,是因为他喜欢跟别人唱反调吗?当然不是。做市商的策略本质上,是认为市场价格在短期内具有波动性,涨上去的价格会落下来,反之亦然。所以他可以选择承担一定的风险,暂时从你手里把东西买过来,过一段时间价格变得有利时再卖掉。注意这里的风险是真实存在的,没有什么保证价格一定会向着做市商有利的方向变化。时间跨度越大,这种风险也越大。做市商承担了这种风险,并且买过来的东西需要持有一定时间作为库存,来赚取因为波动性而产生的一点点价差(通常是一分两分)。也有更稳妥一些的做法,是通过其他高相关性的产品做对冲,比如买进一只股票的同时卖出它的期货,这个模型更复杂一些,对算法和性能的要求也更高。这种生意的本质决定了必须要能大量买卖,才能积少成多形成效益。有风险就意味着有可能赔钱。所以这就产生了两种不同的做市商。第一种是胆大的土豪,说老子有钱,买人,买设备,全都上最好的,我不信赚不到钱。这种人我们叫它noncontractual market maker,他来做市全凭自己兴趣。第二种是胆小的,觉得自己没把握一直赚钱,他可能就不敢做了。这时有一个人就不高兴了,他的名字叫交易所。交易所的存在,就是提供交易平台,然后通过对每笔交易收手续费来赚钱。如果没有人交易,显然他赚不到钱。为什么没人交易呢?因为有需求的人可能找不到对手盘,大家对价格的趋势判断是一致的,都在观望。这个情况对交易所很不利,所以他希望引入做市商。做市商一来,就能把门面撑起来(对,在中国,我们有时管这叫托。不同的是做市商的确承担了风险也参与了真金白银的交易,给交易者们营造了一个更友好的交易环境,所以是受到大家认可的)。大家一看场子里有很多人在交易,就愿意也掺一脚了。交易的人多了,交易所就很开心。所以他会付钱给做市商,可能还减免手续费什么的给点小福利。这样一来,这种做市商即使生意做的不好赔点钱,算上交易所的报酬,还是能盈利。这样的人,我们叫做contractual market maker,就是说他会和交易所签订一个合同,承诺提供多少流动性,交易所也相应的给一些报酬和福利。注意这种业务里做市商不是很需要预测市场走势的能力,只要能做到不赔钱就可以赚进交易所的酬劳。这个时候关键点来了,就是如何做到不赔钱?一个是按照上面说过的,做好对冲,另一个就是发现形势不利的时候要能及时撤单,这个是最考验低延迟的地方,速度慢就会发生来不及撤单而遭受损失的情况。所以,根据做市这种行为的特点,和市场上的需求,决定了HFT是最适合做这件事的。这也是为什么我们经常说HFT给市场提供流动性。套利是指,找到两种强相关性的证券。一个极端的例子是,ETF和组成ETF的那些股票。如果你知道ETF的计算方式,就可以用同样的方式通过那些股票的价格来计算一个ETF的期望价格。有的时候,因为种种原因,你发现这个价格和你在市场上看到的ETF价格不一样,你就知道显然是市场发生了一些混乱,早晚这个价格会变回来。这时你就可以买入(卖出)ETF,卖出(买入)那些股票,坐等价格回归,可以稳赚不赔。这个策略听起来很美,实际上竞争非常激烈。因为任何人都可以做这件事,参与的人多了,市场就会少犯错误,同时每个人的利润空间也变小了。当你的套利收入不足以支撑HFT的研发维护成本的时候,离关门也就不远了。所以总结起来,做市是比较主流的HFT业务。而正是因为做市商这种和所有人做对收盘的业务模式,使得大部分交易都是通过做市商的参与来完成的,也就不难理解为什么70%的交易都是由HFT(做市商)来完成的了。高频交易是通过作弊抢其他人的钱吗?首先以上两种业务可以很清楚的看出,没有任何作弊空间。简单的说,HFT的竞争对手一定是另一个HFT。那么HFT有那么多速度优势,跟交易所搅基(co-location),系统延迟搞到微秒级,他一定比其他人更先看到市场数据,为什么不能利用这个作弊?难道不能这样吗?回答这个问题,一定要明确的是:所有交易都是在交易所内部完成的。没有人能在别人的交易指令传入交易所之前就探测到(你说网络抓包?好吧你赢了,祝你好运。)。从理论上就根本没有任何作弊的可能(别拿交易所当傻瓜)。HFT的速度优势是指,当交易所完成一笔交易,在通知所有交易者的时候,HFT因为在通信线路的上游,所以会比别人先看到这条交易确认信息。这个时候他可能会根据自己对这条信息的理解以及业务需求,增加或者撤掉自己的一些单子,但这些都是完全正常的交易操作,不存在任何恶意,并且由于这条信息是发送给所有人的,任何人都会对此做出解读和反应,但只有那些在同一个时间粒度上工作的交易者之间才可能存在竞争,下面再解释这个问题。而对于最初这条交易的发起者来说,因为交易已经完成,所以不存在任何被攻击的可能。上面说到,HFT的优势,在于他可以第一时间对交易所放出的交易确认信息做出反应。但是这个信息如果没有对手盘就毫无价值。而一个接受信息慢,且反应时间在毫秒级以上的机构用户,怎么可能参与进来做HFT的对手盘呢?这句话可能还是不太容易理解,我举一个夸张的例子:如果你的操作频率以十年为最小单位,买进一支股票以后十年不做任何操作,很显然没有任何人在这10年内可以找你做对手盘,这种情况下所有其他交易者对你来说都是HFT,你却不会担心他们对你有什么影响。例子虽然夸张,但HFT和机构用户之间的差距其实就是这么大,他们生活在不同的世界里。他们的业务本来就不冲突,且根本就不是一个层面上的东西。比较HFT和机构用户,就好像比较百米速跑和马拉松运动员的速度一样,毫无意义。对于机构用户来说,需要理解电子交易市场的规则。有人用那种,看到屏幕上有一个价格,点了鼠标,结果发现成交价不一样,来说明是背后有人捣鬼,这属于脑袋进水的逻辑。特别需要注意的是市价单(market order)本来就是不保证成交价的,指令发给交易所,交易所根据当时的情况,算出是什么价就给你什么价,这没什么好委屈的。如果想要确保价格,请使用限价单(limit order),保证成交价格,但是不保证时间。这两种单是所有人都可以使用的,没有任何不公平可言。人类,应该做电脑的主人,而不要这样:最后说说HFT可能存在的问题。Flash crash是真实发生过的,也是最大的隐患。当一个市场上70%的交易都是HFT完成的时候,我们必须要能对HFT的系统有信心。这就需要HFT的开发流程标准化,接受开发过程的评审,有严格的测试体系。几个技术宅关在小黑屋里鼓捣出来的东西没人敢拍胸脯保证不会死机。而这一点目前看的确是比较差的,需要尽快规范起来。这才是公众需要关注的重点。==========参考:美国证券交易委员会(SEC)的报告 Concept Release on Equity Market Structure:http://www.sec.gov/rules/concept/2010/34-61358.pdf}

我要回帖

更多关于 手机量化交易软件 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信