终于有人把量化投资讲明白了

Irene181
• 阅读 2040

导读: 股市起起伏伏,“基金”成为了热搜的常驻嘉宾,你上车了吗?翻车了吗?今天我们也蹭一下这个热度,聊聊量化投资。

作者:赵志强 刘志伟

来源:大数据DT(ID:hzdashuju)

终于有人把量化投资讲明白了

01 量化投资基本概念

量化投资并没有一个精确的定义,广义上可以认为,凡是借助于数学模型和计算机实现的投资方法都可以称为量化投资。

目前,国内比较常见的量化投资方法包括股票多因子策略(阿尔法)、期货CTA策略、套利策略和高频交易策略等。

量化投资在2010年之前还是非常小众的领域,后来随着沪深300指数期货的出现,量化投资的基金开始出现井喷现象。无论是中长线CTA策略,还是高频交易策略或股票阿尔法策略,都取得了非常好的业绩。

2010年到2014年是量化投资的红利期,各类量化投资策略都赚取了足够多利润。利润是最好的广告,很多人都开始关注量化投资,量化投资基金的规模因此开始快速增长。

也正是这种“高利润”,导致了大家对量化投资存在大量的误解。比如,2015年的“股灾”,很多人认为股指上的高频交易起到了推波助澜的作用,是股灾的元凶。之后,中金所做出的一系列动作,如对股指限制交易频率、提高交易手续费等,很大程度上就是为了限制高频交易。

股指被限,导致量化投资行业的利润大幅下滑,于是量化投资进入了寒冬期。然而,实际上股指是被冤枉的,清华大学五道口金融学院也撰写了研究报告来论证股指并不是股灾的原因。

由于误解的继续存在,因此股指在短期内是无法恢复到股灾以前的水平的。量化投资行业因为其非常依赖股指的特性,业绩出现大幅的下滑,很多策略也开始相继失效。

策略的失效,业绩的下滑,让很多人开始反思,量化并不是一切,并不能解决所有的问题。量化投资本身也是具有很大局限性的。

所以需要换一个思路,我们不一定要靠纯粹的所谓“量化”来做投资,量化只是一种手段,目的还是为了提升投资业绩。 换句话说,我们并不一定要成为专业的量化从业人员,才能使用量化的方法。

任何投资经理,包括大量传统的基本面分析师,都可以使用量化的手段来帮忙提升投资研究效率和业绩。本文的初衷就是希望传统的投资从业人员也能从量化的思路中获得助益。

量化,并不是谁的专利,人人都可以学习。

终于有人把量化投资讲明白了

02 量化投资的特征

严格来说,量化投资与主观投资并不是非黑即白的关系。 传统的主观投资经理查看财报,根据财务数据做投资决策,这算不算量化分析?既然进行了数据分析,主观投资当然也算是一种量化分析。那么,量化投资与主观投资的区别究竟在哪里呢?

它们的区别并没有那么泾渭分明。每一个投资者,或多或少都用到了主观或者量化的方法。投资者在收集信息、拟定决策的时候,有两种不同的倾向,一种是感知的、直觉的,另一种是逻辑的、量化的。这样就分为了四个维度,具体如下。

  • 直觉接收,直觉决策。 比如,阅读新闻,感知投资者情绪进行决策。

  • 直觉接收,量化决策。 比如,抓取网络文本,建立模型进行投资决策。

  • 量化接收,直觉决策。 比如,研究财报数据,根据直觉经验进行投资决策。

  • 量化接收,量化决策。 比如,通过统计分析,建立多因子模型,进行投资决策。

上述四个维度的划分如图1-1所示。

终于有人把量化投资讲明白了

▲图 1-1

量化投资策略的最大特点是其具有一套基于数据的完整交易规则。在投资决策的任何一个环节中,必须要有一套完全客观的量化标准,比如,A股票的横指标达到多少的阈值时,我们才决定开仓,每次开仓要买多少手。

这种规定必须是唯一客观的,不允许有不同的解释。 当然,这些规定可以通过研究和主观判断来进行修改,但是一旦确定,就需要严格遵守。

03 量化投资的优势

量化投资的优势可以总结为三个词:客观性、大数据、响应快,具体说明如下。

1. 客观性

量化投资一般通过回测来证实或者证伪策略的历史有效性,而且在进行实盘交易的时候,很多都是通过程序化交易自动下单的,这能在很大程度上保证决策的客观性,受人为情绪等因素的干扰较少。

2. 大数据

量化投资在研究或者决策中,通常会引入大量的数据来进行分析。比如股票,只需要一套代码,就可以同时分析全市场3600多支股票。这种大数据的分析效率在传统投研方法中是做不到的(当然,不可否认的是,传统投研对公司基本面的研究是更深入的)。

3. 响应快

由于是用计算机进行自动分析,所以分析和响应速度都十分迅速,一般能达到秒级,高频交易甚至是以微秒为单位的。 比如,笔者以前做高频交易的时候,程序从接受行情到下单的优化都是以微秒为单位的,因为你比别人更快一点就有更大的可能抢到单子,就能赚到更多的钱。

就算是非高频交易领域,也有一些响应速度较快的需求,比如,笔者曾参与一个公告解析的项目,从公告发布爬取,再到解析出公告对应的意义,基本上在几分钟内就能解决。当然,公告的极速解析对交易的意义并不大,因为公告都是在盘后发布的,不会在交易时间发布,因此大家都有足够的反应时间来进行投资决策。

但是,对新闻的解析,其意义是十分巨大的,因为新闻随时随地都有可能发生,这也是通常所说的舆情分析,虽然目前这块的进展不算太大,但是其未来的发展空间却是巨大的。

虽然具有上述这些优势,但是量化投资本身并不是一把“金钥匙”。实际上,很难有一种策略,在任何市场中都能持续赚钱。即使是很多夏普比率极高的高频交易策略(比如,股灾之前的股指高频交易策略),也会面临政策的不确定性。如果交易所调高手续费,限制交易量,那么这些高频策略也就不再有利可图了。

所以不要迷信量化投资能够解决一切问题。 我们只需要想办法利用好量化的特性,在投资竞争中不断积累优势即可。

终于有人把量化投资讲明白了

04 量化、AI并不是一切

随着围棋比赛中阿尔法狗完胜人类,近几年人工智能(大数据)将占领华尔街的新闻也是铺天盖地、甚嚣尘上。其实笔者并不相信目前纯粹的人工智能在投资上能够超过最好的基金经理。为什么这么说呢?因为围棋与投资有着本质的区别。

棋类游戏,很早的时候人类就已经被计算机打败了(如国际象棋)。不过围棋的难点在于,可能的状态数太多,无法穷举,但这些难点终究只是一个数量上的问题,所以围棋算法的核心要点在于,在有限算力的情况下,通过优化算法,放弃部分搜索空间,同时保证寻找到的是较优的解。在计算机领域,这其实就是个“优化”问题。

但是投资完全不一样,投资不是“优化”问题,投资是“预测”问题,是要预测市场的下一步应该怎么走。“预测”问题可以说极其困难。

Facebook人工智能掌门杨立昆(Yann LeCun)演讲时曾提到过这个问题,人工智能最缺乏的是“常识”,这一缺陷导致了人工智能作出预测极为困难。

杨立昆列举的例子是视频,比如某个视频的上半段是乔丹运球冲向篮筐,那么下半段会是什么样子呢?这个问题对人类来说很容易,大概率就是投篮或者扣篮。因为我们的常识已经熟知了篮球的套路。但这个问题对于人工智能来说,却是极为困难的。

实际上,很多大公司都曾在预测问题上遭遇尴尬。很早的时候,Google就尝试使用大数据来预测流感,最后证明预测效果并不好。

国内也有一些互联网大公司(如百度和腾讯)使用大数据发布了相应的指数基金,业绩相当一般。据笔者所知,Facebook目前甚至没有人去做股票的投资研究,他们肯定深知其中的困难——如果人工智能在投资上能有那么厉害,那么他们早就借此发家致富了。

至于国内很多所谓的人工智能,低级一点的,将神经网络套用在行情数据上,试图拟合出一个表现不错的策略,在实盘中往往会遭受事实无情的打击。高级一点的,扒取网上相关的舆情数据,先进行自然语言分析再根据信息做出决策。

这些与我们“想象中”的人工智能其实都相差很远,也不太见得会有什么上佳表现。即使有表现较好的策略,其本质与用简单的回归模型做出的策略并无太大区别。实际上,国内很多做P2P风险分析的,用的都是Logistic回归,易懂又好用。

由于媒体的吹捧,大家对AI在金融投资领域的应用普遍存在着过高的期待,甚至有人危言耸听地号称将来AI会替代投资经理的职务。

其实这都是不现实的,在一些简单的数据处理问题上,AI确实有替代人工的趋势,比如人脸识别。但对于金融投资这一复杂的领域,AI的应用进展其实是非常有限的。很多号称AI的投资基金其实是换汤不换药,本质上还是已经成熟了几十年的量化模型。

AI在金融投资领域最大的问题是,可用的样本数据极其有限,也无法大量生成。股市有多少历史数据,就有多少样本数据,但也只有这么多。

极其有限的样本数据,加上极其庞大的特征维度,是AI在金融预测建模上举步维艰的根本原因。众所周知的是,训练数据是AI的基本养料,数据有限,就会导致模型很难得到大幅度的提升。就那么多有效的因子,大家反复挖掘,失效的速度也越来越快。

虽然笔者是量化投资和金融AI从业人员,但对量化投资或者AI并不存在过高的追捧和期待,我们还是要脚踏实地去解决一些与我们更密切相关的问题。

关于作者: 赵志强,金融量化与建模专家,目前在金融科技公司负责金融大数据产品工作,专注于研究Al在金融领域的落地应用。曾在由诺奖得主Robert Engle领导的上海纽约大学波动研究所研究全球金融风险,并和上交所、中金所合作完成多项科研项目。曾在摩根士丹利华鑫基金、明汯投资负责量化投资研究工作,内容包括股票多因子、期货CTA和高频交易等。

刘志伟,在中国银联云闪付事业部从事数据分析、数据挖掘等工作。对自然语言处理、文本分类、实体识别、关系抽取、传统机器学习,以及大数据技术栈均有实践经验。目前正在探索相关技术在金融场景内的落地应用,包括自动知识图谱、大规模文本信息抽取结构化、异常识别等领域,关注人工智能行业前沿技术发展。

本文摘编自《Python量化投资:技术、模型与策略》,经出版方授权发布。

终于有人把量化投资讲明白了

延伸阅读《Python量化投资:技术、模型与策略》

点击上图了解及购买

**-----**------**-----**---**** 送书 **-----**--------**-----**-****

推荐语

理论与实践相结合,基于Python阐述量化投资理论和策略,深入分析Python在量化投资分析中具体的应用案例。

活动规则

参与方式:在本公众号后台回复 “送书”关键字,记得是“送书”二字哈,即可参与本次的送书活动。

公布时间:2021年3月17号(周三)晚上20点

领取事宜:请小伙伴添加小助手微信: pdcfighting,或者扫码添加好友。添加小助手的每一个人都可以领取一份Python学习资料,更重要的是方便联系。

终于有人把量化投资讲明白了

注意事项:一定要留意微信消息,如果你是幸运儿就尽快在小程序中填写收货地址、书籍信息。一天之内没有填写收货信息,送书名额就转给其他人了噢,欢迎参与~

**-----**------**-----**---**** End **-----**--------**-----**-****

往期精彩文章推荐:

欢迎各位大佬点击链接加入群聊【helloworld开发者社区】:https://jq.qq.com/?_wv=1027&k=mBlk6nzX进群交流IT技术热点。

本文转自 https://mp.weixin.qq.com/s/QTqPl0D_Fm4qVrjLUVI10g,如有侵权,请联系删除。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
Java日期时间API系列31
  时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总毫秒数,是所有时间的基础,其他时间可以通过时间戳转换得到。Java中本来已经有相关获取时间戳的方法,Java8后增加新的类Instant等专用于处理时间戳问题。 1获取时间戳的方法和性能对比1.1获取时间戳方法Java8以前
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
Java日期时间API系列36
  十二时辰,古代劳动人民把一昼夜划分成十二个时段,每一个时段叫一个时辰。二十四小时和十二时辰对照表:时辰时间24时制子时深夜11:00凌晨01:0023:0001:00丑时上午01:00上午03:0001:0003:00寅时上午03:00上午0
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这