前言
期货市场是一个有着悠久历史的金融市场,早在几百年前,芝加哥一带的农民聚集在一起,商量一个有中央结算性质的交易场所,最终成立了芝加哥期货交易所。后来随着电子计算机技术的发展,期货交易所日益电子化,交易更为便捷,交易大厅的交易员也逐渐演变成计算机前的量化交易员和程序员。
相比期货交易,量化交易是一个更新鲜的概念。传统的期货交易有很多技术分析的书籍,如经典的《日本蜡烛图技术》《期货市场技术分析》等,一般更着重于使用技术图表分析K线形态,从而给交易员提升买卖点位,辅助交易员主观交易。
然而,量化交易不大一样,或者说是期货交易的升华。量化交易更多是运用现代统计学模型,包括机器学习、深度学习等模型来预测市场的价格变化,从而编写计算机程序,实现自动交易。更广泛地说,投资的整个过程,包括品种的选择、价格变化的预测、投资组合权重的分配、最小化交易成本地下单等,都可以使用相应的量化模型来分析,并且提供一套系统性、科学性的测试方法。因此,量化交易跟传统意义上辅助交易员下单的技术分析还是很不一样的。
对于一些基本面信息,本质上也可以融入量化模型中,因此,量化分析和基本面分析并不矛盾。并且现在市场上也有很多期货和股票方面的基本面量化的书籍供读者参考翻阅。
目前,国内期货市场蓬勃发展,量化交易方兴未艾。然而,目前国内很多私募量化基金交易的期货策略都是传统的程序化交易方法,与国外基于统计分析、机器学习模型的方法相比存在较大差距。然而国内却没有有关方面的书籍,即使有也是在股票投资方面,期货方面仍属空白。因考虑到广大理工科学生和科研人员对金融量化交易有着极大的热情,且本人有国内外期货量化交易多年的经验,于是写作了本书。
本书特色
1.国内率先系统性运用统计和机器学习模型研究中国期货市场的书
国外用机器学习模型研究股票与期货市场的书确实存在,但比较新,如《Machine Trading: Deploying Computer Algorithms to Conquer the Markets》,主要运用Matlab,分析的主要是美国股票市场日线数据。本书分析的是国内期货市场,使用的是分笔数据和5分钟K线数据,频率上要比市场上同类书籍高出不少。另外本书的模型都是本人实战多年的成果,有着良好的实盘交易记录,并且还给出了研究用的R代码和实盘用的C++代码,方便读者学习。能做到这点的,市面上无论中国还是美国,以本人的经验看,尚不存在。
2.理论结合实际,由浅入深,娓娓道来
本书从最基本的分笔数据出发,如从如何获得数据、如何合成K线等,到最后的C++实盘交易程序,应该说量化交易的内容都有所涵盖。从最基本的基于买卖规则的策略,到最后基于深度学习、增强学习的策略都有所涉及,而且有详细的R和C++代码,方便大家自主学习。本人也有着丰富的国内外量化交易经验,不仅在美国对冲基金公司全职工作过,而且也在国内多家期货公司和私募基金工作过。本书里面的代码经历过多年实盘交易的检验,另外也会穿插介绍本人的职场经历,可以供各位参考。
3.覆盖高频与中低频交易
绝大多数的量化交易书籍都不会涉及高频交易,本书却给出了研究高频交易模型的框架,同时检验了多种经典的机器学习预测模型。一般来说,相对于中低频交易,高频交易数据量更大,就可以训练更复杂的模型,因此本书也探讨了很多非线性的模型。但对于中低频交易的训练,还是以传统线性模型为主。
本书内容及体系结构
第1章 期货基本策略概要。简单介绍了目前国内流行的股票对冲、商品CTA、高频交易等策略,以及常见的程序化交易平台,对比了R、Python、Matlab等常见的分析语言,并且对全书进行了概括性的介绍,结合本人的经历发表了对国内量化交易市场的看法。
第2章 数据处理。详细介绍了国内商品期货分笔数据的数据结构、获取的方式、处理的方法等,以及如何从分笔数据合成K线数据,如何提取主力合约,如何编写更高效率的处理程序等。其中包括R与C++相结合的编程方式,如何在R里面编译及调用C++程序,如何使用多核并行计算等,而且有详细的R与C++代码,为以后的建模做准备。
第3章 预测因子。任何模型本质上都是因子的组合方式。机器学习模型又被称为统计预测模型,因此里面用到的因子自然被称为预测因子,当然也有人称为特征因子。本章介绍了构造因子的方法,给出了一些常用的因子,并且还给出了测试因子的基本方法。这里的因子既有基于K线信息的因子,也有基于分笔数据的高频因子,方便各种策略使用。
第4章 基础统计模型。本章在第3章的基础上,运用一些经典的统计模型进行预测分析,并且使用了训练集、验证集和测试集的概念,严谨建模。本章使用的模型以线性模型为主,因为对于绝大多数情况,采用线性模型已经足够了。在模型测评方面,采用样本外的R2作为主要依据,这种方法跟样本内的R2和调整后的平方都不一样。
第5章 复杂统计模型与机器学习。本章讨论了更为复杂的统计模型,一般也被称为机器学习模型,包括决策树、随机森林、神经网络、深度学习等,并且对比了不同模型之间的表现。由于金融数据的高噪声、高维度特征,因此复杂的模型很多时候未必会比简单的模型更好。在中低频交易中,如果条件允许,花更多精力收集信息或许更为有效。
第6章 从预测到交易。有了预测模型之后,还要落实到交易才有意义。把预测结果转成交易信号有很多方法,本章会进行比较。当然还要结合品种的买卖价差和手续费,以及交易的频率等。对于股票配置型的策略和期货择时型的策略,会有不一样的处理方法。
第7章 策略模型深化。本章是对前面几章的总结和提炼,主要是在结果一致的情况下探讨一些提高计算速度的方法,从而提高研究效率。很多时候,量化研究过程需要很多次的搜索、迭代等运算,这会消耗大量时间。如果能提高计算速度,那么就可以大大提高研究的效率。事实上,最近神经网络、深度学习等方法重新流行起来,更多是依靠GPU等计算技术的发展。
第8章 投资组合优化。有了交易信号和资金曲线之后,下一步就是对各个策略、各个品种的投资组合进行优化工作。事实上,这部分工作也可以用量化模型来完成。与之前的统计预测、机器学习不同,这部分更多是传统的运筹优化方面的模型,如均值-方差模型、Black-Litterman模型等。本章对比不同的投资组合优化的方法,并给出测评的结果及相关的程序。
第9章 投资组合优化深入研究。本章主要介绍了风险评价策略和增强学习(近似动态规划)等在投资组合里面的应用。其中近似动态规划属于动态投资组合优化的内容。另外,本章也介绍了策略的滚动优化和动态调整,对比了滚动优化和全局最优化的结果。事实上,如果处理得当,滚动优化可以取得比全局最优更好的效果。
第10章 C++实现策略。本章主要介绍了如何把R语言转换成C++,从而实现自动交易。本章还介绍了CTP接口的基本原理,以及转换策略的基本步骤,包括处理行情数据、K线数据、计算指标、计算仓位、合并策略等。本章主要是基于Linux的C++编程,系统默认是Ubuntu 16.04 LTS,读者掌握后就能自主编写全自动交易程序了。
第11章 实盘交易管理。上一章介绍了用C++实现实盘交易的程序。事实上交易过程中其实会遇到各种各样的问题,特别是自己用C++写程序,各类错误都要自己调试改正。本章系统介绍实盘交易会遇到的各种问题,并给出相应的解决方案。
第12章 套利交易。前面介绍的都是关于投机型趋势策略。因为没有做空的限制,所以商品期货从本质上都可以交易。本章就专门讨论套利类的策略,先从最基本的跨期套利开始,然后再简单介绍一些跨品种套利。
第13章 求职与工作。前面章节讲的都是量化交易研究与技术方面的问题。现实中,我们技术人员还要去工作,无论是担任期货的资管还是从事私募证券投资基金。因此,在学习了前面的知识之后,本章有关求职与工作相关的话题,作者有些经验可以和读者们分享。
本书读者对象
- 数学、统计、信息与计算科学、计算机、金融工程等专业本科生、研究生
- 高校数理类和经管类教师和科研人员
- 证券、期货、私募证券、公募基金等量化交易相关从业人员
- 对量化交易感兴趣的各行各业人士
- 对机器学习在金融方面运用的相关人士
- 人工智能方面想从事量化交易的相关人士
- 学习R语言或C++的相关人士
- 其他对中国期货市场量化交易感兴趣的人
感谢
本书写作过程中,本人的妻子张妮洁女士正处于怀孕中,还要不断给本人写作提供各种各样的帮助。在此,本人表示对妻子衷心的祝愿。希望我的妻子能一切顺利,同时希望我们的宝宝能平安出生,成为新一代的“baby quant”。对于本书的更新和未来进展,本人会在知乎“baby quant谈量化金融”专栏里发布,敬请各位读者留意。
2018年1月
baby quant
特别说明:购买此电子书,暂无附赠二维码资源,敬请谅解。