2016二级市场的投资管理系统实践

(年度个人总结)

2016年最值得骄傲的事:

超额完成了2015年年底定下的目标,并培养了一批后备全栈工程师!!!

细数下来,2016的工作总结主要分为如下几个方面:
1. 专业领域
2. 思考及感悟
3. 未来的目标

专业领域

量化投资风控建模

  1. 神经网络加入CTA策略当中

    2015年曾提出用神经网络来优化CTA策略当中的趋势判断,以便减少震荡市的净值回撤问题。

    2016年在TensorFlow,mxnet, 和keras的工具下,已经可以使用LSTM,RNN的方式来进行趋势判别。

    过程当中有一些自己的思考:

    RNN的模型虽然听上去是比较酷一点的神经网络,但是对于金融的时间序列建模上,其数学本质还是ARIMA+卡尔曼滤波。尤其是在于使用传统的OHLC数据上,RNN并没有突出的表现。然而对于LSTM来说,其输入门和输出门虽然在图片识别,NLP问题上表现突出,可以有效地解决过拟合问题。但是在金融序列的神经网络的建模上表现并不明显。最后还是去掉了。反倒是利用加工后的技术指标+one-hot后的基本面数据。对于趋势识别来说有很大的用途。

  2. FOF及投资管理行业的辅助工具产品化

    在传统投资分析,资产管理,FOF管理当中,任何专业人士都会对有效市场,分散投资,有效前沿理论耳熟能详。但是根据本人的工作经验,真正将该方法应用到具体的投资活动当中时,这种科学方法几乎没人用到。除去传统人民脑海中的中"中国市场不适合"的固有概念,其实绝大部分原因是没有趁手的投资工具。

    我国的金融从业者即使截止到今天为止,能将投资当中的问题,抽象并转化为数学问题的人,并且进行计算机建模去寻找最优解决方案的团队实在是太少了。即使传统意义上的价值投资方法进行股票及资产选择后,如何进行配置?资金分配?仓位管理?基本上都是出于管理人的经验得出。但是这些问题其实早已有相应的科学解决方案。

    2016年,我们将投资管理当中常用的“均值-方差”,“风险中性”,"最优组合","风险预算","Black-litterman","凯利公式"都已经产品化,可视化的集成完毕。在这些模型的产品化过程中,我们发现有很多非常多的小细节也是决定了很多团队并没有将手动的建模变为自动化的过程的障碍。

    例如:

    • 在马克维茨的组合理论当中,我们选定了投资品种并且获得了其相应的后验参数(R,Sigma),在进行有效前沿的模拟当中,到底如何生成市场组合的散点图?有效前沿画线的时候及Capital-Market Line该如何进行处理?

    • Black-Litterman模型当中需要添加管理人对于不同资产的主观意见并生成相应的观点矩阵。 例如一共需要配置4条观点, A>B=3%,B>C=3%,如果模型的使用者又添加了一条观点A>C=3%,那么就会有逻辑上的冲突,问题来了:如何让计算机判断这种冲突就是必须要解决的问题,尤其是在客户需要配置的资产可能无穷多的情况下该如何实现?

    • Black-Litterman当中的均衡收益(Equilibrium Return)到底在实践当中如何取值?

    • 风险中性,风险预算情况下如果没有最优解法,该如何通知计算机寻找最近的可行解?

    以上的种种小细节都会直接决定了产品的可用性及实践的操作复杂程度,然而这些细节也是必须亲手建立过无数这些模型后,才能找到一些通用的解法。

  3. 完成了一套可用的舆情挖掘系统

    我们利用了利用了语义分析,情感分析,抓取一些最热门的社交平台的语言。进行最热的股票分析。其结果我们放在了如下地址上:奇点指数-散户神器(舆情抓取)

    在此系统当中,我们解决了如下几个问题:

    • 分布式的抓取系统。因为社交信息的转播很快,失效也跟快,因此我们利用了tornado的异步及队列方式对社交信息进行了异步抓取

    • 分词。在进行语义分析当汇总,中文的难点在于分词。我们使用了jieba这个非常棒的工具进行分词统计

    • 情感提取。手动进行了情感词语的维护工作,进行重要性测试。将提取的舆情信息进行分词后,与词库进行比对,然后推送结果。

  4. 利用机器学习对传统的建模及分析过程进行了优化及提升

    在2016年,我们对现有的投资分析方法进行了机器学习的优化改进,其中有一下几点,各位量化的从业人士可以进行考虑:

    • 对业绩归因进行了决策树的分析方法,这样可以提取出一些传统OLS分析当中的非线性因素

    • 在风控系统及VaR(ES)测算当中采用了贝叶斯统计的方式进行了更精确的描述,即MCMC算法引入。并在一定程度上给出了VaR(ES)在风险管理当中的操作上的使用建议。

  5. 实现了批量的产品化的压力测试及情景测试

    传统的压力测试需要大量的程序编写及参数设置,2016年在实践过程当中,我们提取了传统的压力测试环节的共性,并设置生成了一套即点即用的可视化压力测试及情景测试系统。新系统可以随时添加想要的测试时间。 计划下一步开放宏观数据的自行测试系统。

系统部署实践

  1. 奇点指数,完全产品化并已经完全上线。

    2016年最大的成就之一就是上一年度刚刚实验完成的后台部署方案,今年在前台完全实现,并已经产品化。 奇点指数,已经完全上线。 我们目前针对的主要两种业务场景已经完全可以实现线上运营或线下部署。这个产品为投资组合管理,投资顾问,私募基金提供了一键式解决方案。

    • 一键建立跨品种投资组合(基金,股票,期货),分析组合净值,风险管理,压力测试,情景测试,组合优化
    • 私募基金及、托管机构、FOF的一键净值分析,批量导入净值表并做分析,大量减轻了私募基金的运营成本及解决了新成立基金的运维问题

    在这个成型的产品开发和测试过程中我们遇到了各种各样的奇葩问题,有些甚至牵扯到了python 源码问题,也已经提交.具体一些有意思的问题如下:

    • Windows 下的文件描述符使用问题.

      Python 系统在进行服务器架构的时候,一般会采用轮询的方式来监听socket里面的数据,具体的方式Windows系统一般会采用Select模型,Linux会采用poll/epoll模型。但是,问题来了!在轮训的时候Windows下的Select模型需要使用"文件描述符(File Descriptor)"来进行轮询,但超出1024的时候,socket会被自动关闭!!!那么这时候,必须保证服务器连接在小于1024的时候必须手动关闭!问题来了,python的socket的内置包没办法手动关闭File Descriptor!!!!!导致,一但增加链接,服务器会被自动关闭!注意,是自动关闭!不是error,再新发一个请求后会自动跳过!!!这个问题我已经分别向tornado的源码团队还有python的源码团队提交了,看看什么时候能修改吧。来个传送门:tornadoPython 哈哈,死不认错的西方人!

    • 与阿里一起解决drds中主键ID过长导致无法导入数据的问题

      去年主要在服务器架构上解决了金融大数据科学当中的高并发问题以为后续做好准备,但是数据库访问的瓶颈必须靠分布式数据库来解决当中的问题。阿里的drds给我们提供了非常好的解决方案。但是,具体的使用过程当中,drds当年的最初的架构是应对IT和互联网业务的数据库解决方案,所以主键一般都会是int类型,但是金融行业的很多数据库由于数据供应商,及本身金融产品的属性问题,会将主键设置成varchar200 的类型,这样会直接导致建表不成功,在于阿里的技术伙伴们数次沟通后,终于这个问题在2016年的4月份解决了,也为我们今后拓展业务打下了基础。

    • 缓存问题

      将单一的分析框架在进行工程化部署的过程当中,即使我们一方面在优化相应的计算算法,但是还有一个重要的事情就是现在的用户对于体验的要求越来越高,金融工具的设计虽然第一要素是准确,但是随着行业发展,用户体验也逐渐的被业内重视,但是又要满足计算的即时性,准确性,又要满足客户的体验需求,一套“有效”的缓存机制是必须存在的了。工具虽然很简单,有redits,memcache等非常成熟的工具可用,但背后的业务逻辑必须梳理清楚。包括:缓存的过期时间,更新逻辑,不同用户访问什么时候采用同一个缓存数据,什么时候更新?深入研究后发现这是一套非常重要的设计理念,甚至可以上升到分布式系统的数学逻辑上,这里我不做深入的讨论,只是说我们后来找到了一套适合于自己的缓存更新逻辑。这里贴上一个非常好的文章供大家参考–缓存更新的逻辑

    • 一套即时的报告生成系统

      我们的系统目前可以实现一键生成相应的pdf投资分析报告。一开始我们试图将网页版直接转为word或pdf版本,但是在进行排版的时候发现网页和报告的配色差异对于阅读来说是一个灾难。因此,作为一个金融,互联网,数据的交叉行业来说,必须有一个完整的,可行的报告系统。这让我们联想到了专用的学术排版系统Latex。 将Python与Latex 进行深度整合以后,我们顺利的成型了自己的报告系统,并可以方便拓展。

思考及成长

金融业的发展机遇

金融行业的发展历史轨迹

2016年在创业的过程当中,我一直在思考一个问题,金融行业即使在美国的80年代之前,都不是一个高收入的行业,但是进入了20世纪末期及新世纪的来临使全球的这个行业进入了前所未有的高速发展时期,也让普通的老百姓认识到了这一行的神秘与疯狂的财富创造过程。

那么,为什么现代金融业尤其是现代银行业从英格兰银行的建立开始已经发展了数百年,但是会在最近的30-50年有了急速的爆发呢?

我自己的答案是:

人类大规模计算能力的提升带来了这个行业的发展机遇。

我们先来看一张表格:

时间 金融事件 重大科技事件
原始社会 物物交换,原始货币
-3000 美索不达米亚文明,债券 前4241年,古埃及发明了世界上最早的太阳历 ;前2000年 埃及人发明十进制,整数和分数计算法,三角形和圆面积计算法,正方角锥体和锥台体积计算法;
-1600 商朝铜贝
960 最早纸币,宋朝交子 中国宋代沈括写成《梦溪笔谈》一书
1400 威尼斯人 跨国债券交易 1202年,意大利斐波那契发表《计算之书》把印度-阿拉伯计数法介绍到西方
1400 意大利梅蒂奇家族 外汇交易
1531 比利时股票交易所 1500年,达芬奇设计了风力计、湿度计、降落伞、纺纱机、踏动车床等草图
1694 英国国债,皇家特许状 1666年,英国的牛顿提出万有引力定律;1666年,英国牛顿用三棱镜分光;1677年,德国的莱布尼兹发明微积分。1687年,英国的牛顿提出力学三定律和绝对时间、绝对空间的概念。
1710 日本商品交易所 1701年,英国的贝努利创建变分法
1792 纽约股票交易所
1801 伦敦股票交易所 1781年,英国的瓦特改良蒸汽机。
1850 美国投行外汇交易 1802年,英国的特里维西克造出了蒸汽机车
1877 伦敦金属交易所
1880 金本位 1875年,巴黎会议签订米制公约
1898 芝加哥商品交易所 1885年,德国的本茨发明了汽油内燃汽车
1958 ABS 1946年,第一台计算机ENIAC在美问世
1970 MBS by房地美
1971 废除金本位 1971年,美国Intel公司制成微处理器,开始计算机第二次革命。
1990 ETF TIPs by多伦多股票交易所
1996 CDS,信用衍生品开始交易

上面的数据,我们列举了主要的金融创新和发明时间表,以及相应的重大科技事件,主要罗列了数学及工程学的发展。

不难看出如下的轨迹

基础数学及数字的建立===>基本的货物及数量意识==>基础的利率发明==>债务的发明及应用===>微积分及蒸汽机发明==>股票投资的出现==>大规模工业革命的出现==>投资银行的兴起===>计算机及计算数学的大发展====>信用货币及衍生品出现

每一次的重大金融创新前数百年到数十年之间,必须出现革命性的理论及工程应用突破。为什么会有这种巧合呢?
我是这样进行理解的:

金融活动的本质,即无论是信贷活动还是投资活动,其最最本质是对未来情况的折现。换句话说,所有的金融活动都免不了对未来的情形进行假设计算,并给出相应的价格。参与其中的所有玩家所博弈的观点无非就是对于未来的不同观点在价格上的体现。由于这件事情在看到结果之前都是极其主观的判断,因此,金融的流动性及价格发现(定价机制)便在这个过程当中体现出来。

好了,既然我们已经看到了金融活动的本质,那么如何保证这样的博弈过程当中自己的利益最大化呢?或者保证自己的博弈结果是正确的呢?由于金融活动的存在基础即是信息的不对称性(2001年度诺比尔奖,信息不对称理论),话句话说便是:我知道你不知道的,我了解你不了解的,这样你才愿意花更高的价格买我手中的资产,我才能赚钱。 因此,所有参与者要想获得长期的利润,他们必须提高自己的信息收集、处理及判断能力,去极大地的降低交易/投资环节当中的不确定性。与此同时,这一信息处理过程当中同时衍生出了如投资银行,会计事务所这样的中立机构用以提高对于结果的准确性的控制。

现在问题的关键已经出现,即金融活动中的赚钱要素是提高信息的收集/处理能力,那么这一能力的提升也就直接制约了金融活动的活跃程度以及在国民经济活动中的影响深度。

这时,历史恰好出现了惊人的巧合。在传统的股权,债券资产定价时候,传统的人工计算已经遇到了阻碍其发展的计算瓶颈时,商用计算机的普及(IBM 1971年)使人类的平均计算能力以几何级的速度提升,于是,伴随着在资产定价领域的数个重量级的学术文章出现,极大地拓展了这个行业对于不确定性的解释能力及控制能力。

在历史的时针进入了80年代后,金融行业的最美好时光到来。

我国金融行业的下一个机会

金融行业发展的同时,也成就了一批科技企业的发展。这里我贴上了国内几家行业内的耳熟能详的企业历史轨迹。

成立时间 公司名称
1995年 恒生电子
1998年 金证科技
1996年 证券之星
1995年 同花顺
2005年 东方财富
2005年 万得

这里我们不难看出这个这样的时间节点:

1995年 无纸化(电子)业务系统 =====>

2005年 信息聚合筛选系统 =====>

2015年 科技金融(FinTech)行业起步

大背景下的时代需求可以总结为以下三个时间段:

1995年前后,是中国金融行业的第一个快速发展的时代,当时的最大需求是传统的手工交易及记账需求已经无法满足日益增长的行业发展,必须采用计算机来处理相应的重复性人工劳动来解放生产力,这一批公司营运而生。

2005年,在电子化系统进行了长足发展过后,大家在逐渐的投资及金融活动中,发现需要有一套智能的信息集合系统来满足日益增长的信息诉求。因此这一批的企业的很大特点就是利用了互联网来完成相应的信息收集整理工作。

2015年,在信息的横向和纵向收集已经逐渐形成行业垄断及市场饱和的状态下,市场发现,信息量虽然越来越大,但是有效地处理信息,将杂质信息过滤,有效信息的利用,也将会称为下一个科技在金融的大爆发时代。 其实我也就是看到了这个巨大的历史机遇才决定出来创业。这个时代将会推动金融投资分析管理从人工向智能的转变,信息的处理效率会极大地提升。传统需要1-2周,一个3-4人的团队完成的工作,会在新的智能系统下3-4秒一个实习生即可处理。

对于上一段提出的2015年之后,中国将会进入科技金融的黄金时段,可能有的朋友们会将此概念与这两年以来媒体炒作相当火热的"互联网金融","P2P","智能投顾"概念混淆。因此,这里我贴一张科技金融全图。它的作者是我的好友肖小跑同志,贴一张传送门金融科技全图

以及我对于金融行业的下一个风口的一些见解我对金融科技的见解

从上图我们可以看出这个行业有太多可以通过科技改进的地方。以我个人的从业经验来看,中国目前整个金融行业的自动化水平真的不一定比服装行业高到那里。至少我知道很多工业领域已经深度的使用到了诸如视觉识别技术,语义分析,事态感知等人工智能(AI)技术,例如:交通监控,互联网安全监控,GFW(对,他其实一直在自我升级~),自动翻译,电子商务(自动化推荐),图片识别,生物工程等等。但是目前国内的金融领域也就屈指可数的几家在客服领域试探性的尝试了人工智能,而且人机交互体验差的一塌糊涂。那么由此可见这个行业留给这些据有创新能力的公司和年轻人其实机会是非常多的。但是,我这里提个醒,如果你硬要闯入传统的基金,保险,银行,证券领域试图与他们来争抢客户,那么~~呵呵传统互联网的烧钱思路根本不可能在这个领域行得通,烧钱,你烧地过银行么?

一套量化投资能否实现稳定的长年的高收益

2016年也与一些业内的量化大牛进行了深入的探讨,关于量化投资的看法及未来的发展。加上2016年的alpha go 将人工智能带入了普通人的视野,因此今年金融媒体有一大部分就陷入了一种集体狂热"人工智能将会消灭传统金融业务"。 在这里,我们姑且不讨论一级市场及信贷市场的信息不对称问题,我们只讨论二级市场的投资。

AI代替人工智能最先兴起的也就是美帝的智能投顾行业爆发的时候,Betterment作为一个号称“纯机器人”的智能投顾行业大旗一直在媒体及各方论坛上造势,与此同时国内也掀起了一股智能投顾热潮.先不说智能投顾具体在解决的问题,但是其投资功能上却是量化投资的一个分支—自动化"资产配置".为此我们也对2016年国内的各大智能投顾组合做了一个整体测评,效果也非常不错.2016热门智能投顾产品测评报告

这里面牵扯到了一个问题,到底可不可能有一套完全自动的,长期赚钱的策略出现?完全不需要人为干预呢?

我的答案是否定的。

在与国内的很多量化从业的同行交流过后,(记住:一定是自己写过代码,跑过资金的量化管理员),大家对这个机器完全替代表示很大的怀疑。最重要的原因由以下2点:

  1. 半信息市场原理

    在alpha go 横扫围棋界过后,人类最引以为傲的智力游戏被完全藐视,忽然间,一股强烈的不自信在金融圈蔓延开来,这种情况以某些自媒体,半吊子量化新人,刚入行的财务顾问为主。其实大家之所以对于这种事情感到恐怖,是源于对于人工智能的不了解。人类之所以感到围棋是智力的巅峰,是由于太多的可能性,过去的计算机,或者说在自学习算法成功的应用之前,大家认为计算机的计算能力是完全不足以应对在这么短的时间之内穷举所有可能和算法。但是,注意,过去大家对于人类的自信是出自于机器的计算能力不足!!!因此,这件事的本质原因不是机器不能做到,而是当时的机器,算法太过落后。但是围棋本身的全部可能性是可以推断出来的,任何博弈都是理论上可以推算出往后的所有可能变化.因此,这种问题机器一定可能超过人类的大脑,因为人类大脑对于规则性的,重复性的劳动是一定比不上机器的敏捷与低故障率。

    这里有一个重要概念,即,围棋的所有可能是包含在一张棋谱当中的,在每一局博弈过程当中,所有的可能在理论上是推断的出来的!每一步下完后,剩下的所有可能信息都可以根据过去的历史推断出来,即围棋是一个有效市场!。

    但是金融市场有一个重要的问题,即由尤金·法玛(EugeneFama)提出的有效市场假说(Efficient Markets Hypothesis,EMH这个问题后来也被授予诺贝尔奖。即金融市场的变化并不是所有的性都反映在了历史的价格当中,而是一部分包含,一部分不包含,这也就是投资能获得利润的最根本的保障!

    即计算机无论通过多少大数据,都不可能完全的获得这个市场的向下走的所有可能,那么计算机的学习就无从说起,长期稳定的赚钱基础就无从保障。

    我们也可以用逻辑进行另一番推理:如果出现了这样一台的机器一直在赚钱,那么另一个机构一定有一种冲动去打造另一台机器来进行与之抗争(算法有可能极其相似),于是两台机器的掌控资产数量在绞杀所有人类的时候急速膨胀,最后分别占有50%上下。好了,金融机构最有意思的事情出现了,如果确实某台机器最厉害,打败了另外一台机器,让另外一台机器归零。那重要的悖论出现了,输了的那一台自然自证了机器不是万能的。但是赢得那一台呢?也是他的生命到达了顶点的时刻,即往下没有了对手方,没有了利润来源。他的稳定赚钱又从何说起呢?

  2. 量化投资的利润来源

    上一端最后的假说未免过于极端,短时间内不具备参考性质。那么接下来我就从量化投资(机器人投资)的原理上来个大家进行以下剖析。

    以下是一些主流的量化策略及利润(风险)来源统计图

    量化策略 细分策略 利润来源
    多因子选股模型 因子持续有效
    普通指数和增强指数基金 普通指数 大类资产配置有效,全球不处于Risk-Off
    增强指数 增强因素持续有效
    事件驱动模型 定向增发 定增成功,市场不能遇到极端情况
    大股东和高管增持 投资者持续认可增持
    股权激励 投资者持续认可激励计划
    并购重组 重组或失败后较大股价波动
    ALPHA策略(量化对冲策略) 同跌不同涨,downside risk 相同
    无风险套利模型 期现套利 市场理性,价差不会扩大
    跨市场套利 双边市场流动性,费用汇率差稳定
    统计套利交易模型 组合统计套利 统计特性持续维持
    分级基金套利 套利期间内价格波动不大
    跨品种套利 品种关联度恒定
    跨期套利 升水贴水不会持续扩大
    特殊品种策略 特殊事件或特殊利润来源
    CTA 股指CTA 股指波动变大,sigma 变大
    期货CTA 期货波动变大,sigma 变大
    单一品种CTA 品种波动变大,sigma 变大
    高频交易 做市 市场spread存在,总有主动买卖盘,交易所返还费用
    spoof 监管风险,对手非高频交易,军备竞赛
    冰山 有暗盘通道,交易所更高的行情报价

    不难看出,起始所谓的量化交易及量化策略都是通过数学和统计的做法来让某一类的投资(du bo)变得更加科学化,可复制,可解释,这样,一边在交易的过程当中随时总结,找到成功和失败的背后的原因,然后及时调整以便应对接下来的市场环境。

    那么,看,最关键的就是,市场会变化,交易策略会失灵,黑天鹅会出现。(我们已经整理了大量的全球金融机构的黑天鹅事件,相似,但是总有新鲜的事情)这些事件,计算机根本不可能从过往的数据当中进行学习和调整。那么,请问,在计算机交易过程当中遇到的亏损及失灵,是不是也能从另一方面说,不存在一种完美的解决方案呢?

    关于人工智能算法的书籍,推荐一本终极算法,让大家深入浅出的理解人工智能背后的方法及原理,从而抛去固有的盲从和慌乱。

    另外,关于金融市场,有一个非常有意思的事情,来自于MIT的金工大牛罗闻全(Andrew Lo ) ,他也曾致力于研发一种任何环境下都在赔钱的策略,对,你没看错永远赔钱

    虽然文章充满了轻松地氛围,但是里面提出的观点确很值得思考。我们可以看到他的产品的净值曲线:

    赔钱曲线

    那条蓝色的就是赔钱曲线,但是大家注意看2010年的4月到7月,在标普500大跌的情况下他还是在赚钱!

    即使是世界上最聪明的人,研发的总是赔钱策略,市场也会让你在特定时刻赚钱!

    他对此是有一个非常重要的解释:金融市场是一个本身也在学习和进化的市场,即市场本身的属性,例如capital-market-line会随着时间的推移变化,市场的参与者,资金量也会反过来影响市场表现。(这一点汇丰就曾经提出过Risk-on,Risk-off理论,我在R语言大会上也进行过分享Risk-On,Risk-Off.那么,当量化交易逐渐占到市场主流的时候,市场的特性本身会随着玩家玩法的进化而进化,这时候,传统的赚钱策略就有可能失灵了!!!总需要有人陪钱么~不然赚钱的人的钱从哪里来的呢?

    总的来说,对于机器人交易消灭人类的事情,同志们,大家完全不必妄自菲薄,不然巴菲特早下班了,最后给大家贴一个喜闻乐见的打脸文章,智能投顾的“扛大旗”公司Betterment 最近的招聘广告Betterment决定在机器人当终加入人工建议!Betterment now offering human advice with its robo。恩,他决定要CFA+AI了,哈哈哈~

最后简单的说说未来的目标吧

  1. 希望2017年,我们的市场占有率继续提高,让我们的产品帮助更多的投资者,让大家减少损失,认清不确定性,不要让赔钱的阴影来折磨着我们的睡眠.
  2. 产品方面,希望我们今年能从二级市场领域,逐渐的扩展到一级市场领域,这样,让大家在投资的时候,一套奇点指数就是你最好的投资管理伙伴.
  3. 有机会更多的与业内的高手分享一下观点与经验,大家共同进步吧。
  4. 希望更多的同行出现,来一起在下一个金融的浪潮当中闯一闯吧!

    祝大家2017,鸡年大吉大利~~~!!!