Note

从量化的角度做外汇交易

· Views 2,345

 

导读:量化交易的概念在近两年越来越热,量化与外汇的结合也是最近外汇交易者和爱好者们探索的话题,汇眼有幸请到了知乎上的量化交易专家陈晓优老师为大家解惑如何用量化的方式做外汇交易。

确实在过去的十年中,外汇行业迎来了翻天覆地的发展,但是也注意到现在国内外汇的交易员还是主要在采用主观、手工的交易方式,或者相对比较简单的MT4上的EA交易,我今天首先给大家介绍在国际市场上比较主流的量化交易方法的分类。

从量化的角度做外汇交易

在这张PPT里面,我把外汇领域的策略大体分为三类,分别是量化宏观、CTA、高频交易三类,这也是是对策略的具体持仓周期的区分,量化宏观对应的是超长期或者长期、CTA对应的中期或者短期,高频交易对应的短期或者超短期。

第一种类型就是量化宏观,如果大家对对冲基金行业有所了解呢会知道基金业有一种大类的策略叫做全球宏观(Global Macro),这种策略主要是通过对全球经济宏观面的预测,从上至下的方式来筛选并进行外汇、期货、股票等标的的交易实现该策略的交易目标。

比较知名的全球宏观策略使用者就包括索罗斯、保罗杜伊琼斯,这两位就是主流的主观的全球宏观策略基金的领头人了。

全球宏观这种策略是对某一个国家或者某一个领域的未来一段时间的预测,除了人的主观判断之外,还可以用量化的模型把基本面的数据、价格面数据、历史数据、分析师预测加在一起来产生一种信号比较强的中长期的预测

在这一块的比较有代表性的公司的包括SLJ Macro Partners,在伦敦哈罗兹百货的对面,过去几年的表现非常好,已经成长成了全球范围上著名的以外汇为主要投资资产的一个量化宏观策略对冲基金。

除此以外还有一个更有名的,但是现在已经不行了的对冲基金——FX Concept,历史有30多年,当年跟桥水不分上下。但是因为2008年后全球央行因为次贷危机不断干预市场,量化宽松,导致他们原来的量化宏观策略不适应新的市场环境了,华尔街见闻曾经做过他们的专题报道,

大家有兴趣可以自己了解一下,这一类外汇量化宏观策略可以分为两类:一种叫做定向交易,简答而言就是做方向,比如我们认为美国经济会好,那么我们就买一些美元或者美元指数;另一种叫做相对价值交易策略,比如我们认为美元强、欧元弱,那么我们进行一些欧美货币对的配比,还有类似货币对原油、货币对黄金这样的一些价差对比。

量化宏观领域的模型更多是涉及经济与基本面的数据,当然也会结合市场的行情数据,全球市场上的价格本质上是基本面的经济数据驱动的,尽管会有一些情绪、资金流、技术面造成的市场噪音与波动,但是长期而言是向着基本面给出的方向去走的,所以量化宏观的策略给出的信号非常的强。

同时因为这些模型的信号周期比较长,预测一年内的信号都算短的,长达三四年的预测都是常见的。在这个策略的交易过程中,可能交易的重点都不在于信号本身了,而是在于基于信号方向建立交易持仓量的控制,市场交易中对于自己不利价格的风险控制,这个时候就要一些水平比较高的对冲策略与短线交易了,比如进行一些外汇期权交易、价差交易。

第二类策略就是外汇CTA策略,这一类的代表一家叫Winton,一家叫做Man AHL,这两家公司有很深的渊源,20年前Winton的创始人之前是Man AHL公司的CTA部门的负责人,20年之后这两家公司都已经成为了世界上顶尖的CTA类的基金。

CTA这个策略比较偏中期或者中短期,基于技术信号、市场特征进行一些中短期的投机。因为这个CTA策略是基于价格的,所以所有有价格的资产都是可以使用这个策略的,包括外汇期货、股指期货、股票等标的CTA基金都有可能去做,覆盖面比较广。

CTA的策略一般持仓周期比较短,有一些策略甚至是日内平仓的(Day Trade),对于交易的价差(Bid Ask)比较敏感,所以这两家CTA对冲基金都和最大的经纪商(Tier 1)或者银行进行交易,比如高盛、JP Morgan等等,几亿或者几十亿的交易规模可以拿到比较低的执行点差。

补充一个量化宏观策略的细节,量化宏观策略的信号强、频率低,一年内出现的交易机会是比较少的,所以宏观量化策略的交易者对于交易成本不是很敏感,电话交易下单比较常见,对于经纪商的价差不是很在意,更在意的交易的量(流动性能有多少);但是CTA对于执行时间与成本的要求就高了

 

最后一类就是国内传的神乎其神的高频量化交易了,国际上高频量化交易确实有一定的技术上的要求,但是原理上也没有那么复杂。最具有代表性的就是花旗银行、德意志银行的外汇量化部门了。

投行的代表有Morgan Stanly、高盛、BNP、法兴银行等等,自营交易商的代表是Citadel,KCG等等;Citadel城堡基金分成两个部门,一个是自营、做市部门Citadel Security,一个是资产管理部门 Citadel AssetManagement,这两个部门是完全不同的:外汇做市的部门是Citadel Security,Citadel Asset Management会采用一些宏观量化、CTA的策略来进行外汇交易。

高频交易这类的外汇交易策略主要是高频做市基于时间序列模型和市场微观结构的量化交易策略。其实就是基于时间序列模型和市场微观结构的历史数据进行统计,解析市场价格在未来数秒内的走势,加一个价差并且提供报价,赚取点差。

客户与高频做市商交易,做市商赚到点差,如果市场变动慢那么做市商的敞口风险也比较低;市场变动比较快的时候,高频做市商可能会选择在银行间市场把自己的敞口对冲出去,赚取银行间市场与下游市场之间点差的差值利润。

所以高频交易就要求低延时的交易系统,最少到微秒级甚至纳秒级的交易速度。所以大家平时听到有些高频交易公司跨州、跨洋拉光纤,甚至买军方退役的微波塔,一般都是用来进行外汇方面的高频交易的。

主要原因就是因为外汇领域的交易所(ECN)非常多,跨市场套利的机会很多,所以外汇高频交易就是要速度快。

还有高频交易这块做市商是报两个价格(Bid Ask),大家平时看到的欧美货币对的点差归根朔源就是来自于当时银行间某一个做市商的做市报价。

从量化的角度做外汇交易

讲完了策略,我们来将一些跟我们比较接近一些的量化交易平台的介绍。

国内对于这一块的接触不是很多,最常见的就是MT4\MT5,还有一些交易商提供一种新型的平台Ctrader/也叫作cAlgo,这家交易平台做的也很不错。

还有一个我稍后会介绍的Multi Charts,这是一个美国的老牌、有很多客户基础的量化交易软件,不仅仅适用于外汇,还能交易股票、期货、期权等等,有很多的机构用户与对冲基金在使用这个平台。

后面我还会介绍两个机构级别的平台,一个是Algo Trader,还有一个是我本人开发的VN.PY,门槛比较高,对于用户的编程能力与交易能力都有一定的要求,我们还是先从简单的平台开始介绍:

首先MT4/5是最常见的,国内做外汇的客户都见过这个平台,在一开始的时候外汇经纪商的平台都是自己研发的,后来的几年里俄罗斯的MT4/5击败了这些成为了行业的一种标准化的解决方案。

这个软件是免费的,在量化方面的开发环境是MQL4/MQL5分别是基于C语言与C++语言的,在这两个环境里开发量化策略只能实现基于Tick与Bar的驱动策略;Tick是指交易商的每一次报价,Bar是K线的运行。

但是无论是比如我挂了一个单,现在成交了;或者之前挂了一个委托,发了挂单撤销,撤销成功等这一类的信号,在MQL环境中都是没有办法监听的,只有在下一个Tick/Bar发来的时候去请求查询自己的委托、成交情况。

这就造成了MT4/5是不可能实现高级的交易策略的,无论是CTA策略还是高频策略都是无法实现的,这是架构上的问题。我对MT4/5的定位是对于入门、爱好者的适用软件。

第二个平台是CAlgo,这也是一个免费的平台,提供的编程环境是基于C Sharp(C#)的,这是微软开发的,在业内编程语言功能最强大的开发环境之一。

在架构上,CAlgo是允许Tick驱动、Bar驱动,除此之外还有成交驱动,比如你下了一个交易委托,委托的结果会马上被监测到,可以让你的策略被再次调用,所以CAlgo是可以用来实现一些低延时的CTA类的交易策略的。我对CAlgo的定位是一个常规的量化适用环境,可以实现业界一些比较常见的策略与交易。

第三个就是有十年历史的Multi Charts,前身是Trade Station的开发团队(将近30年历史),这一个老牌、经典的软件是1500美金的终生使用价格,但是每年会有更新,每次更新还有升级的费用。

Multi Charts的开发语言有两个,一个是Easy Language,一个是C#。C#在上文已经阐述过了,而Easy Language被誉为量化交易业内的奇迹,可以让开发者用近似于英语的语言来描述自己的交易逻辑。

所以这个语言是非常非常的容易,兼顾了扩展性与复杂应用可能性;同时支持Tick驱动,Bar驱动,支持上文提到的成交驱动,还多了一个委托状态变化的驱动,这就使得一些复杂架构的订单,比如FAK、FOK,还有一些特殊的算法订单,所以符合一些成熟的量化交易者去使用,而且因为语言非常友善,极易上手。

Multi Chats在全球范围内都有机构客户、基金公司客户在使用,整体而言这家软件公司的东西很好用,公司效益也很不错。

提到机构用户,我要提到之前在网上看到,一些外汇交易商推广的时候说自己的MT4很多对冲基金都在用、银行间都有使用,以我个人的认知而言这是很扯的,的确银行的外汇零售部门提供MT4给自己的客户使用,但是机构与银行的内部的自营部门(Prop Trading Department)是肯定不会用的,这个是产品架构造成的缺陷。

 

从量化的角度做外汇交易

说完了之前三个常规一点的平台,现在来介绍两个适合大型量化外汇机构使用的量化交易平台,一个是AlgoTrader,一个是我本人开发的vn.py。和之前三个平台不同的是,之前三个平台虽然能做,但是还是停留在支持基于价格变动、单交易品种的策略,不能支持复杂数据结构。对于大型量化交易机构,几个亿、几十个亿的策略产品需要不是仅仅简单基于价格的平台。

首先说AlgoTrader,是一个瑞士的公司开发的一套量化交易系统,曾经是一个开源项目,因为非常成功所以成立了一家公司提供量化对冲基金业界对于产品有高性能、高要求的客户。基础价格是2000美金一个月,而且根据需求提供不同的插件和模块(另外付费),全套产品要几万美金一个月的价格。

AlgoTrader的编程语言是Java,同时AlgoTrader内置了一个复杂事件处理引擎CEP,通过这个技术(开源的叫做Aspera),在商业化开发之后(商业收费版叫做Aspera Advanced)可以达到纳秒级内进行复杂事件的处理。

这一块平台更适合专业的交易机构交易员,可以实现复杂的量化交易策略,比如跨货币对期权的波动率交易策略,我们也成为离差交易(Dispersion Trading),这是一种可以支持大资金量去进行交易的一种策略。

第二个VN.PY是开源的,也是免费提供大家去使用的,源代码可以在GITHUB上下载和开发,这是一个基于近两年比较火热的Python语言的产品。VN.PY没有使用这些成熟的商业化事件处理引擎,我自己设计了一个轻量级的事件引擎。

同时VN.PY相比起AlgoTrader把所有的引擎包含在自己的框架里面不同的是,我们采用了模块化的设计,比如独立的风控引擎、CTA策略引擎、外汇交易引擎、期权交易引擎、套利引擎等等,把这些引擎以扩展模块的方式插入到主程序去使用,更适合一些定制化的策略,比如期权的做市,期权与货币对波动率相关的交易等等。

VP.PY也有比较高的入门门槛,首先需要熟悉Python语言的编程,也需要明确知道自己的交易系统具体是怎么实现的,所以现在VN.PY的用户都是资深量化交易用户,目前都是国内的私募、券商自营、海外的采用复杂策略的对冲基金在使用。

平台这块讲完了,但是只有平台没有经纪商还是没法做交易的,所以我们接下来讲一讲那些经纪商适合去做量化交易。

从量化的角度做外汇交易

摆在第一位的就是盈透证券(Interactive Brokers),支持美股、外汇、期权、期货、甚至一些OTC市场的债券都可以通过一个账户交易,他们的平台TWS是我见过的最强大的交易软件之一,比高盛、大摩提供的软件强大的多,虽然这些银行可以交易更多的品种,但是大多数是要通过电话交易的,但是盈透把这些交易都兼容在了自己的平台里面。

同时盈透的API接口(IB API)也是全球、业界用户最多的之一,外汇市场的部分,盈透建立了一个ECN平台,其实是采用了交易所的模式,是一种叫做MTF的模式,但是盈透因为没有交易所牌照只是叫自己ECN。

 

简单而言就是做市商在市场上进行了报价,如果有客户想要在你报出的价格成交,即使做市商的价格已经发生了变动,但是在这个市场上变动还没有发生,做市商是不能拒绝以原来的价格跟客户成交交易的。

但是对于很多的外汇市场ECN平台,比如FXALL、CurrenX都是做市商只在ECN平台上报出一个做市意向价格,成交请求递交给做市商后,做市商有权拒绝在该价格成交交易(Last Look机制),此时ECN平台只能把客户的单子再提交给第二好价格的做市商,这就可能导致客户的单子在市场之间游荡但是得不到执行。

最后的成交价格可能与你的下单价格偏离很远了(滑点),这是普通的纯ECN的平台的缺点,但是IB的IB PRO平台采用的MTF平台就能保证客户的下单价格的成交。在欧美很多体量小于一亿美金的基金都会选择与盈透进行交易,节约了自己开发清算系统的成本。当然体量大的基金公司还是会选择与大银行比如高盛、花旗去做交易的。

IB自身是没有提供量化交易平台的,TWS(Trade Work Station)本身很强大,IB API也是通过TWS实现的,但是并没有自动化量化交易策略的支持。很多公司开发了特别的接口去支持IB的API接口,比如上述提到的Algo Trader,VN.PY等等。

第二家比较合适的公司是Oanda,从加拿大起家的公司后面把总部搬到了美国,他们在业内很特别,其实是一家外汇服务商,业务分为三条线,第一个部分是现汇兑换(Deliverable FX )业务,一个比银行的成本低的兑汇业务;第二个部分是为跨国企业提供外汇对冲的咨询服务,提供定价策略等等;最后一个部分才是OANDA的外汇交易部分,就是外汇杠杆保证金交易业务。

Oanda也是一个业内技术革新比较积极的公司,他们提供了自己的Web Rest API,基于HTTP协议的,几乎所有的支持HTTP发起的编程语言都支持他们的API,但是性能上有所牺牲。

 

第二块,他们有自己性能比较好的JAVA接口,还有FIX接口,这是大型金融机构的解决方案。OANDA是纯做市商模式,也已自己是一个做市商公司为自豪,信誉也很好。

在国际上有很多跨国公司是使用Oanda的兑汇服务的,比如Airbnb,在Airbnb的不同国家的显示的房价外汇价格与换汇价格的服务提供方都是Oanda。

同样Oanda也没有提供任何的量化交易平台,提供API的服务。

从量化的角度做外汇交易

还有三家公司我们接着介绍,Dukascopy中文名叫杜高斯贝银行,LMAX交易所,以及本次活动的赞助商ICM CAPITAL,我们先介绍持有瑞士银行牌照的杜高斯贝。

Dukascopy提供了一个自己开发的量化交易平台叫做JForex,还有一个自主的外汇量化交易环境,提供量化策略历史回测等功能,还有一个比较鸡肋的可视化外汇策略编辑器。

听起来很神奇,但是我本人认为这更多是一个玩具,这种可视化策略开发的功能是一个期货领域的顶尖的公司TT/X_Trader的开发商(Trading Technologies)集合了几百个工程师花了几年的时间开发出来的,但是Dukascopy的产品就简单很多了。

我看过Dukascopy的FIX API文档,其FIX协议设计是远远超过FIX普通协议的,对于机构客户有很大的吸引力,他们也是ECN的平台,业界的声誉(欧美外汇交易圈子)也不错。

第四家外汇经纪商,更多的应该说他们类似外汇交易所的机构,也就是LMAX。他们拿的是英国正规的MTF牌照,类似于美国的Dark Pool暗池的场外交易所。他们跟IB的IB Pro一样用的是MTF模式,上文已经介绍过了,所以受到了很多对冲基金的青睐,同时他们下设了两个其他业务。

第一块是他们的MTF类交易所业务,也是管的最严的,第二块是他们的银行间接入服务,也是比较正规。LMAX第三块,也就是国内接触最多的,但是面对散户的LMAX Professional,这一块相对没有那么正规,跟其他普通外汇经纪商类似了,但是这不说他们其他两块LMAX Inter Bank与LMAX Prime不够好,后面两者在英国还是有很多大型金融机构使用的。

同时LMAX可以说是技术驱动上最强的公司之一,如果写过JAVA、关注前沿技术的朋友们应该听说过Lock-Free Queue(汇眼:快速无锁队列),LMAX发明了Java上的非常强大的功能,在GitHub上的得分非常高,高频交易机构的应用非常多;同时他们还发明了一个Distributor模型,这是一个把交易订单以路由的方式发送,实现一旦数据流出现问题,可以用固定算法把整个交易状态重现的一个非常好的核心交易系统,LMAX的把这两个组建都开源了。

然后LMAX Professional,也就是面对散户的业务的程序化借口也挺多的,有C#,JAVA和FIX,但是他们的门槛比较高,我当时想把VN.PY去接,但是门槛跟盈透差不多了。LMAX提供MT4与MC(上文提到的MultiCharts)。

最后需要强调一点,LMAX在国内有大量的代理商,而且在国内是很混乱的,代理商加点(加手续费)可能很多。我觉得你如果很懂的话可以直接联系LMAX,不要通过LMAX的国内代理商来做。

最后一个就是ICM CAPITAL,是一家FCA持牌的英国经纪商,他们量化方面提供一个叫做ICM DIRECT专业客户服务体系,包括FIX API借口,为专业机构提供服务,内容有托管,融资等方面的服务。

 

Disclaimer: The content above represents only the views of the author or guest. It does not represent any views or positions of FOLLOWME and does not mean that FOLLOWME agrees with its statement or description, nor does it constitute any investment advice. For all actions taken by visitors based on information provided by the FOLLOWME community, the community does not assume any form of liability unless otherwise expressly promised in writing.

FOLLOWME Trading Community Website: https://www.followme.com

If you like, reward to support.
avatar

Hot

No comment on record. Start new comment.