一个量化交易系统包括四个主要部分:
策略识别:搜索策略、挖掘优势(注2)、确定交易频率。回溯测试:获取数据、分析策略性能、剔除偏差。交割系统:连接经纪商、使交易自动化、使交易成本最小化。风险管理:较优资本配置、较优赌注或凯利准则、交易心理学。
我们首先来谈谈如何识别一个交易策略。
策略识别
所有量化交易流程都肇始于一个初期研究。这个研究流程包括搜索一个胜率差策略、检验它是否适合你可能正在运作的策略组合、获取任何测试策略时所需数据、努力优化策略使其收益更高且(或)风险更低。如果你是一个“散户”交易员,一定要清楚自己的资金是否充足,以及交易成本对策略的影响。
通过各种公开数据搜索可盈利的策略实际上十分简单,并没有大家想的那么难。研究学者会定期发表理论交易结果(虽然大多为交易成本总额)。一些数量金融学主题博文也会详细讨论策略。交易期刊还会简报一下基金管理公司使用的一些策略。
你可能会问,个人与公司怎么可能愿谈他们的可盈利策略,特别是当他们知道,如果其他人“复制相同的策略”,长期而言它终将失效。原因就在于,他们通常不会透露具体的参数以及他们所使用的调参方法,而这些优化技能才是把一个表现平庸的策略调成一个回报丰厚的策略所需的关键技术。实际上,若要创建你自己的、独一无二的策略,一个较好的法子就是寻找相似的方法,尔后执行你自己的优化程序。
你所看到的很多策略都可归入均值回归交易策略、趋势跟随或动量交易策略两类。均值回归策略试图利用这么一个事实:“价格序列”(如两个关联资产的价差)存在一个长期均值,价格对均值的短期偏离终将回归。动量交易策略则试图“搭上市场趋势的顺风车”,利用投资心理和大基金结构信息在一个方向积聚动量,跟随趋势直至回归。
策略或策略集合一旦确定,现在就需要在历史数据上测试其盈利能力,这就进入了回溯测试的工作范围。
回溯测试
回溯测试的目标是提供证据,佐以证明通过以上流程所确定的策略,无论是应用于历史(训练)数据还是测试数据(注5)均可盈利。它可以反映该策略未来在“真实世界”中的预期表现。由于种种原因,回溯测试不能保证一定成功。这或许就是量化交易最为微妙之处,由于它包含了大量的偏差,我们必须尽尽力仔细审查并剔除它们。我们将讨论几种常见类型的偏差,包括先窥偏差(注6)、幸存者偏差(注7)与优化偏差(亦称“数据窥视偏差”,注8)。回溯测试中其他几个重要方面,包括历史数据的可用性与清洁度、真实交易成本及可靠回测平台上的决定。我们会在后续“交割系统”一节深入讨论交易成本。
对于历史数据,人们主要关心的问题,包括数据精度或清洁度、幸存者偏差、应对如分发红利、拆分股票等公司行为的调整。
为了开展回溯测试,我们必须使用一个软件平台。你可以选择一个专门的回测软件如Tradestation,一个数值平台如Excel或MATLAB,或者一个用Python或C完全自主实现的平台。对于Tradestation(或类似平台)、Excel或MATLAB,我不作过多介绍。我比较推崇的是创建一个内部技术栈。这么做的一个好处是可以实现回溯测试软件与执行系统的无缝集成,甚至还可以添加一些高级的统计策略。对于HFT策略,更应该使用自主实现的系统。
如果经过回测,策略的夏普比率很高且其最大资金回挫已经最小化,则可以认为它趋于无偏,下一步就是要搭建一个交割系统。
交割系统
交割系统是一个方法集合,由它来控制交易策略生成的交易列表的发送和经纪商的交割行为。事实上,交易可以半自动、甚至全自动生成,而执行机制可以手动、半自动(即“点击一次交割一项”)或者全自动。尽管如此,对于LFT策略,手动和半自动技术却比较常见;对于HFT策略,则必须创建一个全自动交割机制,由于策略和技术彼此依赖,还要经常与交易指令生成器紧密相接。
在搭建交割系统时,我们需要考虑几个关键因素:连接经纪商的接口、交易成本(包括佣金、滑动价差与价差)最小化、实时系统与回测时系统性能的差异。
在一家大型的基金管理公司,交割系统的优化通常不在量化交易员的工作范围。但是,在小点的公司或高频交易公司,交易员就是交割人,所以技术面越广越好。你要想进一家基金管理公司,一定要记住这一点。你的编程能力不说比你的统计学和计量经济学禀赋更重要,至少也同样重要!
另外一个属于交割系统的重要问题是交易成本最小化。一般地,交易成本由三部分构成:佣金(或税收)、损耗与价差。佣金是向经纪商、交易所和证券交易委员会(或类似政府监管机构)支付的费用;滑动价差是你的预期交割价位与真实交割价位的差值;价差则是待交易证券的卖出价与买入价之差。注意价差不是常数,它依赖于市场当前流动性(即买单和卖单数量)。
交易成本是决定一个策略是高夏普比率且盈利丰厚,还是低夏普比率且极不盈利的关键。根据回溯测试正确预测未来的交易成本很具有挑战性,你需要根据策略频率,及时获取带有卖出价与买入价信息的历史交易数据。为此,大型基金管理公司量化交易的整个团队都专注于交割优化。当基金管理公司需要抛售大量交易时(原因五花八门),如果向市场“倾泻”大批股票,会迅速压低价格,可能都来不及以较优价格交割。因此,纵使遭受损耗风险,基金管理公式也会选择使用算法交易,通过“打点滴”的方式向市场出单。此外,其他策略如若“捕到”这些必要性条件,也能利用市场失效(获利)。这是基金结构性套利的内容。
交割系统最后一个主要问题关系到策略的实时性能与回测性能的差异。这种差异由多种因素造成,比如我们在“回溯测试”一节已经深入讨论过的前窥偏差与较优化偏差。然而,对于有些策略,在部署之前不易测得这些偏差。这种情况对于HFT最为常见。交割系统和交易策略本身均可能存在程序错误,回溯测试时没有显现却在实时交易时出来捣乱。市场可能受到继交易策略部署后的一场政变的影响,而新的监管环境、投资者情绪与宏观经济形势的变化也均可能导致现实市场表现与回溯测试表现的差异,从而造成策略盈利性上的分歧。
风险管理
风险管理的另外一个关键成分涉及到交易员自身心理因素的处理。尽管大家都承认,算法交易若无人为干涉,不太容易出现问题。交易员在交易时,稍不留神仍然可能会掺入许多认知偏差。一个常见的偏差是厌恶规避,当人发现损失已成定局,其所带来的痛苦,可能会麻痹人的行为,不能做到及时抛盘止损。类似地,由于太过忧心已经到手的收益可能赔掉,人们可能也会过早抛盘收利。另外一个常见的偏差是所谓的近期偏好偏差:交易员太看重近期事件而非长远地看问题。此外,当然不能落下“恐惧与贪婪”这对经典的情绪偏差。这两种偏差常导致杠杆不足或杠杆过度,造成爆仓(账户资产净值近乎为零或更糟)或盈利缩水的局面。
总结
译注:
(01).数量金融学(QuantitativeFinance),也称金融工程学或金融数学,通过高级数学理论量化分析金融产品,为金融市场提供了多样性的金融衍生产品,在丰富投资选择的同时也带来了隐患,比如2008年金融危机。从事数量金融工作的人常使用“矿工”(Quant)自嘲,由于使用大量的高级数学技术也有人称他们火箭科学家。
(02).挖掘优势(ExploitinganEdge)并无特别明确的上下文关系。如果以“边界”理解,也不恰当,毕竟常用于表达数学边界含义的是另外一个词‘Bound’。所谓挖掘优势,即对搜索到的多个策略进行对比,选择较佳的一个使用。
(03).技术栈(TechnologyStack)实际上是提供应用服务的系统所使用的各种技术,若从分层角度来看,各种技术层叠相连、彼此分工协作,好像一个“栈”。如果有人对各种技术都有颇深造诣,那么他(她)就可称作是一名“全栈工程师”(FullStackEngineer),通俗点就是一多面手、全才,在业界绝对炙手可热。
(04).根据交易机制,证券市场可以分成报价驱动市场(Quote-drivenMarket)、订单驱动市场(Order-drivenMarket)。订单簿动力学(OrderBookDynamics)则是根据订单驱动市场的信息,探索订单量、流动性与价格之间的动力关系。其主要目的是使用高频交易订单簿当前数据信息预测其短期状态,以辅助做出较佳投资决策。
(05).量化交易中使用的每种投资策略实际上就是一个数学模型。在搜索投资策略时,存在各种各样的模型,如何选择呢可以对投资策略做回溯测试(Backtesting),检测模型在历史数据中的表现。然而,这里就出现一个问题,模型中可能存在各种参数,选择不同的参数对于模型性能的影响也是不同的,为此就需要在测试之前进行一个模型参数调优的过程。典型的做法是将完整的历史数据分割成多份,最简单地是分成两份:一部分做训练样本,另外一部分作为测试数据。如果首先抽样得到训练样本,那么余下的数据就是测试数据(Out-of-SampleData)。
(06).由于利用历史数据回测时,策略在实际运作中使用的信息与历史数据回测时使用的信息不同,比如策略“日均价达到10元卖出”在实时运作时,只能得到开盘至当前的价格数据,从而无从获得日均价的数据。它如同一部穿越剧,属于典型的先窥偏差(Look-aheadBias)。
(07).用于回测的历史数据通常都会经历一个预处理的过程,将部分数据删除。比如,由于私有化或收购的退市股票,只存在部分交易数据,可能会从数据集中剔除,只使用那些一直处于交易状态的数据进行回测。这种只使用预先筛选的幸存者数据进行回测所产生的偏差称作幸存者偏差(SurvivorshipBias)。关于幸存者偏差,有个二战的故事读者可以读读。
(08).优化偏差(OptimisationBias),亦称“数据窥视偏差”(Data-snoopingBias),从机器学习的角度来看,这即是过拟合,经过过度优化,策略虽然在历史数据测试集上表现不错,然而在实际应用时却差强人意。
(10).明富环球(MFGlobal)是全球最大的商品期货经纪商之一,数月之内在欧洲主权债券上的投资达到63亿美元,接近其资本的6倍,其杠杆率飙升至40:1。由于欧债危机,其信用评级跌至垃圾级,2011年10月31日向法院提交破产保护申请。
金融工程/数学专业背景的同学/工作人士,希望进一步学习Python编程以及在量化投资的实战应用;
非金融工程专业背景的同学/工作人士,希望迅速成为宽客;
量化金融分析师AQF核心课程体系:
1、《量化投资基础》
主要涵盖了量化投资领域的必备知识,包括:基本面分析、技术分析、数量分析、固定收益、资产组合管理、权益、另类投资等内容。
2、《Python语言编程基础》
包含了Python环境搭建、基础语法、变量类型、基本函数、基本语句、第三方库、金融财务实例等内容。旨在为金融财经人提供最需要的编程方法。
3、《基于Python的经典量化投资策略》
包含了最富盛名,最基本的量化交易思想和交易策略。例如:海龟交易模型、Logistics模型、配对交易模型、波动扩张模型、Alpha模型、机器学习(随机森林模型、主成分分析)、深度学习(人工神经网络)等内容。
4、《量化交易系统设计》
旨在学习量化交易系统的具体知识,包括过滤器,进入信号,退出信号,仓位管理等详细内容,并指导学员设计涵盖个人交易哲学的量化交易系统。
5、《量化实盘交易》
旨在为解决实际量化交易策略搭建过程中的一些问题提供较优解决方案。
三、掌握Python及量化投资技能,我们能做什么
1、熟悉中国主要金融市场及交易产品的交易机制;
2、熟知国内外期货交易、股市交易的异同点和内在运行机制;
3、掌握经典量化交易策略细节及其背后的交易哲学;
4、掌握金融、编程和建模知识基础,拥有量化交易实盘操作能力;
5、具备独立自主地研发新量化交易策略的能力;
6、掌握量化交易模型设计的基本框架,以及风险管理和资产组合理论的实际运用;
7、掌握从策略思想——策略编写——策略实现饿完整量化投资决策过程;具备量化投资实战交易能力。
备注:(AQF备考资料包含:1、AQF专用公式表2、AQF模拟习题3、AQF前导课程4、AQF报名流程指引图5、AQF电子版资料6、AQF考纲7、AQF笔记)
课程
通过试题测试进行个人能力评估,根据答题正确率评估薄弱知识点