01 引言
本公众号原名为“CuteHand”(智能助手),后来在Python和金融方面的文章分享多了,就更名为“Python金融量化”,致力于分享Python在金融量化领域的应用,尤其是股票量化投资。
随着Python编程语言的流行和普及,越来越多人对如何应用Python做金融数据分析和量化交易充满兴趣。但是不少人对量化投资本身存在一定的误解或认识不清,有的人过于异想天开,认为可以躺着挣钱(怕是只有岛国老师吧);有的人则因循守旧,认为没啥卵用;也有的人盲目追求模型的复杂性,在编程和数学中迷失了方向。
简单理解,量化投资就是利用计算机科技并采用一定的数学模型去实现投资理念、实现投资策略的过程(丁鹏)。所以量化投资只是一种工具,只是用数量化的方法去实践投资理念,交易的本质并没有发生变化。量化投资的优势在于提高了我们分析的广度和深度,通过历史回测获取概率优势,同时自动交易过程可以规避人性中的诸多弱点。随着大数据和人工智能的发展,量化投资将成为市场的主流投资工具,并且将与传统的基本面分析和技术分析深度结合。
那么量化投资应该如何系统的学习呢?网上关于Python和量化(Quant)的资源汗牛充栋,十分庞杂,让很多踏入这一领域的人不知所措。那些已经掌握了Python编程基础的人,却不知如何切入量化的实际场景;而那些具备一定金融基础和策略思路的人,却不知如何使用Python来实现策略。因此,本文主要结合个人经验和网上公开资料,为大家分享Python和量化投资的学习资源,由于精力和关注度有限,经供参考,欢迎大家补充和分享。
02 量化资源分享
量化可以简单分为数据管理、策略分析和策略执行三个模块,数据是基础,策略分析是核心,其中策略自动化执行(算法交易)在国内由于政策限制实施起来比较麻烦。从Python的角度看,数据层往下分解,要学习的模块主要有Pandas、Numpy、tushare、pandas_datareader以及一些爬虫库等。策略层往下分解,要掌握的基础工具包括Pandas、matplotlib、scikit-learn、TA-lib、statsmodels等等。当然,在学习上述金融量化常用库前,系统的掌握Python编程基础是很有必要的。从策略的角度看,光会玩Python是远远不够的,必须有自己的策略思路和逻辑。那么策略的灵感来自哪里?除了自身实践总结外,各种量化平台、论坛、博客和学术期刊可能会提供一定的借鉴参考。下面将围绕Python编程、数据源、量化平台、策略来源等方面分享相关的学习资源。
01 Python编程
1、搭建Python环境
(1)Anaconda :
推荐使用。一直使用其自带的Jupyter Notebook来做策略分析和写公众号文章。
(2)Pycharm :用的人也很多,但个人没用过。
2、入门学习
(1)廖雪峰官方网站:
(2)菜鸟教程:
(3)GitHub项目:
https://github.com/goodchinas/pyquant
GitHub上的一个项目,notebook格式,从入门到numpy、pandas、matplot等各种库的降解和练习,非常适合新手入门。
3、高阶学习书籍
(1)Python for Finance,2014,Yves Hilpisch中文版:Python金融大数据分析,人民邮电出版社
(2)Mastering Python for Finance,2015,James Ma Weiming
(3)Personal Finance with Python,2018,Max Humber
(4)Python for Finance,2017,Yuxing Yan
(5)Derivatives Analytics with Python,2015,Yves Hilpisch
(6)QuantEcon Lectures,2019,Thomas J. Sargent and John Stachurski
(7)量化投资以Python为工具,2017,蔡立耑
(8)零起点Python大数据与量化交易,2017,何海群(9)量化交易之路用Python做股票量化分析,2017,阿布
02量化数据源
金融量化数据源主要有三种:一是大数据网站,通常都是收费的,一般只有日线级数据;二是专业金融数据公司,如通联,万德,收费价格高但比较稳定;三是开源数据模块库,如Tushare,pandas-datareader,ccxt数字货币等,github上还有很多不一一列举。
Python开源数据
(1)TuShare pro :
中文财经数据接口包,有积分限制。
需注册获取token:
https://tushare.pro/register?reg=218422
(2)BaoStock :
与tushare类似,主要提供国内股票行情数据、公司基本面和宏观数据
(3)Quandl :https://www.quandl.com/
国际金融和经济数据。
(4)pandas_datareader:
从pandas中独立出来的数据开源库,丰富的数据源,包括美股、A股、宏观数据等
(5)yfinance:https://pypi.org/project/yfinance/
雅虎财经数据api的修复。
(6)ccxt:https://github.com/ccxt/ccxt
python数字货币开源接口
其他数据源
(1)通达信 (免费)
(2)聚宽:jqdatasdk(免费)
(3)新浪、雅虎、东方财富网(免费)
(4)Wind资讯-经济数据库(收费)
(5)东方财富 Choice金融数据研究终端(收费)
(6)同花顺金融数据终端 (大部分可以免费导出)
03 在线量化平台和开源框架
平台之间大同小异,可以重点关注各大平台的策略大赛(练手)、社区(借鉴参考优秀项目)和学院(系统学习量化知识框架)板块。
国内平台(排名不分先后)
(1)BigQuant :https://bigquant.com/
主打人工智能量化平台,社区和学院提供了较丰富的资源。
(2)聚宽 :
https://www.joinquant.com/
免费量化数据、投研工具、量化学习体系
(3)优矿 :https://uqer.io/
主打大数据时代的智能量化平台,特色是深度报告、量化学堂和量化社区
(4)万矿 :
https://www.windquant.com/
金融大数据、策略研究和数据可视化,网站的社区、学院和案例提供了丰富的学习资源
(5)Ricequant :https://www.ricequant.com/welcome/
涵盖金融数据、投资组合管理与风险分析、量化投研交易模块
(6)掘金量化 :https://www.myquant.cn/
(7)Factors :
http://factors.chinascope.com/ 专注于多因子分析,界面操作,黑盒子。
国外量化平台:
国外量化平台非常多,只列两个。
(1)Quantopian :https://www.quantopian.com/posts
比较知名的平台,旗下有量化三大件:pyFolio,zipline,alphalens
(2)Quantstart:https://www.quantstart.com/
平台文章提供了构建自己量化交易系统的思路框架
开源框架(实现本地化)
一般是直接在终端(cmd)上使用pip install xxx(库名)进行安装,有些可能需要下载安装包离线安装。(1)Zipline – 一个Python的回测框架(很难安装)(2)vnpy – 基于python的开源交易平台开发框架(3)easytrader – 进行自动的程序化股票交易
(4)pyalgotrade – 一个Python的事件驱动回测框架(5)quantmod – 量化金融建模
(6)backtrader -Python量化回测框架
04 策略来源
(一)量化投资专业网站、博客、论坛
(1)ARQ: https://www.aqr.com/
(2)Quantivity:https://quantivity.wordpress.com/page/2/
(3)QuantLib:http://www.implementingquantlib.com/
(4)NuclearPhynance: http://www.nuclearphynance.com/
(5)QuantNet Community:https://quantnet.com/
(6)Udacity :https://www.udacity.com/course/machine-learning-for-trading–ud501
(7)Quant At Risk :http://www.quantatrisk.com/
(8)经管之家量化投资板块:
https://bbs.pinggu.org/forum-2166-1.html
(9)知乎 – 宽客(Quant):
https://bbs.pinggu.org/forum-2166-1.html
(10)知乎 – 量化交易:
(11)GitHub : https://github.com/
(12)FMZ发明者量化交易平台: https://www.fmz.com/bbs
(二)量化投资书籍:
如果完全不懂金融投资理论,就谈量化投资,很容易流于形式,画出来漂亮的图表和策略,也就能忽悠一下外行而已。一直强调Python只是工具,不要舍本逐末,量化投资核心是策略和思路,而策略的来源需要一定的统计和投资学的积累与沉淀。
(1)打好经济学基础,推荐教材:曼昆的宏微观经济学、米什金的《货币金融学》、罗斯《公司理财》、博迪的《投资学》和《金融工程》。《投资学》介绍了一些投资学上的基础知识和基本模型。现代投资学框架,包括资产组合理论(均值-方差模型)、资本资产定价模型(CAPM)、套利定价理论(APT)、行为金融学等(除了正规教材外,推荐索罗斯的《金融炼金术》)。
(2)计量经济学,主要学习时间序列分析、多元统计线性回归,可参考《计量经济学导论:现代观点》,结合Python的statsmodels、scipy、sklearn模块进行学习。
(3)多因子模型:首先应该阅读砝码三因子的PAPER,公众号也有两篇推文。此外,Barra风险模型(多因子模型扩展)是现在非常主流的量化模型,有很多可以参考的资料,如《Barra Risk Model Handbook(US)》。
(4)投资相关书籍
《打开量化投资的黑箱》 里什·纳兰《宽客》[美] 斯科特·帕特森(Scott Patterson)
《解读量化投资:西蒙斯用公式打败市场的故事》 忻海《漫步华尔街》麦基尔
《海龟交易法则》柯蒂斯·费思
《交易策略评估与最佳化》罗伯特·帕多
《统计套利》 安德鲁·波尔
《信号与噪声》纳特•西尔弗
《量化投资—策略与技术》 丁鹏
《量化投资策略:如何实现超额收益Alpha》 吴冲锋
《以交易为生》 埃尔德
《高级技术分析》布鲁斯·巴布科克
《积极型投资组合管理》格里纳德,卡恩
《金融计量学:从初级到高级建模技术》 斯维特洛扎
《量化交易如何建立自己的算法交易事业》欧内斯特·陈
《聪明的投资者》 本杰明·格雷厄姆
《期权、期货和其他衍生品》 约翰·赫尔
注:金融投资书籍及金融史,可在公众号里分别回复“金融书籍”、“金融历史”获取。
(三)学术期刊
国外期刊金融三大顶级期刊(需要理论功底比较强,不然看起来很费力):
Journal of Finance、
Journal of Financial Economics、
Review of Financial Studies
其他金融投资期刊:
Journal of Accounting and Economics、Journal of Financial and Quantitative Analysis、Financial Analysts 、Journal Financial Management、Journal of Empirical Finance、Quantitative Finance、Journal of Alternative Investments、Journal of Fixed Income、Journal of Investing、Journal of Portfolio Management、Journal of Trading、Review of Asset Pricing Studies
国内期刊:国内专门讨论量化投资的学术文章比较少,可关注经济研究、经济学(季刊)、金融研究、管理世界、会计研究、投资研究。
03 结语
量化只是一种工具或手段,量化投资则是目前比较流行的一种交易分析框架,需要掌握的知识体系还真比较庞杂。值得关注的是,证券投资的专业性远没有工科类的专业性那么可靠。比如说,你拥有制造汽车的专业技能,就能造出一部汽车;但当你掌握了证券投资的专业知识,却不一定能在股票市场上赚到钱。一个不难观察到的现象是,很多金融专业人士在股票投资这个领域不一定能干出好的成绩,而一些非金融背景的人却表现优异。这可能与证券投资的非逻辑性(艺术而不是科学)有关,交易市场的本质是零和博弈(不考虑手续费等),尤其是期货交易。但是不得不说这已经是个对专业要求越来越高的行当,因为在高收入的引诱下,各种高精尖人才都挤破脑袋往这个行业里钻。尤其是近几年,大型券商和基金招人连清北复交也不怎么鸟了,指定北美前五十高校,玩的模型和技术也越来越花了。尽管专业的金融背景只是投资成功的必要条件(非充分条件),但是如果连基本的经济金融基础也没有,要想与市场上的其他人玩,成为韭菜的概率就更高了。