《量化投资实践》课程建设方式探讨
2018-07-25付志刚沈慧娟
付志刚 沈慧娟
摘要:量化投资已经成为投资界的趋势,社会需求缺口比较大。在探讨《量化投资实践》课程必要性的同时,对量化投资工具Matlab、R语言和Python等进行比较分析,认为教学过程中应选择R语言为投资工具,最后对先修课程、教学目标和教学内容等方面做了研究。
关键词:量化投资;R语言;教学目标
中图分类号:G642.3 文献标志码:A 文章编号:1674-9324(2018)21-0214-02
众所周知,传统的投资方式有价值投资和技术投资。价值投资基于有效市场假说和均值回归理论。其中有效市场是指,任何关于证券价格的信息都能够迅速地反映到证券的价格上,因此投资者不可能通过这些信息获取超额收益。均值回归理论是指,短期而言,价格会偏离均衡价格,但是长期来看,价格与均衡价格之间的距离会越来越小。在证券市场上,价格由于某个未知的原因与价值发生分离,但最终会向股票的内在价值进行回归。
技术性投资是第二种常见的投资方法,具体是以市场行为作为研究对象,以判断市场趋势和伴随的周期性变化对股票及其金融衍生物交易决策进行投资的方法。技术性投资必须依赖于技术分析。技术分析以股票价格涨跌作为主要研究对象,通过图表和技术性指标,对股票市场波动规律进行总结和对股价未来运行趋势进行预测。
然而,大数据和人工智能时代,传统的投资方法已经适应不了社会的需求,目前前沿的投资方法为量化投资。量化投资依赖统计和计量方法,建立合适的投资策略,并通过计算机自动化(半自动化)交易方法获取投资利润,是统计、计算机和金融学科交叉结合的产物。智能化量化投资是金融领域的重点研究方向。如2000年以来,高盛公司逐渐研发具有复杂算法系统的自动化交易机器人来代替交易员,特别是近五年来在正在加速,到目前为止,机器已经取代了600多个关键性的交易员(Chavez,2017)。然而这只是国外美好的景象,国内量化投资尚处于发展初期。如金融机构研发的智能投顾,其投资策略和风格都是比较经典的方法,主要适合缺乏金融知识的个体投资者服务,离专业化的投资,取代交易员的角度,尚有较大的差距。
产生这种差距的原因是国内量化投资处于初步发展阶段,其研究和教学方面正处于研究和探索阶段。目前设置的量化投资专业或方向的国内院校只有上海财经大学的金融工程与量化投资专业,课程设置和教学目标等各方面都处于探索过程中。其他高校更多的是偏向金融工程方向,虽然与量化投资相似,但仍存在较大的差异:金融工程主要偏向理论方面,如注重资产定价和风险管理等理论;而量化投资更偏向实务,注重投资策略,需要深入结合统计和计算机知识。
课程建设方面,国内真正开设量化投资方面课程的院校也非常罕见,更多的是在统计或金融等专业课程,结合金融和计算机知识,涉及量化投资的相关内容,而没有专门的课程对量化投资及其实践进行系统性研究。
在国内大量需求的背景下,有必要开设《量化投资实践》课程,从而弥补理论与实践的空缺。毫无疑问,量化投资实践注重计算机的结合,通过自动化编程对策略进行分析。因此,《量化投资实践》课程更注重实践,具体以软件为媒介,如以Matlab、R或Python等量化投资工具,构建投资策略进行分析,究竟选择何种软件作为教学工具,下面从三个角度进行探讨。
第一,从经济的角度来看。Matlab是收费版本(学生版大概500元左右,教育版大概30万以上),R语言和Python是免费版本。由此而衍生相关问题。工具箱或包的维护问题。收费版本就是每年运用时需要一定的成本,由此衍生出对应的工具箱和函数,有专业的人员进行维护和更新,如Trading toolbox工具箱,开发虽然比较晚,但总体来看会越来越完善;免费版本及相關工具包是免费的,对应的函数更多是个人或组织无偿提供维护或更新,包的质量也良莠不齐,如R语言以quantstrat为核心的系列包,主要从统计的角度,开发比较早,整体来看算是量化中最完善的系统和框架,但随着这些开发者已经进入到量化投资的岗位中去,包的免费开发和维护频率必然会越来越低。Python开发的包更多是从工程师的角度,与C语言结构类似,但省略了指针等问题带来的烦恼,开发的工具包如numpy、scipy、pandas和matplotlib等,开发的频率和维护与R语言一样,需要看开发者自身情况了。
同时带来的还有系统性的学习问题。收费版本,必然是顾客至上,matlab可以从官网获取系统性的学习资料,还有各国语言的系统性资料,学习过程中碰到问题,甚至还可以向在线客服或邮箱发邮件咨询;免费版本不用说,会给出一些demo之类的案例供读者分享已经是很不错了,或者会给出简单的学习资料已经算很走运了,深入的学习,别无他途,只能靠自我仔细分析函数的理论基础和用法,这也是学习曲线陡峭的根本原因。如R语言的quantstrat系统包学习资料较少,除了自带的demo,网上很少有详细且系统的学习资料。学习过程中,只能按照demo不断去测试。
第二,量化框架的系统性。系统性的量化框架搭建,其实更多的是程序员的工作,对于投资者特别是个体投资者而言,没必要去搭建这样的系统,最好已经有比较成熟的框架模板,基于此开发策略就行了。这个模板需要包括数据获取、数据整理、策略构建、绩效评价等各个框架。Matlab在量化方面,近来年正在紧锣密鼓跟进,比如已经开发和正在完善中的Trading Toolbox,功能逐渐强大,python有比较多的回测包如zipline和backtrader等,但都是分散性的工具且功能有限,最精彩和系统性的框架还属于R语言的quantstrat等工具包组成的系统。
最后,策略及其绩效分析。策略构建的过程中,需要涉及到具体的统计分析,因此创意的策略及思路,需要信赖强大的统计功能。R语言本来就是为统计而开发的,matlab统计功能类似,但语法相对比R复杂。Python的统计功能就相对较差,工具包的数量和统计的功能都不如R强大。
综合考虑起来,本课程比较好的选择是以R语言为量化投资工具进行研究。对应的先修课程为《证券投资分析》、《金融时间序列分析》、《统计学》、《多元统计分析》、《金融工程》和《R语言基础》等。
《量化投资实践》课程适合统计学科和金融学科相关专业必修和选修,具体如统计学、应用统计学、金融学、投资学和金融工程等专业。
在此基础上设定教学目标,具体通过本课程的学习,能够掌握金融数据的处理及分析,在掌握技术性投资理论基础上,利用R语言构建量化投资策略,对历史数据进行回测,而且能够进一步对策略进行优化,从而得到最优结果。同时在掌握多因子选股理论基础上,会选取指标数据,并编程进行主成分和多因子分析,根据因子得分结果对股票进行筛选构建股票池。
在先修课程和教学目标确定好之后,对应的教学内容总共分为五个章节,具体如下:
第一章:数据篇。介绍利用R语言通过不同的方法获取不同来源的数据并对数据的质量进行相关比较分析。具体利用Quantmod工具包、网络爬虫、通达信软件转换等不同的方式,获取股票数据和对应的财务指标数据。第二章:投资基本分析与策略。包括通达信的相关选股功能利用R语言实现,进一步介绍时间序列相关模型在投资中的运用和简单策略分析。具体有收益率的相关分析、板块指数排行榜分析、中金股和汇金股分析,并结合时间序列单位根和协整方法对买卖机会进行简单的判别和分析。第三章:详细量化投资回测系统。具体介绍R语言中quantstrat与PortfolioAnalytics为主的工具包系统。如何利用此系列工具包构建策略,从增加指标、增加交易信号和增加交易规则等各方面进行详细研究,在此基础上构建量化投资策略进行回测及对策略进行优化的过程。第四章:系统性量化投资案例。具体利用第四章的框架,构建经典和前沿的策略,比如趋势策略、均值反转策略、人工神经网络策略、支持向量机策略和套利策略。这些策略需要技术性投资知识和机器学习知识,建议学生用自学机器学习相关内容,特别是机器学习的软件实现过程。第五章:实盘交易平台及策略。主要介绍基于Java的量化投资实盘系统,如何基于实盘系统进行自动化交易。
总体而言,通过《量化投资实践》系统性的学习,使学生能够在掌握金融学理论的基础上,结合计算机软件构建量化投资策略,从而尽量与实践接轨。
参考文献:
[1]杜红军.金融学专业《量化投资》课程建设思考[J].教育教學论坛,2017,(49):69-72.
[2]赵周华.金融类专业开设“量化投资”课程的必要性和可行性分析[J].当代教育理论与实践,2016,8(12):74-76.
[3]高祥宝.量化投资创新性实验教学探索[J].实验室研究与探索,2016,35(8):281-284.
[4]高志.金融工程专业人才培养本科《量化投资实验》教学设计研究[J].经济研究导刊,2014,(18):61-62.