【干货精选】高频交易在怎么挣钱?by李奥

2016-10-11 14:08:24 森浦头条

文/李奥  首发于微信公众号交易门,经资管君授权转载。

 

2016年7月30日,交易门的主角,高频交易员李奥应香港受交通大学香港校友总会之邀,做了一场题为《量化金融与高频交易》的主题分享会。征得李奥同意,交易门独家首发这次分享会的内容。本讲稿经过李奥修订,森浦头条君分享给大家学习参考。

 

我讲的内容会偏IT一点,因为一直都是在做IT。因为我没有正规学过数学和统计,所以可能看起来不那么正规,有一些小道消息和自己做交易以后的经验。

我会讲四个类型的交易策略,再大概讲讲数学和IT方面的东西。

Quantitative Trading,顾名思义可以分为两个部分,一个是Quantitative,一个是Trading。

Quantitative跟传统的手工交易相比,很多东西通过模型去量化,而不是靠直觉。Trading就是跟风险控制紧密关联,不是手工交易,通过程序化来完成。

Quantitative Trading分很多类,讲一周一个月都可以。Fundamental部分有一些Long/ Short Equity,有一些 Alpha Strategy。还有一类Pricing Quant,比如做Option Pricing,怎样去定价。还有一个类型是纯的Market Data的Quant。也就是说他只看Price和Volume,在Price和Volume上面做的技术分析,纯的Market Data。

高频交易基本上就用纯的Market Data,因为它本身对数据要求高一点。Market Data是时刻在变的,但Fundamental啊,News啊,一般来说不会时时刻刻在变。

 

什么是高频交易?

首先是自动化。高频交易没有可能用手去做,不在一个时间的水平上,要有很多计算能力,需要强大的计算机,然后是大量的下单,不会像人手一样,可能每秒,每毫秒,都在交易。

当然这个单也包括很多撤单,大量的报撤单。有的策略撤单很多,可能报了100多万单,只成交一万多单。另外就是非常高的速度。还有定义说,需要复杂的算法——我打个问号,因为有的算法其实是比较简单的,并不复杂,可能就是小学数学的水准。

在继续谈论之前,我先介绍几个时间的概念。我们平时计时,小的单位可能都是以秒,甚至以分钟记。在秒之下,还有毫秒:千分之一秒。人眨一下眼睛大概就是300毫秒的样子。上海到深圳的数据传输,一个ping大概是30毫秒左右。再往下有微秒,千分之一毫秒,百万分之一秒。在高频交易里面,做一个交易决定大概是10-20微秒,当然可以通过一些硬件的方式做到2个微秒左右。微秒下面还有一个纳秒,千分之一微秒。这就太极速了。

比较下:

眨下眼睛,350毫秒;高频交易做1000个Trade Decision,只用15个毫秒。

我们常说眨眼之间,眨眼之间高频交易可以做超过一万次交易决定。所以高频交易的时间轴是不一样的,对高频交易来说,一秒钟已经太久

 

高频交易的几个主要策略类型

做市策略

做市商策略主要目的在市场上提供流动性,去Bid/Ask挂单,让Bid/Ask收窄,赚取中间的差价。听起来很简单,但是有很多模型啊,Risk Control啊,IT上面的军备竞赛啊。

就是说,这里面的几个大佬都做得比较好。

里面有很多东西可以谈,比如怎么去控制你的持仓,你的风险。还要做很多 Prediction。怎样去Ppredict Volatility和Price。这里面IT问题非常重要,因为竞争非常激烈。怎么提供更快的报价,怎样更快的撤单,都是非常重要的问题。

IT的成本很高,因为大家都在竞争,大家都想更快,从Co- Location,到FPGA,现在微波都上了。竞争很激烈。正是因为门槛很高,所以剩下的几家都做得不错。

对于普通投资者来说,做市的存在,让他买卖的差价更小,是有好处的。 

这是去年8月12日我的一个策略在上证50股指期货的表现。那天整个市场的交易量22.5万手,我的策略占到4.1%(9180手),P&L 也还行,Drawdown也比较小。Capital需求也很低,一整天只需要50万本金,赚了21万多,收益43.5%。

去年7月份,因为股灾,中金所开始在股指期货上对部分投资者进行限制。可以看到,7月份这几天Bid/Ask  Spread有拉大的迹象,到9月7日,中金所开始对投机户进行限制,持仓保证金提高至40%,平仓手续费提高至万分之二十三,单个品种单日开仓交易量不超过10手。市场的成交量降低到不足以前的1%。因为做市策略不好做了,10手做市策略根本没法玩儿,有的被关掉了。大家可以看到Bid/Ask Spread的陡然变化。

  

所以做市策略可以增加市场流动性,让Bid/Ask Spread收窄,买卖量大时不致于有很多滑点。

做市策略需要大概估计一下,什么是更加合理的价格。股指期货做市,有人会用一篮子股票去预测股指的合理价格。

 

统计套利

这里面每个都是很大的Topic。我只是大概讨论下。

统计套利涉及到概率、数据挖掘、建模,交易执行,怎样做Data Cleaning。

数据挖掘非常重要,这个处理不好有时候是非常头疼的事情。有一句很经典的话叫做:Garbage in,Garbage out。很多Quant很多时间都花在数据处理上。有时候会发现非常激动人心的结果,回头发现数据搞错了。

一个最简单的套利模型就是历史价格的波动率,在两边加上一些执行区间。比如奶粉,花100块钱从香港买,到内地120块钱卖掉。中间你花了10块钱路费,最后挣了10块钱。这就是你的套利空间。

又比如黄金,国内外市场都有标准合约,理论上价值是一样的,拿出来都是两块金条。但是价格会有波动,我们去算这个价差,如果发现它偏离历史统计区间,譬如Brexit的时候,会发现中国的黄金便宜了,美国的黄金贵了。那我们可以去买入价格偏低的,卖出价格偏高的进行套利。当然,实际操作中,会有流动性等因素造成的影响,这需要一些经验。

 

预测

通过过去的市场数据和当前市场环境的比较,预测未来的价格走势:Price=a+b+c。这个“未来”可以是下一秒,下一分钟,下一个交易日,下一周,下个月。如果你的模型预测很准的话那就超NB了,不管是下一秒、下一分钟还是下一周。只要你的模型很有效,就很NB。这不是一个很容易的工作,需要基础,经验。这个我也还在学习,没有太多经验。

这个基本的过程是先把数据搞好,再搞清楚,到底是哪些因素在影响市场。

你可以很快开始,拿个均线搞一下,可能很快出结果,但你模型的稳定性到底能稳定多久,这都需要去不停的Tuning,不停循环。你去Training、Evaluate这个Model,然后去Optimize你的Factor。

当然现在有很多Factor,有些人的做法就是,扔进去500个Factor。他的模型可以告诉他哪些Factor有用,哪些Factor没有用,也可以把很高Correlation的Factor自己去除掉。但这个东西,我还在学,我没有太多经验。我只是知道有这些做法。

一个Super Simple的——并不是说简单就不管用,最简单的一个预测模型,就是价格会回到均线。均线是什么周期的,自己去琢磨。这个中间的复杂性,大部分来自Data。Model的话,R里面有很多Package,可以帮你做到还不错的自动化。很多Indicator可以自动,图也很有帮助。

Data和Factor都需要不停琢磨。再去套这些Model。

 

Micro Structure

这个就偏高频了,一般的Quant可能不会用到。比如股票交易里面经常听说支撑位、压力位,就是简单的Micro Structure。可能看到这个是支持位,有很多单,很多Bid在那里。

看一下去年美国的证监会做了一个调查。

Spoofer,在市场里Bluffing的一些Player。本来市场很正常,买单都是10,20,突然有个Player进来说我要买1000。大家都以为有个很大的买单,都去抢着买。股票的走势从微观角度来讲都是供需关系。买的人多了就会涨上去。有人放个100万的单,开始往上涨。然后他就开始卖。这个就是Spoofing。美国证监会严格定义为操控市场的行为,是违法的。

贴两个很有意思的链接:

How to Catch a Spoofer

http://www.bloomberg.com/graphics/2015-spoofing/

Iceberg Orders

http://www.marketdelta.com/blog/2011/10/footprint-chart/iceberg-orders/

数学,从我的经验来讲,小学数学和PhD数学都会用到。不要小看小学数学,也会栽很多坑的。高级一点的,像Pricing是很专业的。怎样去Price一个Interest Rate的Option。

还有Predictive Modelling,这个很广,可以讲很久,很多公司都在用。很多Quant都会做的事情。

高频的短板就是,容量很小。就好比你给他50万,他赚20万。你给他500万,他可能还是赚20万。

 

IT

IT。大家都知道“光大乌龙指”事件。另外,骑士资本曾经半小时亏了4.4亿美金。程序员升级系统,可能8台生产机,有一台没有升级,导致有一个错误的指令执行了,就不停地交易。关键是还交易了30分钟。我不知道它怎么做到30分钟没有发现的。

这两个案例就是说,IT很重要,可以让你亏很多钱(“光大乌龙指”是赚钱了,但被罚了很多钱)。

 

IT System主要分为上面四个部分。

Price Data相对简单一点,更多的像Fundamental Data、Unstructured Data就比较复杂一点,需要很多的程序员码代码,怎样去收集、格式化、统一化、Access。作为一个Quant,我就想拿某天的数据去画个图出来。我们现在基本上就是这个状况,很容易就可以拿一堆数据做一堆事情,另一端的Quant就写很少的代码。因为我们把很多的数据结构、数据接口都统一化。不管是用C++、C#,还是从Scala,拿这个数据都是同样的格式,这样就会很方便。

当然你不能错,你的容错和你检查错误的能力也要非常高。之前我们就出现过这样的情况,回测非常好,天天都赚钱,结果发现数据错了。非常愚蠢的错误。经常发生,相信以后也会发生。不过以后再看到很NB的回测结果,我们会更加怀疑。

这个Execution就是各种API,各种market access,各种风控。在高频领域,速度是非常重要的。因为很多数据都是公开的,很多人都看得到。当很多人都看到一个机会的时候,只有最快的人可以拿到它。每个市场都有不同的API,也有统一的协议,比如Fix协议,但不一定是每个交易所都支持,但是Fix协议本身也比较慢。高频的话一般都是C++、FPGA的下单模块,我们一般都是C++、FPGA。我们现在有小部分策略是放在FPGA上面的,不通过OS。

Back Testing,有时候Quant想出来的东西,可能你的回测系统还不支持,你需要去改回测的框架。

Visualization很重要的。你不能说,给我生成一堆数,看不来的嘛。看到图更加一目了然。我们花了很多力气在Scala里面画图,在R里面画图。因为一堆图和一堆数据解释是不一样的。

回测的速度也很重要。比如回测一个策略,一年的数据,你需要一个星期。谁去等一个星期看你的结果啊!一分钟可能还能接受一点。策略里面的参数存在一个迭代的过程,比如参数,我想从1试到100看看怎么样。你每个测试用5分钟,优化的时候我可能有10万个参数需要测试,那就不能等了。

这里面我们也做了很多优化,比如怎样去拿数据,怎样去缓存,在中间提高它的性能。以前,我在上一家公司还做了一些云计算的尝试,把一些回测的Engine全部Distribute到很多服务器上。这样的话,一个Request过去,有很多机器同时在跑。你可以把它做到互相不影响。每个参数都是独立的。都可以并行地去计算。

还有一个就是Monitoring。这里面很多自动化在里面。又有很多策略。需要人工盯着不太现实。

怎样去Monitor风险,怎么样去Alert,这也是一个很重要的环节。像我们现在的策略都是自动化运行,所有策略的监控,每个策略的风险水平不能超过多少,超过会报警。特别是我们还交易夜盘,让程序员经常熬夜的话,也不太现实。所以如果有Critical Error,就会直接打电话到手机上。现在我们就会轻松很多。

当你交易的品种很多的时候,基本上没有可能都是人在那里盯着,所以要做很多监控。

Tick to Order,我不知道有多少人知道。简单来讲,就是从你看到数据到下单,这中间需要的时间。Tick就是你的市场数据。你看到市场上有个数据,做出某个决策,下单,中间过的时间。这个可能是过于技术的东西了,我就不展开讲了。

 

推荐阅读

Flash Boys

Quantitative Trading: How to Build Your Own Algorithmic Trading Business

The Quants: How a New Breed of Math Whizzes Conquered Wall Street and Nearly Destroyed It

The Problem of HFT - Collected Writings on High Frequency Trading & Stock Market Structure Reform

Inside the Black Box: A Simple Guide to Quantitative and High Frequency Trading

Algorithmic Trading: Winning Strategies and Their Rationale

Quantitative Trading with R: Understanding Mathematical and Computational Tools from a Quant's Perspective

http://numericalmethod.com/courses/introduction-to-algorithmic-tradingstrategies-2011-2013/ https://www.quantstart.com/articles/beginners-guide-to-quantitative-trading

https://www.zhihu.com/publications/nacl/19550372

 

以上内容由李奥的《量化金融与高频交易》的主题分享会整理分享,首发于交易门,由资管君(微信公众号ziguantoutiaocom)转载。

本文仅供参考之用,接收人不应单纯依靠本资料的信息而取代自身的独立判断,应自主作出投资决策并自行承担投资风险。


 

**点击查看最新精选干货内容汇总**

***QB功能贴士汇总(点击标题打开链接)***

【QB宝典】V2.8亮点汇总,从心出发,更懂你的需求

【线上资金】一键群发、智能匹配,躺着平头寸就靠TA!

【线下同业】精选同业理财&线下资金优质报价

【国债期货】Cheapest to Deliver, Best to Offer(有声版)

【森浦头条】提供实时市场资讯、业内干货、实用QB攻略等信息。你关注的头条,森浦懂。

苦于深度好文没人关注?想提升知名度成为业内风云人物?

只要你的原创内容和金融有关,欢迎投稿至lina.zhang@sumscope.com 你也有机会获得头条推荐和QB手机首页推荐!

手机版QB V3.4.2新增线下同业理财功能,每日实时更新重点日报、债券日历、优质资讯,还可一键转发优质内容到微信&朋友圈,欢迎下载使用~~

QM群组如下,欢迎申请加入勾搭,这里不止有交易哦!

10001    线上资金一波流         (报价最大群)

10268    银行间海归群           (海龟精英群)

10392    银行间隔夜群           (隔夜报价群)

10393    银行间7D-1Y群         (7天以上报价群)

10396    银行间7天内资金群     (7天报价群)

10429    银行间吃货群           (吃货集中营)

10946    固收专家交流群         (固定收益与QB建议反馈群)

10966    We are 伐木累          (轻松闲聊群)

10692    钱钱券券群             (资金、债券群)

10750    银行间现券万人交易大群 (现券交易群)

10851    线下同业一波流         (线下同业交易群)

11015    银行间逗比集散地       (轻松闲聊群)

11019    银行间债券交易群        (债券交易群)

11072    债券交易交流群           (债券交流和交易都可以哦)