一个高频交易程序员的成长之路:一天挣以前一年的钱
2002年,19岁的小A在西安一所重点大学读大二。虽然专业是环境工程学,小A喜欢捣鼓电脑,打游戏,写代码。很快,他就成功教会了自己用C# 和Visual Studio 编程。不久后,他接了学校附近一个小IT公司的外包活,挣到了人生第一笔“可观”的收入——2000多元人民币。
“2000多在当时不算少了,在学校里吃顿饭也就五六块。”小A回忆起十多年前的第一笔外快,依然难掩激动。
小A在江苏农村出生长大,家里的经济条件并不宽裕。从小他跟弟弟和爸妈住在一栋红砖砌成的平房里。他对童年最深刻的回忆是:下雨时,屋顶漏水,雨水嘀嘀答答打在地上,他和弟弟就赶忙用水桶在屋里接水。
2000年,当他考上远在西安的这所重点大学时,他的父母喜忧参半——喜的是儿子有出息,愁的是每年光是学费就要一万多。两人四处奔走,从亲戚朋友那里帮小A借齐了第一年的学费。小A弟弟比他小六岁,当时还在读初中。
当小A发现帮人编程每个月可以稳定地赚到两三千的时候,他心中升起一丝淡淡的自豪。
“从那之后,我大学就再也没有找家里要过生活费。”他说。
今年3月的一天,小A请我在香港中环一家米其林餐厅吃午餐时,离小A靠写代码挣外快的青葱岁月已经过去十余年了。
现在的小A,虽然头发比以前少了几根,皱纹比以前多了几条,但笑起来眼睛眯成一条线,似乎还是那个无忧无虑,在陕西郊外爬山露营、保护大熊猫、通宵打游戏、早上5点爬起来编程的大男孩。
小A在骨子里依然是个有点宅的程序员。他坚信程序员用代码改变了这个世界,而小A也一直在用代码敲打自己的人生:
十多年前,写代码给了小A走出校园、在社会立足的一技之长;再后来,写代码给了他事业进阶,打进国际投行的契机;也正是那一串串代码,赋予小A转型自立门户、打开交易这片天的勇气和力量。
码农的意义
小A的职业生涯,可以总结为他不断探索自己作为一个程序员的“意义”和“成就感”的过程。
大学毕业后,小A前后待过不少名头响亮的公司:
微软
亚洲研究院、
迅雷
、
穆迪
(Moody)、香港富达
基金
、摩根士丹利(香港)
。这些都是竞争激烈,不少人梦寐以求、削尖脑袋要挤进去的企业。然而拿着稳定的收入,待在高大上的写字楼,小A却始终没有感受到跟自己价值相匹配的成就感。
“在投行做程序员成就感很低,交易员要求写什么就写什么,写完他们愿意用就用一下。而即便程序最终挣了钱,跟程序员也没有多大关系。”他说。
2012年,小A加入摩根士丹利香港,在衍生品部门做定价。跟所有投行一样,发年终奖时,用他程序交易的交易员可以拿很高的奖金,但小A和其他程序员不管程序写得好还是差,奖金都很平。
投行的程序员担当着做牛做马、任劳任怨的角色。在摩根工作时,因为工程比较大,小A有时光是编译程序往往就要花上一个小时(通常简单的程序几秒钟就跑完了)。这还不算什么,如果程序慢了或者发现bug,小A需要从十几万行、几百万行里的代码去排错——有时一排就是两三个小时。
“做销售的、做服务的,你得经常给他打气,跟他K歌什么的。程序员不一样,程序员如果解决一个bug,他自己就满足了,负能量就消失了。”小A笑着说。
成就感的缺失促使小A不断在跳槽,而不断的跳槽并没有停止他内心的躁动。
在加入摩根前,小A开始琢磨着把写程序和做交易结合起来。他认为这摊事如果做起来,不仅能让他发挥自己技术和策略的长板,还能避开他跟人交往的短板。
加入摩根之后,小A的这个想法更加强烈。
其实为了走出这一步,小A一直在努力,之前的不同工作让他在不同的领域得到积累:微软给了他数据挖掘的经验,Moody的风险评级工作把他从一个什么都不懂,只会写代码的人带入行,小A学会了看财报、建模、做数据分析,也树立了风险管理意识。摩根士丹利的衍生品定价经验,为小A将来往期权定价等数量化方向发展奠定了基础。
这几年,上班之余,小A也没闲着。他一直在狠下功夫补充自己的短板:金融专业知识。他花三年时间考下了特许金融分析师(CFA),并主动学习公司财务报表、股票、衍生品定价、风险管理等方面的知识。
小A知道,一旦要走这条路,他会面临各种挑战和巨大的不确定性,但他暗自已经下定了决心。他想得很明白:自己做交易、自己做主,让自己的代码真正产生价值,这才能解决他终极的焦虑,这才是他想要的人生。
挣一天管一年
2014年,小A离开摩根,
加入香港一家
互联网
金融公司,
开始做高频交易。
互联网公司的老板最开始承诺注入1000万给小A交易,并让他搭建团队。
虽然还是在帮人打工,但小A很快在新工作中感到了本质改变:“今天优化几行代码,明天就可能多挣点,这是非常直接的回报。”
小A记得刚开始上实盘交易时自己的惴惴不安:“不是说每行代码都要看过去,至少你要知道你的程序是在做什么。”
刚开始交易时,一手股指一
二十万
保证金
,但
小A的账户里可能有一两百万。为了保险,小A会把多出来的钱划走到银行卡里面,以免实盘时下错单——“要是开成十张合约怎么办?程序有Bug不停开仓怎么办?”
这个把多余的钱取走、划到银行卡里的谨慎习惯,小A一直保持到他后来离开、独立交易的时候。
在互联网公司,小A操作一两百万的资金,每天能挣个一两万。初期试跑后,他开始慢慢增加合约,同时不断优化策略,调整参数。
有一次,小A想测试一个新的逻辑,结果一测试就亏了四五万,“把前几天的盈利都亏完了”。这让他十分沮丧,几乎“不想做交易了”。
在不断的挫折和试验中,小A的交易能力开始得到提升。而同时,他跟老板的分歧也愈发明显。
首先,老板承诺的1000万只到位了一两百万。其次,小A感到对方对自己的信任度并不高。“如果哪天亏了一两万,老板就要来找我谈话,对于硬件和数据上比较大的初始投资(几十万)也是一直没有争取到。”
最重要的是,老板始终想做P2P业务,认为交易这摊事“太小”,而小A一心一意只想做交易。
2015年春节后,小A跟互联网公司分手,开始自己做交易。
他投入了几百万的起始资金,在家里想了几个简单的策略开始跑。让他欣喜的是,他的策略很快开始赚钱了。最开始,小A每天能赚三四万,到后来,盈利稳定提高。
“刚开始一天赚的钱是(以前)一个月赚的钱,后来有一天赚的钱相当于(以前)一年的收入。”
这对小A来说是极大的鼓励。“我当时想,我很快就可以自己建团队了。”
小A认为,交易的挑战第一是风控——风险控制比盈利重要。“程序化交易玩不好是很危险的。几十分钟、个把小时就可以搞垮一家公司。”
小A的第二大挑战,是不停研发新的、赚钱的策略。
“我发现(一个策略)波动一大就亏钱……那我写个策略,波动大的时候赚钱,波动小的时候不怎么赚钱。互补一下。就这样,新策略就来了。”
微秒级的竞争
一直到现在,“高频交易”并没有一个很明确的官方定义。不过我们可以看看在高频交易最先被发明、也最发达的美国,监管机构怎么说。美国证监会在2010年的一份文件中,提出“高频交易”往往会同时满足以下特征:
1. 使用超高速的复杂计算机系统下单
2. 使用 co-location 和直连交易所的数据通道
3. 平均每次持仓时间极短
4. 大量发送和取消委托订单
5. 收盘时基本保持平仓(不持仓过夜)
高频交易复杂的性质决定了它只能由专业的交易员发起。正如美国作家Michael Lewis 在他的非虚构畅销书《高频交易员》(Flash Boys)所说,数据传输的速度决定着交易的价格。交易员们不顾一切,拼的就是速度。而在美国,这个竞争已经到了微秒的级别。
小A几年前就读过《Flash Boys》,书中描述的华尔街对速度的渴求给他留下了深刻的印象。但是等到自己开始做交易时,小A才开始对交易速度有直观的体会。
小A最开始在互联网金融公司做交易时,用“很烂”的系统、机器和数据。在测试时,哪怕把滑点等因素考虑进去也是赚钱的。但是到了实盘就不挣钱。“后来看,就是慢了。”
“再加上程序里很多bug,一个bug(会亏)几千块钱,多几个bug几万块钱就没了。加上资金量很小,一两百万,赚也赚不了多少钱。”他补充道。
2015年,等到小A自立门户开始交易时,他再次认识到了硬件和系统对交易速度的致命影响。
那时,小A的程序已经稳定运行了半个月,结果有一天突然开始亏钱了。他一检查,才发现自己前一天有个程序没关,占用了CPU。小A平时开两个程序,那天开了三个,没想到两个程序开始互相竞争CPU。
“我X,我第一次意识到(硬件)居然会有这么重要。”他说。
这次教训后,小A花了一两个月的时间去研究CPU和系统。他慢慢领悟到,高频交易拼速度,写代码可能占50%,但外围因素很关键:机房,机器,对各种系统要求都很高。
“有时候你自己优化C++,搞半天优化一个毫秒,很开心。买个好的CPU,可能就优化五毫秒。(这些事)别人不会出来跟你说的,你得自己去琢磨。”他说。
在上海某期货公司为小A提供技术支持的L对小A的自学能力赞叹不已。“通常在高频领域,做策略的不懂技术,做软件的不懂硬件,他一个人就搞定了。”L说,“有次调整服务器,我们期货公司的运维工程师都没搞定(我找了两个人来看),结果他自己搞定了。”
交易这条路
2016年初,交易门在香港举办新春烧烤会。其实户外烧烤这个点子,是小A提议的。他不仅主动提出要包揽全部费用(我后来提议AA进行),还自告奋勇要帮我组织。
烧烤当天,小A不仅开车载了我和好几位素未蒙面的交易门读者去烧烤地点,还主动购买烧烤的工具和食材,整个烧烤过程也一直忙前忙后,自己没吃上几口肉。
小A对户外活动的热情可以追溯到大学时期。那时,他经常跟女友和一帮朋友去爬山、露营。有时爬完一座山,前后要三四天。
小A和太太青梅竹马,一路走来。大学时,她跟他一起爬山、参加公益活动(两人都是世界自然基金会的会员),小A打游戏时,R就在实验室陪他,帮他分析战术、装备和路线,给他送饭。多年后,当小A提出要自己出来创业时,R也毫不犹豫地支持:
“我说,咱家那点钱, 给你个止损线, 玩到了就停下来好了—— 不赚钱的话我还上班赚钱不至于没饭吃。”
2015中国金融市场发生的一切,让创业不久的小A深深体会到了“计划总是赶不上变化”这老掉牙的说辞。
去年7月,小A开始搭建自己的交易团队。他的团队有10个人,分别在香港、深圳和西安办公。7月初,小A的第一个同事办完入职。
他说:“那位同事入职后第三四天我账户就被封过了。9月份等公司所有人入职完,这个市场就基本被关掉了。”
中金所去年夏天为了打击市场的“投机氛围”,采取了包括调高交易保证金、提高手续费、调低日内开仓限量标准等一些列严格的管控措施。从
9月7日起,
沪深300
、上证50、
中证500
股指期货客户在单个产品、单日开仓交易量超过10手的,中金所表示即构成“日内开仓交易量较大”的异常交易行为。
这一限制意味着股指期货失去了99%的流动性,这对于对于小A的团队来说无疑当头一击。
市场关了,但小A的公司不能关。小A对自己的团队承诺过,公司至少要坚持三年。现在,虽然顶着每年几百万的开销成本,他也要咬牙坚持着。国内市场不能做了,小A就跟同事开始研发海外市场的策略。
“海外市场战线长、门槛高,花费也很高,相当有挑战。完全是摸着石头过河,前路未知。”他说。
小A的同事很多是有才华的程序员。小A喜欢程序员的单纯。他们可以花很多时间啃骨头,一个细节一个细节地抠,一行一行地看程序。但同时,他们也很“闷”,小A在香港办公室的一位同事,可以坐一天一句话都不说。
小A最渴望的事之一,是等自己公司走上轨道之后,他可以抽出时间,去拍一部关于程序员的纪录片,真实地去记录和反映这个少有人理解的码农群体。
作为公司的掌舵人,小A试着去了解每个人,发掘他们的驱动力, 尽量让所有人都能做跟他们的兴趣更匹配的事。
小A的目标是把交易做成一份稳定的事业,最终做成一个比较成功的私募基金公司,同时让更多有能力的人和自己一起成长。
他说:“我希望更多有才华的勤奋的程序员,跟着我做也能实现财务自由。”