交易是如何进行的?

这篇2017年发在知乎上,现在觉得还是备份到自己博客比较好。

入职QC当Quant也半年了,总体感觉还是很棒的,项目难度相比以前在Google大一些。但公司只有我一个中国人比较囧,还好fqw大大在12月份也准备加入敝司。想了不少东西,但觉得其中最重要的还是一些根源性的问题。

而里面最本质的就是:

交易到底要做一些什么?

相信每个交易者都试过面对色彩斑斓的行情不知道该做什么。大部分人也看过各种大V说要怎么看基本面、技术面,看的时候用什么指标,要怎么使用等等。这些固然都有用处,但是当他们互相冲突的时候,就没办法分清楚对错了。

为了解决我们到底要做什么这个问题,先让我们来理清楚交易的输入和输出。

输出我们都很清楚,下单或者什么都不做。

输入的话,就比较五花八门了,但是其中比较常见的有这么几种。

  • 市场交易数据
  • 基本面数据
  • 言论观点
  • 交易规则
  • 人生经验等玄学向的先验知识

市场交易数据的本质是市场上所有人下单操作构成的集合。基本面数据就包括很多了,除了来自公司财报与资本运作(定增、可转债等)以外,还包括行业的整体供需数据,利率,经济数据等等。言论除了新闻,论坛以外,还包括研报,整体社会大众的观点等等(巴菲特的别人恐惧时我贪婪相信做过交易的人都听说过)。交易规则这个对于单做国内市场的人可能没什么感受,但是放到全球会发现怎么好像全世界的交易规则都不一样。人生经验这个东西和每个人的阅历有关系,形式各异,但大致上是一种类比,觉得这个情形和某个见过的情况类似,那么他们可能会有相同的性质。

现在输入输出都清楚了,那么我们要做的事情就是构建一个函数f

[公式]

然后这个函数就是“交易”的本体。

如何作出更好的交易

从上面简单的式子来看,要作出更好的交易,有以下几个方向。

  1. 提高数据的质量和数量
  2. 提高对数据的分析能力
  3. 提高f的计算速度,这样可以抢得一些明显的机会

总的来讲,数据为我们提供了一个交易对象的信息,而我们根据这些信息去分析认识这个对象的状态,最后作出判断。由于我们不可能完全获得一个交易对象的信息(我们甚至都没有办法获得自己朋友的所有信息对吧…),所以在分析能力和计算能力足够的情况下,信息肯定是越多越好的。对,我就是在反驳那句“一切都包含在价格当中”的江湖传言。

尽管如此,我们的分析和计算能力并不是无限的,那么这时候人类经常会做的就是抓重点。舍弃部分数据或者将数据模糊地概括是最常见的做法,而这种方法的极端就是不在意短期波动的价值投资和“一切都包含在价格当中”的技术派。一种是极度忽略市场交易数据,另外一种是极度忽略基本面等场外数据。这些信息都是交易对象的重要特征,忽略任何一部分,都是在放弃对交易对象更精确的建模。当然,这两种数据无疑都是影响力很大的,拥有深入分析任何一种的模型,对盈利来讲就够用了。只是这样显然是有些浪费这种信息所能带来的价值了。而用Ensemble Learning组合这些各方面的模型,在Quant里则是非常经典的方法。从这个角度上看,个人觉得机器对这些数据的利用能力早晚会比人类强的,这是大趋势。

但这并不意味着人类就早晚没啥事干了。这个世界上充斥着大量在线下才能获得信息的。比如说人类可以去股票背后的公司进行调研,查看公司生产销售情况,可以看懂国家规划的大方向等等。这些线下的信息处理要全自动,必须人家来配合,而且收集他们合不合法还不知道呢。

这扯得有点远了,目前机器的能力要谈完全利用数据里的信息还是很有距离的,回到如何作出更好的交易这个话题。对于手工交易,因为人脑有限的数据处理能力,解决方法当然是不断地抓重点。虽然这浪费了很多信息,但是依然是一个相对可靠的做法。比如要预测一天以后的股价,你可能觉得市场交易数据决定了90%的变化,然后你完全抛下剩下的10%。然后市场数据里,最近一年的走势特别决定了90%,于是你决定只看最近一年的价格走势。然后一年下来所有实时交易的数据量太多了,日内的实时走势好像没那么重要,于是你把每天的走势总结成“开盘价,收盘价,最高价格,最低价格”,也就是日K线。有了日k线组合,你发现这像是禅师说的中枢下沿,第二类买点,于是你重仓买入…

显然这每一步都是对信息的“有损压缩”,到最后你看的“第二类买点”,可能对于原来第二天价格的决定性只有 [公式] 。这还是非常理想的90%的情况,万一某个分支选了低于50%决定能力的特征提取方式,感觉和买彩票差不多。

用Quant的方法来做的话,也是一级一级地提特征,但是能同时考虑到所有分支罢了,反正也是一层一层有损压缩,最后一拍脑袋,就压成了预测价格。

对目前形势人工交易的看法就是:我们看那么多书,懂得这么多金融各路东西的道理与联系,最后对自己的交易起影响作用的,就是你自己心里觉得重要的东西罢了。所以抓对重点的能力真的是无比重要。

以上是分析方法的方向,在数据层面上,巴菲特也讲了,只买自己懂的公司。非常直观地阐述了数据的重要性。你有足够的信息,才能相对精确地刻画出描述它的模型。否则你看到的那些东西对公司的将来可能并不是什么具有决定性的东西,用那些信息来买起来大概和玩彩票差不多。

其实通篇下来并没有什么操作上的干货,但这是一个能把我自己看的东西都融进来的框架。哪天市场送一波开始狂妄的时候,拿出来看看自己是哪一点变强,如果没有,那心里就有数了:这完全是天给饭吃罢了。

从Google到Quadrature Capital

发生了什么

本马甲从浙大CS本科毕业之后,在Google伦敦干Software Engineer一年多,跳槽到了一家在伦敦名为Quadrature Capital的对冲基金做Quant Developer。

无论未来怎么样,这都是一个人生重要的转折点。

从互联网到金融;从大公司到小公司;从旁敲侧击,到直面自己的理想。

理想

首先必须明确我的理想是开对冲基金。

做这件事的原因是要帮助那些信任我的小伙伴们获得财务自由,能去追寻自己真正想要的东西,能多一些时间分给亲朋好友。见过了太多太多的朋友把闲钱放在活期账户里,吃着活期利息。虽然财务自由的定义众说纷纭,但是大致就是资本收益要能覆盖日常的支出。那么最简单地说:

资本收益=资本\times 收益率

因为不可能在资本上帮,那只能从收益率上帮了。

自己发大财当然好,然而带着大家一起发家致富才是真男人吧!

种子

大概是大四的期间经历了那波大牛市,开始萌生了做对冲基金的想法。那时候每周在学校去听老李讲股票,讲A股背后的各种资本运作,基本面,技术面,如何估值等等,自己也操作了一段时间股票。后来见到股灾又去开了股指期货,自己看各种材料想了很多,也学了不少。

家庭是金融背景,加上我自身的技术背景,怎么看做Quant都是一个非常适合的方向。另外看了一下本站里自己写的博客,这两个方向也特别明显。这么说吧,我大概是搞技术的里面比较懂金融的,搞金融的里面比较懂技术的。虽然中间也对各类互联网商业模式有了自己的思考,但很多时候是以服务于投资的心态去了解的。所以对冲基金这个方向也就可以理解了吧。

继续阅读“从Google到Quadrature Capital”

回顾那些自己展现出优势的时刻,大多是因为自己做了别人没做的事情,思考过别人没思考过的问题。当发现自己因为困难而想回避的时候,恰恰是提升水平的绝好机会。

分享一个看A股各种估值数据走势的方法

www.jointquant.com

上面点『我的策略』

比如要看市盈率曲线:

def initialize(context):
    g.security = '000826.XSHE'

def handle_data(context, data):
    security = g.security
    df = get_fundamentals(query(
        valuation
    ).filter(
        valuation.code.in_([security])
    ).order_by(
        valuation.market_cap.desc()
    ))
        
    # df 包含各种数据,把下面的'pe_ratio'改成别的就能画出其他数据的曲线
    record(pe_ratio=df['pe_ratio'][0])

df里有的域是
id
code
pe_ratio
turnover_ratio
pb_ratio
ps_ratio
pcf_ratio
capitalization
market_cap
circulating_cap
circulating_market_cap
day
pe_ratio_lyr
默认的pe_ratio是TTM的,非常科学。

敲进去以后,选择要想获得的日期范围再运行,结果就出来。

在Google工作半年多的一些感想

算是一些要对自己说,让自己记住的话和人生经验吧。如果碰巧能启发到其他人,那就太好了。

每个时刻都应该知道自己该干什么,并有效执行

恰逢前阵子TI6护国神翼夺冠,看到知乎上有人回答,在dota界极少有整场都知道自己该干什么并贯彻执行的。而神翼是5个人都很清楚要干什么。就像大酒神伍声视频里总是强调,打dota路人就是要每时每刻想着单位时间里收益最大的动作是什么。在为梦想拼搏的时候,也是如此。生活可以过得写意一些,但至少工作时间里,需要做到这一点。曾经有人说我目的性太强。但正是这样,才让我走到今日。恰恰相反,我不是目的性太强,而是还不够强,因为我觉得自己还没有达到这种境界。

每次只干一件事

专注非常有好处,这可能分人。就我自己而言,即使面对multi-tasking的情形,事情也是要一件一件来处理,把所有东西都打开对我自身效率的提升毫无用处。我想如何处理multi-tasking,CPU调度方式已经给了我们答案。Round-robin scheduling + priority。

生活节奏不能乱

该睡觉就睡觉,该吃饭就吃饭,该干活干活,该看书看书,该玩就玩。再也不像学生时代那样可以随便乱来了。因为如果工作了还保持这样,很可能一辈子就是这样了。Life is not a sprint, it is a marathon。仰望星空的同时,更重要的是脚踏实地,过好每一天。你仰望的星空,也许在你实力增长以后,就不再是你要的星空了。但脚踏实地带来的提升,会永远保留着。这一点上很佩服一些女孩子XD。

努力一定会有提高

这一点其实以前大学搞竞赛的时候就已经深刻体会到了。第二年打world finals和第一年打的时候比完全是处于两个境界。犹记得第一年训练结果忽好忽还,后来我甚至对训练的效果产生了质疑。我还对搞学长说:『训练根本就没有什么用,该会的知识都已经会了,那都是智商题,临场想得出来就想得出来,想不出来就想不出来,就这样了。』后来一年练多了以后才明白那种忽好忽坏,其实就是菜。理解还不够深刻,手还不够熟练。当思维熟练到一定程度的时候,解法和灵感就自然来了。

所谓的创新,也不过是把相似的东西联系结合起来罢了。人的联想能力是有限的,所以当我们面对很难的问题的时候,如果你的记忆里储备的相关内容不够多,是不可能把他们联系结合起来的。除了要提升自己知识储备的量以外,对学习到的内容加深理解也是很重要的。所谓加深理解,就是提取事物的本质特征。因为最终你能联想到相关的东西,一定是因为一些共同的本质特征。如果你事先提取好这些特征放在脑子里(做法就是平常对遇到的事物多思考),那么联想起来就容易很多了。人类的思考模式有点像广度优先搜索,遇到问题,先找最相关的一堆东西,不能解决再找次相关的一堆东西。这里简单想一下就会知道这个『相关事物的量』相对于从问题到要找的东西的距离是指数级的。所以你平常不思考做好索引,搜索起来肯定就慢得要死了…还很可能超出你能搜的能力极限,反映到实际就是,你搞不定这个问题了。

分析了这么多,就是要印证这个标题:努力一定会有提高的。能到什么程度不知道,但一定可以比原来强。

适当展示自己

这一项的目的不是为了show off,而是为了调节他人对自己的期望。有些牛人确实很低调,那是因为他们不再需要周围人改变对他的期望来实现自己的价值。我觉得之前在依图那边听来的一句话非常正确,大意是:一个人的成长是由他做的事情决定的。

如果你做的东西都是打杂,那成长的速度是很慢的。

而对于我们刚出来社会工作的new graduate来说,在大公司被boss拿去打杂是十有八九的。要去做重要的有难度的事情,就必须要秀你自己的能力。万事开头难,当你抓住机会表现了一两次以后,别人对你的期望就会得到改变。这时候拿到了一些有意思的活就不要再表现得那么强势了,不然最后不能meet老板的期望就适得其反了。

强者的谦虚才是真的谦虚。当在别人的期望里还是个弱者的时候,再谦虚就没人会注意了。记得大酒神打dota1 solo大赛的时候杀完对面的鸡打的那一句:对不起,这场比赛我要赢。人都是需要机会来证明自己的。当你被推到那个舞台之后,自然而然就会变强了。

不过呢,这一点在比较小的创业公司就没有这个问题,反正事情都干不完,you can you up…

就像@Lpuck跟我说的:你玩宠物小精灵的时候,一个怪也就是一开始厉害一点,后面你一直用,他升级飞快,就很厉害了。展示自己,做的就是让自己“看起来厉害一点”。

坚持自己的想法

别人的意见要看,但是不要随便就接纳。犹记得刚进来的时候,随便一个提交都好多comments。然后当时比较naive,觉得他们说得有一点道理的都照着改。结果一会儿你把这次的经验用到下一个提交上面的时候,又有一个另外的人来说,你这里不应该这样…然后我就意识到其实这群比我senior的人之间其实都不能统一意见。在那之后,如果不是我想过非常有道理的意见,基本都坚持自己的想法。

每个人都有不同的想法,所以外界的意见是不可能保持自洽的,能自洽的只有你自己的体系。但是当外界对某件事形成一个统一的想法的时候,就要特别注意思考其原因。虽然这种意见不一定对,但即使是错的,也值得积累下来的。这样在你带领别人的那一天,就能快速理解别人的动机并指正。