如果你期望获得量化交易员的工作并希望建立自己的交易体系,可以参阅本篇的一些基本思想。
量化交易是一个极其复杂的领域,构建自己的交易策略需要不断的学习和尝试,这需要花费大量的时间。此外,还需要掌握编程专业知识,而想要掌握难度比较高的C语言或者Python,也不是一件容易达成的事情。
今天我们给大家介绍一些基本概念,仅供参考:
量化交易系统由四个主要组成部分组成:
🔹策略识别 - 寻找策略,确定交易频率
🔹策略回测 - 获取数据、分析策略绩效并消除偏差
🔹执行系统 - 链接到经纪公司,自动化交易并最大限度地降低交易成本
🔹风险管理 – 确定最佳资本配置、研究交易心理
我们将首先了解如何确定交易策略。
一、战略识别
1、最初的研究阶段
所有量化交易过程都始于最初的研究阶段。
这个研究过程包括寻找一个策略,看看该策略是否适合你正在运行的投资组合,获取测试该策略所需的任何数据,并尝试优化策略以获得更高的回报以及更低的风险。
可以尝试通过各种公共资源找到可利用的策略,比如学术界定期发布理论交易结果、量化金融博客中讨论的策略、交易期刊概述基金采用的一些策略等等。
你可能会质疑为什么大家热衷于讨论他们的盈利战略,而从不担心其他人“挤占交易”。原因在于他们不会经常讨论他们所执行的确切参数和调整方法。这些优化是将相对平庸的策略转变为高利润策略的关键。
事实上,创建自己独特策略的最佳方法之一是找到类似的方法,然后执行自己的优化程序。
以下是开始寻找策略创意的一些网站:
🔹 www.ssrn.com
🔹 arxiv.org/archive/q-fin
🔹 www.seekingalpha.com
🔹 www.elitetrader.com
🔹 www.nuclearphynance.com
🔹 quantivity.wordpress.com
你可能会发现,你看到的许多策略都属于均值回归和趋势跟踪/动量类别。
均值回归和趋势跟踪/动量类别。
🔹均值回归策略利用的是“价格序列”的长期均值与该均值的短期偏差最终会回归的理论。
🔹动量策略则是通过“搭便车”,利用投资者心理形成的市场趋势可以向一个方向聚集动力,并跟随趋势直到反转。
2、交易策略的频率
量化交易的另一个非常重要的方面是交易策略的频率。
🔹低频交易(LFT)通常是指任何持有资产超过一个交易日的策略。
🔹高频交易(HFT)通常是指在日内持有资产的策略。
🔹超高频交易 (UHFT) 是指以秒和毫秒为单位持有资产的策略。
一旦确定了一个或多个策略集,现在就需要根据历史数据测试其盈利能力,这就是回测的领域。
二、策略回测
回溯测试的目的是提供证据,证明通过上述过程确定的策略在应用于历史数据和样本外数据时都是有利可图的。这设定了对策略在“现实世界”中的表现的期望。
但是,由于各种原因,回测并不能保证成功。这可能是量化交易中最微妙的领域,因为它涉及许多偏差,必须仔细考虑并尽可能消除这些偏差。
偏差类型包括前瞻偏差、幸存者偏差和优化偏差(也称为“数据窥探”偏差)。回测中的其他重要领域包括历史数据的可用性和清洁度,考虑现实的交易成本以及一个强大的回测平台。
一旦确定了策略,就有必要获取历史数据,通过这些数据进行测试,也许还可以进行改进。所有资产类别都有大量的数据供应商。它们的成本通常随着数据的质量、深度和及时性而增加。
对历史数据的主要关注点包括准确性/清洁度、幸存者偏差以及对公司行为(如股息和股票分割)的调整:
1、准确性
准确性与数据的整体质量有关,即数据是否包含任何错误。错误有时很容易识别,例如使用尖峰过滤器,它将在时间序列数据中挑选出不正确的“尖峰”并对其进行纠正。
有时候,它们可能很难被发现。通常需要有两个或多个提供商,然后相互检查他们的所有数据。
2、幸存者偏差
幸存者偏差通常是免费或廉价数据集的“特征”。具有幸存者偏差的数据集意味着它不包含不再交易的资产。比如股票类中的退市/破产的股票。
这种偏差意味着,在这样的数据集上测试的任何股票交易策略都可能比在“现实世界”中表现得更好,因为历史上的“赢家”已经被预先选中了。
3、公司行为
公司进行的“活动”通常会导致原始价格的阶跃函数变化,不应包括在价格回报的计算中,股息和股票分割的调整是常见的类型。
在这些操作中的每一个都需要执行一个称为背部调整的过程。必须非常小心,不要将股票分割与真正的回报调整混淆。
为了执行回测程序,有必要使用软件平台。可以选择专用的回测软件(如Tradestation)、数值平台(如Excel或MATLAB),或者运用编程语言(如Python或C++)的完全自定义实现。
通常,创建一个完整的内部技术堆栈是最优的,特别是对于高频交易策略,使用自定义实现回测至关重要。
在对系统进行回测时,必须能够量化其性能。量化策略的“行业标准”指标——最大回撤和夏普比率。
- 最大回撤
最大回撤是指在特定时间段(通常是年度)内账户净值曲线中最大的峰谷下降。这通常以百分比形式呈现。由于许多统计因素,LFT 策略的回撤往往比 HFT 策略更大。历史回测将显示过去的最大回撤,这是该策略未来回撤表现的指南。
- 夏普比率
夏普比率,它被定义为超额回报的平均值除以这些超额回报的标准差。
在这里,超额回报是指策略的回报率高于预定基准,例如标准普尔 500 指数或 3 个月期国库券。年化回报率之所以不作为通常使用的衡量标准,是因为它没有考虑策略的波动性。
一个策略经过回溯测试,并被认为没有偏差,具有良好的夏普和最小的回撤,就该建立一个执行系统了。
三、执行系统
执行系统是策略变成交易列表的载体,执行机制可以是手动的、半手动的(即“一键式”)或完全自动化的。对于高频交易策略,有必要创建一个完全自动化的执行机制,该机制通常与交易生成器紧密耦合。
创建执行系统时的关键考虑因素是与经纪业务的接口、最小化交易成本(包括佣金、滑点和点差)以及实时系统性能与回溯测试性能的差异。
1、经纪业务的接口
有很多方法可以与经纪公司对接,最优的就是全自动高性能应用程序编程接口 (API),自动化交易的执行可以让你腾出时间专注于进一步的研究,并允许运行多种策略甚至更高频率的策略。
常见回测软件,如 MATLAB、Excel 和 Tradestation,适用于较低频率、更简单的策略。但是,有必要构建一个用高性能语言(如 C++)编写的内部执行系统,以便执行任何真正的 HFT。
比如说,在一个实际交易的案例中,有一个 10 分钟的“交易循环”,即每 10 分钟下载一次新的市场数据,然后在同一时间范围内根据这些信息执行交易。对于任何接近分钟或秒频数据的东西,C/C++ 会更理想。
在较大的基金中,优化执行通常不是量化交易者的领域。然而,在较小的propshop或高频交易公司中,交易员是执行者,因此通常需要更广泛的技能。如果想在这些公司工作,编程技能将与统计学和计量经济学天赋一样重要,甚至更重要!
2、最小化交易成本
交易成本通常由三个部分组成:
- 佣金
佣金(或税收),即经纪公司、交易所和 政府监管机构收取的费用;
- 滑点
滑点,即您打算执行订单的金额与实际执行的订单之间的差异;
- 点差
点差,即所交易证券的买入价/卖出价之间的差额。
请注意,点差不是恒定的,而是取决于市场上当前的流动性(即买入/卖出订单的可用性)。
交易成本可以决定一个策略的净利润,从回测中正确预测交易成本可能是一个挑战。
在实际交易中,整个量化团队都致力于优化策略的执行效果。比如,需要抛售大量交易的情况,向市场“倾销”如此多的股票,将迅速压低股票价格,可能无法获得最佳执行结果。如果采用将订单“滴灌”到市场的算法,就会面临滑点的风险。所以在实际交易过程中,变化才是永恒。
3、实时系统性能与回溯测试性能的差异
执行系统的最后一个主要问题是战略绩效与回溯测试绩效的差异。发生这种情况的原因有很多,比如回测时前瞻偏差和优化偏差。
但是,某些策略在部署之前测试这些偏差并不容易。尤其在高频交易中,执行系统以及交易策略本身可能存在错误,这些错误不会出现在回测中,但确实会出现在实时交易中。
四、风险管理
量化交易难题的最后一部分是风险管理过程。
“风险”包括我们之前讨论过的所有bug,包括系统风险、政治风险以及技术风险,例如位于交易所的服务器突然出现硬盘故障。它可以涵盖所有可能干扰交易实现的内容。
风险管理还包括所谓的最佳资本配置,这是投资组合理论的一个分支。这是将资本分配给一组不同策略以及这些策略中的交易的手段,这是一个复杂的领域。
风险管理的另一个关键组成部分是处理自己的心理状况,较为常见的是损失厌恶,对于损失的客观存在,或者失去已经获得的利润的恐惧心理。另一种常见的心理被称为新近偏差。当交易者过分强调近期事件而不是长期事件时,就会表现出来。
当然,还有一对经典的情感偏差——恐惧和贪婪。这些通常会导致杠杆率过低或过度,这可能导致爆仓或利润减少。
总结
量化交易极其复杂但非常有趣,即使只是一些基本的概念,都阐述了这么多,所以入行之前一定要有充分的知识积累,至少需要在统计学、数学等方面有强大的背景,并掌握C、Python等编程语言。
如果有志于研究和开发高频交易领域的复杂策略,还要增加自己的技能组合,比如 Linux 内核修改、C/C++、汇编编程和网络延迟优化等。
在实践中,要尽可能多地自己构建数据采集器、策略回测器和执行系统。