system: [SYSTEM]

user: 3. 量化交易的课程设计 结合量化交易对知识的要求以及量化交易的特点，本文从课程的受众、教学目标、前提知识要求、课程内容，以及考核方式五个方面探讨量化交易课程的设置。 3.1. 课程受众 量化交易的蓬勃发展使得参与证券交易的人群不局限于金融专业相关的学生，还包括信息系统、计算机、数学、物理等专业人才，即一切既懂数学模型又懂计算机编程技术的人才。 首先，金融、会计、数量经济等相关专业的学生需要懂量化交易。这类专业的学生毕业后很可能进入到金融行业，而金融行业技术含量最高的工作就是金融产品设计。现代的金融产品设计离不开量化交易，如果不懂量化交易，很难跟上金融行业发展的步伐，被其他专业毕业生比下去。 其次，信息管理与信息系统、计算机科学技术专业的学生可以扩展技术的应用范围。他们已经具备了实施信息系统的能力，而且多数都具备统计概率等数学知识，具备良好的数学素养。他们将比金融专业毕业生在量化交易领域更具备竞争力。学习了量化交易课程，将拓展他们毕业择业的方向。 最后，数学、物理等理科专业，以及其他工科专业对金融领域感兴趣的学生都可以通过学习量化交易课程而有机会进入到金融行业中来。数学、物理等理科专业有很多创新性的模型可以引入到交易模型的建设中来，增加交易模型的适应性，提高投资收益率。 3.2. 教学目标 量化交易课程旨在系统地介绍量化交易的概念、价值、基本理论和方法，以及计算机的实现过程，掌握如何有效利用技术分析模型与基本面分析模型构建一套完整的量化交易策略，认识到交易风险的重要性及控制方法，以及掌握利用计算机编程语言实现交易策略的自动化执行功能。 课程内容主要包括量化交易基本概念、量化交易模型、量化交易的模型评估、量化交易的风险与控制、量化交易系统搭建等。通过课程的教学，使学生对量化交易在当前金融、经济社会中的应用和前景有较为广泛而深刻的了解；了解金融市场及交易标的，认识金融标的交易的流程，以及交易风险；掌握量化交易实施的编程工具；掌握量化交易的建模思想、方法与模型；并具备一定的综合利用量化交易模型、编程工具实现交易系统的能力。 3.3. 前提知识要求 一个量化交易系统一般按照如下步骤实施。首先，量化交易员建立一种可能盈利的交易策略，用数学模型把它表达出来；然后，交易员开发计算机程序把数学模型应用到历史交易数据中去，进行回测和模型参数的优化。如果结果令人满意，那么该程序就被改造成一个交易系统在真实的市场上进行交易。 从量化交易的定义和实施步骤中可以看出，要想成功的实施一个量化交易系统，至少需要三方面的知识储备——数学(尤其是概率统计学、机器学习)、证券投资学和现代计算机科学技术。在量化交易中，常用的数学模型包括回归模型、时间序列模型等统计模型，以及分类模型、聚类模型、文本挖掘、深度学习、强化学习等机器学习模型。因此，学生需要在以上数学知识方面具备一定的积累。在证券投资学知识方面，学生需要了解典型投资品种(例如股票、期货、期权)的特点和基本的投资理论，例如投资组合、投资风险、技术分析、基本面分析等。计算机技术主要用来将交易策略落地，让计算机自动执行交易。因此，学生需要掌握常用的计算机编程语言，例如Python、C++等。此外还需要了解数据存储技术来存储时间序列数据，例如MySql、MongoDB、hdf5等，以及可视化技术来展示回测和交易结果。 按照知识重要程度排序，从量化交易课程的学习角度来看，计算机编程技术最重要，因为不具备编程知识，学生将无法在课程结束时完整的落地一个能够正常运行的量化交易系统，其次是数学知识，最后是证券投资学知识。而从长期量化交易系统的成功来看，数学知识显然最为重要，因为决定量化交易系统的盈利率的关键是交易策略(即数学模型)的设计，其次是计算机编程技术，最后是证券投资学知识。 3.4. 课程内容设计 依据量化交易实现的流程，本文提出量化交易的课程内容可以划分成三个模块，分别是量化交易基础、量化交易策略开发、量化交易实践，每个模块包含若干相关内容，如图1所示。 图1. 《量化交易》课程内容设计方案 3.4.1. 量化交易基础 量化交易是一种证券投资自动化执行的方法，因此需要金融学基本理论与计算机编程的基础准备。量化交易课程不可能把金融学的所有知识都涵盖，而是需要讲授对于量化交易最直接支持的证券投资的基本知识与理论。首先，需要讲授当前量化交易能够应用的金融市场，包括股票市场、衍生品市场、外汇市场等。每个市场中交易标的不同、交易规则差异较大。例如，中国的股票市场施行T + 1制度并且只能做多股票，而期货市场则施行T + 0制度，允许做多与做空。因此，需要让学生掌握每个市场上交易的具体特点，以便在后续开发有针对性的量化交易策略。其次，因为量化交易的落脚点在交易的执行，所以，需要让学生掌握交易的基本概念与知识，包括建仓、平仓、持仓、头寸、交易量、价格类型、交易指令等。 量化交易的策略编制和系统实现都需要计算机编程语言的支持。目前，有多种编程语言可以用于量化交易的开发，包括Python、Go、C++、Java、R、Matlab等。量化交易课程可以选择Python语言作为讲授的编程语言。相对于其他语言，Python具有下述优势。首先，Python的语法简洁、易于掌握与实践。大部分学生虽然有编程基础，但是普遍还会对编程怀有畏惧的心理。Python易于上手的特点能够帮助学生树立信心，削弱抵触的情绪。其次，Python的生态环境非常丰富，众多开发人员贡献的包(packages)能够实现对从数据获取、数据加工处理、统计建模、机器学习，到策略回测等量化交易研究的全流程的覆盖。最后，目前市面上很多量化工具或平台，例如国外的Quantopian，国内的优矿、掘金量化、vn.py等均是以Python作为开发环境。学生在掌握该语言后可以很方便的从量化交易的课程学习环境过渡到进行实盘/模拟盘的真实交易环境中，最小化转换成本。这一模块将着重讲述Python的数据分析包，例如pandas、numpy、scipy、mplfinance等在量化投资分析中的使用方法。 3.4.2. 量化交易策略开发 交易策略是量化交易的核心，识别交易风险与控制是影响到交易策略效果的重要因素，回测与评估是检验交易策略的重要方法，因此，这三个方面就构成了量化交易策略开发模块的核心内容。 量化交易策略是用数理模型构建交易逻辑。这一部分内容讲授两种当前流行的构建交易策略的方法：理论驱动型的交易模型与数据驱动型的交易模型。理论驱动型的交易模型将围绕着趋势型、均值回归型，以及多因子模型三类交易模型的构建展开。针对趋势型交易模型的讲授将以技术指标(technical indicators)为核心，讲述典型技术指标的概念以及在趋势识别、趋势强度判断、市场波动性衡量等方面的应用。针对均值回归型模型的讲授利用时间序列的方法，讲述如何通过判断多个交易产品价格序列之间的相关性，以识别交易机会的方法。这一部分将重点强调伪回归的危害，以及衡量价格序列之间相关性的正确步骤。针对多因子模型的讲授将澄清多因子的概念，讲述多因子的构建方法，以及当前常用的多因子类型。 数据驱动型的交易模型将讲授如何从交易数据本身开发交易模型。金融交易活跃、交易数据量庞大，以中国的期货交易为例，每个交易日的数据量都达到千万条的级别，因此是机器学习和数据挖掘应用的良好领域。机器学习的方法也被当今不少量化基金公司所青睐。这一部分的讲授将会使得学生掌握量化交易策略开发的最前沿的知识与方法。该部分的讲授内容将围绕着机器学习领域前沿的集成学习方法，例如随机森林，以及以神经网络为基础的深度学习在交易模式与规律识别方面的应用。 交易风险与控制是完善量化交易模型的重要方面。只有控制好风险水平才能保证所开发的量化交易策略在竞争激烈的交易市场中存活。该部分内容将讲授与交易相关的主要风险类型，包括模型风险、执行风险、技术风险、系统性风险等 [ 10 ]，以及如何从交易模型层面和技术层面降低这些风险对所开发的量化交易系统的危害。 量化交易优于传统交易的一个主要方面在于所开发的交易策略经受过大量历史交易数据的检验。因此，策略回测与评估是量化交易策略开发的一个重要环节。该部分内容将首先向学生讲授系统性评价交易策略的方法，包括盈利性、风险度，以及针对每笔交易效果的评估方法。其次，需要让学生建立起样本内绩效与样本外绩效的概念。虽然历史数据能够检验所开发策略的优劣，但是由于金融交易市场蕴含的极大不确定性，历史数据检验的效果并不能完全反映开发的策略在未来交易中的绩效。因此，需要划分样本数据，让学生了解一部分数据用来优化策略模型参数，另外一部分数据用来检验策略的绩效，从而避免过度拟合的出现。最后，将向学生讲授将所开发的策略模型落实到计算机程序中的方法。目前，市面上有不少用Python语言开发的开源量化交易回测框架。课程可以选择其中一个框架，让学生掌握将交易策略落地的方法。例如，PyAlgoTrade、Backtrader框架结构清晰、回测功能较为完善，其设计思路为不少其他回测框架所借鉴。 3.4.3. 量化交易实践 量化交易策略开发的下一个环节就是将其应用到实盘/模拟盘中，以参与市场交易。该部分讲授实盘交易的运转方式、如何自行搭建交易系统，以及需要在实盘交易中注意的事项。 实盘交易一般是通过连接交易接口(API)来实现。目前，中国期货市场的交易接口最为完善。该接口的全称是“综合交易平台”(Comprehensive Transaction Platform)，简称CTP接口。课程将以该接口为例，向学生讲授自己搭建的交易系统如何与交易所系统、期货公司的柜台系统之间的通信方式，以让学生了解交易指令是如何在真实环境中执行的。 在此基础上，课程将向学生讲授自行搭建交易系统的构成，除了最为核心的交易策略模块之外，还需要搭建交易数据获取、交易指令的执行、交易信息的查询等模块，以及这些模块之间如何实现信息的传递。目前，国内有不少量化平台可以帮助投资者迅速构建自己的交易系统。这些平台封装了交易系统组成模块之间的信息传递，以及交易系统与交易所、券商柜台系统之间的信息传递，可以让投资者专注于交易策略的开发。在学生理解了交易系统的构成之后，课程可以选择这样的平台，帮助学生快速过渡到实盘/模拟盘的交易。 3.5. 考核方式设计 从前面的课程内容设计可以看到，量化交易是一门实践性较强的课程。因此，课程考核方式也应当不同于传统证券投资学关注在知识点的理解与运用，而是聚焦在考察学生综合运用知识开发交易策略，将策略应用到实践中的能力。为此，课程的考核可以依照量化交易的步骤分成初级、中级、高级三个层次展开。 初级考核的重点在于检验学生对量化交易全部环节的理解与掌握状况，可以通过设置专门的题目考察学生在数据获取与处理、构建交易模型、回测建立与运行等方面的掌握程度。例如，在各个部分给定明确任务和目标的情况下，学生能够完成这些目标即可以通过考核。中级考核的重点在于考察学生自主研究建立交易模型、开发交易策略的能力。这一层级的考核在于检验学生的研究能力和创新能力，因此可以设置开放性的题目，让学生通过理论和机器学习等方法开发交易策略，能够取得较好的回测效果即可以通过考核。高级考核重点关注学生利用量化交易系统在真实交易环境中的盈利能力和风险控制能力。在时间允许的情况下，可以考虑采用参加量化交易比赛的方式，通过设置综合性的评价体系来检验学生对量化交易的实际应用能力。