1. 专栏目标
量化交易以计算机强大运算能力为基础,运用数据建模、统计学分析、程序设计等工具从历史数据中得到大概率下获利的交易策略。未来量化交易必定是金融市场的一大发展趋势,Python 作为金融行业的标准编程语言广泛应用在量化交易领域,它与量化交易堪称完美组合。初学者进阶量化交易应当是个循序渐进的过程,基于此,笔者将量化交易学习分为基础阶段、中级阶段和高级阶段:
-
基础阶段侧重于对量化交易的理解及各种基础工具的应用
-
中级阶段侧重于掌握各种经典的技术指标及基础交易策略的实现
-
高级阶段侧重于从实战层面去设计量化交易系统,开发选股、择时、风险控制等策略模块
本专栏中旨在将基础和中级阶段内容整体结合,以股票为交易标的物,以搭建自己的量化交易为学习场景,从理解量化交易开始,逐步掌握基础工具、实现交易策略,为高级阶段开发实战型量化交易系统奠定基础。课程在功能实现过程中讲解技术内容,由浅入深、由技术到思维地为读者剖析量化交易的难点,不仅达到学习的目标,更为今后从事量化交易投资打下坚实的基础。
2. 学习内容
1、深入理解量化交易的本质、发展、优势、意义和过程。
2、掌握基础工具的使用方法,如 Python、Pandas、NumPy、Matplotlib、TA-Lib、Tushare、Statsmodels 和应用数学等。
3、掌握常用的金融交易技术指标实现方法,如 K 线、均线、成交量、KDJ 等。通过学习,我们能够绘制出股票行情软件中的分析界面以捕捉个股动向,效果展示如下图所示:
4、掌握常用的量化交易策略的实现方法,如择时、选股、风险控制、度量等。通过学习,我们可以制定量化交易策略以及度量策略效果,应用交易策略来辅助股票交易,效果展示如下图所示:
5、掌握量化交易系统人机交互的实现方法,以制作自己的量化交易工具为背景将本专栏知识点贯穿汇总,呈现整体的交易工具雏形,效果展示如下图所示:
3. 适合人群
本专栏由初级入门为起点进阶量化交易,仅需读者具备 Python 编程基础即可。专栏中会从基础开始由浅入深讲解所涉及的知识点,因此读者无须担心专栏内容的学习难度,更多的是要明确自己的学习目的,本专栏适合以下人群:
-
对金融量化交易具有浓厚兴趣的人群
-
计划开发属于自己的量化交易系统的人群
-
准备从事金融量化交易领域投资的人群
4. 学习目的
学习量化交易这门课程有什么作用呢?首先 Python 只是一门技术,最终还是要将这门技术应用到一个行业中的,而量化交易这个行业目前正处于快速发展阶段,对人才的需求非常大,特别是对具备一定量化交易背景的人才,本专栏整体的学习可以让大家对量化交易这个领域有一个深入的了解,对于准备跨入量化交易领域的同学有所帮助。另外本专栏会涉及大数据分析、数学建模一些思想,以及一些 Python 第三方库的讲解和编程教学,这些技术是可以在相关的领域去应用的,对于准备从事大数据分析和人工智能领域的同学同样有所启迪。最重要的是对于和我一样喜欢股票投资、期货投资这类交易的金融爱好者来说,将量化交易辅助主观交易,通过设计一些股票或者期货的交易策略,能够在金融市场上有所收获,为自己拓宽投资理财的渠道和方法。
5. 大纲介绍
本专栏大纲以量化交易的整体流程结合由浅入深的学习过程进行设计和制定。
量化交易的整体流程如下图所示:
首先是把历史行情、基本面信息、新闻资讯等数据进行初步清洗和处理,而后输入到量化模型中,量化模型包括了数学建模、编程设计等工具所形成的交易策略,通过分析这些数据最终产生出交易的信号,比如买什么股、什么时候买、买多少、什么时候卖等信息。当然实际上这个过程并没有流程图显示的那么简单,这里只是让大家有个整体的概念。
分解量化模型可以看到模型是通过各种策略来实现的,常见的策略有均线策略、Alpha策略、布林带策略、海龟策略、动量策略等等,也包括自主开发的策略,不过要良心的声明下凡是公开的、用的人多的策略,基本也就不赚钱了,当然并不影响我们学习这些策略从中借鉴其中的精髓,站在巨人的肩膀上看问题。策略层再往下分解则是我们熟悉的 Python、Pandas、Matplotlib、NumPy、统计学、数学模型这些基础工具。我们会讲解Pandas、NumPy、TA-Lib 等专用库实现股票交易策略的设计,也会讲解使用 Matplotlib 库实现股票交易的可视化图形,同时在交易策略设计中会讲解数学模型、统计学相关的知识。
数据是量化策略的基础,关于数据的获取,我们会讲解使用 Tushare、Pandas 数据抓取模块来获取金融数据,也会介绍 Pandas、NumPy 库对原始数据进行规整化的处理。
为了将专栏中分散的知识点贯穿起来,最后会讲解如何制作一个简易版的量化交易小工具,希望通过这部分内容使大家能够对量化交易相关的知识有更整体的掌握。
以上是对本专栏整个大纲体系的构思。
大纲的章节内容分布如下图所示。
对于基础工具部分的学习需要声明一下,由于本专栏的主题更侧重于基础工具在实际场景的应用,因此提取基础工具在量化交易应用中的重点和难点进行针对性介绍,而对于像 Python 中常用语法、函数等使用方法的知识内容建议同学们结合网络或者书籍查阅来辅助学习。
关于 TA-Lib、Tushare 之类的工具库本身的优势即是提供简单的 API 供使用者调用,我们的讲解也是围绕着实际应用场景,在交易策略设计中进行详细介绍。
当前的交易策略各式各样、种类繁多,有的高深,有的简单,在本专栏中,笔者选择了一些典型的、有助于我们更好理解和掌握量化交易的策略进行详细讲解。
此外,为了帮助同学们更轻松地学习,笔者会结合专栏内容,陆续推出一些量化交易相关的手记,如果你有其他想要进一步了解的知识点,也欢迎踊跃留言,笔者会参考并选择性地作些补充。目前已经推出以下手记,可在相关章节进行延伸阅读。
- 管理概率==理性交易(对应第 2 节)
- 线性回归拟合股价沉浮(对应第 22 节)
- 最大回撤评价策略风险(对应第 18 节)
- 寻找最优化策略参数(对应第 19 节)
- 标记 A 股市场涨跌周期(对应第 15 节)
- Tushare Pro 接口介绍(对应第 15 节)
6. 课程环境
本专栏全部的例程都分别在 Python 2.7.5 和 Python 3.7.1 上通过调试,以适应 Python 2 和 Python 3 的学习环境,对于 Python 2.7.5 和 Python 3.7.1 之间的语法变动,我们会在对应的例程中说明,比如提示在 Python 3.7.1 中必须调用 print()
函数用于打印(注意圆括号)。
第三方库依赖于某个 Python 版本,需要在对应的 Python 版本下安装pandas、Tushare、TA-Lib、Matplotlib、Statsmodels 等工具库。我们可以使用 pip 安装包管理工具安装,也可以下载源码文件,在当前位置执行python setup.py install
安装。对于第三方库的调整笔者也会在使用时提示,比如从 Matplotlib 2.2.0 版本开始,matplotlib.finance
已经从 Matplotlib 中剥离了,需要单独安装 mpl_finance
这个库(pip install mpl_finance
)。
当然,建议最好是安装 Anaconda 来管理 Python 环境。Anaconda 具有跨平台、包管理、环境管理的特点,无论在平台兼容性还是库版本兼容性上都更有保证。大家可以参考笔者在慕课网手记板块的文章《Python基础系列讲解-安装步骤》来搭建开发环境。