量化交易初学者指南


在本文中,我将向您介绍一些端到端量化交易系统的基本概念。这篇文章可能对两类读者有帮助。第一类是试图在基金机构中获得一份量化交易工作的个人。第二个是希望尝试建立自己的“散户”算法交易业务的个人。

量化交易是量子金融中的一个极其复杂的领域。要通过面试或构建自己的交易策略可能需要花费大量时间才能获得必要的知识。不仅如此,它还需要广泛的编程专业知识,至少在如MATLAB,R或Python等语言中。然而,随着策略的交易频率增加,技术方面变得更加相关。因此熟悉C / C ++将是至关重要的。

量化交易系统由四个主要部分组成:

  • 策略识别 - 寻找策略,利用优势并决定交易频率
  • 策略回测 - 获取数据,分析策略性能并消除偏差
  • 执行系统 - 链接到经纪人,自动化交易并最大限度地降低交易成本
  • 风险管理 - 最佳资本配置,“投注规模”/凯利标准和交易心理学

我们首先来看看如何识别交易策略。

策略识别

所有量化交易过程都是从最初的研究阶段开始。这个研究过程包括找到一个策略,看看该策略是否适合您可能正在运行的其他的策略组合,获得测试策略所需的任何数据,并尝试优化策略以获得更高的回报/降低风险。如果将策略作为“散户”交易者运行,以及任何交易成本将如何影响策略,您将需要考虑自己的资本要求。

与普遍看法相反,通过各种公共资源寻找有利可图的策略实际上非常简单。学者定期发布理论交易结果(尽管主要是交易成本)。量化金融博客将详细讨论策略。贸易期刊将概述基金采用的一些策略。

您可能会质疑为什么个人和公司热衷于讨论他们的盈利策略,特别是当他们知道其他人“挤占交易”可能会阻止该策略长期运作时。原因在于他们不会经常讨论他们所执行的确切参数和调整方法。这些优化是将相对平庸的策略转变为高利润策略的关键。事实上,创建自己独特策略的最佳方法之一是找到类似的方法,然后执行自己的优化过程。

以下是一小部分开始寻找策略构想的地方:

您将看到的许多策略将属于均值回归和趋势跟随/动量的类别。均值回归策略是试图利用“价格序列”(例如两个相关资产之间的差价)的长期均值存在的事实,并且这种均值的短期偏差最终会恢复。动量策略试图利用投资者心理和大型基金结构,通过市场趋势“搭便车”,可以在一个方向上收集动力,并跟随趋势直至逆转。

量化交易的另一个非常重要的方面是交易策略的频率。低频交易(LFT)通常是指任何持有资产超过交易日的策略。相应地,高频交易(HFT)通常是指在日内持有资产的策略。超高频交易(UHFT)是指将资产保持在几秒和几毫秒量级的策略。作为散户从业者,HFT和UHFT肯定是可能的,但必须得详细了解交易“技术堆栈”和订单动态。在这篇介绍性文章中,我们不会在很大程度上讨论这些方面。

一旦确定了一个策略或一套策略,就需要对历史数据的盈利能力进行测试。也就是说域回测。

策略回测

回测的目的是提供证据,证明通过上述过程确定的策略在应用于历史数据和样本外数据时都是有利可图的。这设定了策略在“现实世界”中的预期表现。但是,由于各种原因,回测不是成功的保证。它可能是量化交易中最微妙的领域,因为它带来了许多偏见,必须尽可能仔细考虑和消除。我们将讨论常见的偏差类型,包括前瞻偏差,生存偏差和优化偏差(也称为“数据窥探”偏见)。回测中的其他重要领域包括历史数据的可用性和清洁度,考虑实际交易成本以及确定强大的回测平台。我们将在下面的执行系统部分进一步讨论交易成本。

一旦确定了策略,就必须获得进行测试和改进的历史数据。所有资产类别中都有大量数据供应商。它们的成本通常随着数据的质量,深度和及时性而变化。开始量化交易者的传统起点(至少在散户层面)是使用雅虎财经的免费数据集。我不会在这里过多地提供提供者,而是在处理历史数据集时我想集中讨论一般问题。

历史数据的主要问题包括准确性/清洁度,生存偏差以及对股息和股票拆分等公司行为的调整:

  • 准确性与数据的整体质量有关 - 是否包含任何错误。错误有时很容易识别,例如使用尖峰滤波器,它会在时间序列数据中挑出不正确的“尖峰”并对其进行校正。在其他时候,他们很难被发现。通常需要有两个或更多提供者,然后相互检查他们的所有数据。
  • 生存偏差通常是免费或廉价数据集的“特征”。具有生存偏差的数据集意味着它不包含不再交易的资产。就股票而言,这意味着已退市/破产股票。这种偏见意味着在这样的数据集上测试的任何股票交易策略都可能比在“现实世界”中表现更好,因为已经预先选择了历史“赢家”。
  • 公司行为包括公司执行的 “后勤”活动,这些活动通常会导致原始价格出现阶梯式变化,不应包括在价格回报的计算中。股息和股票分割的调整是常见的罪魁祸首。在这些动作中的每一个都需要执行称为后复权的过程。必须非常小心,不要将股票分割与真实的回报调整混淆。很多交易员都被公司行动搞得一团糟!

为了执行回测程序,必须使用软件平台。您可以选择专用的backtest软件,如Tradestation,数字平台(如Excel或MATLAB),或者使用Python或C ++等编程语言进行完全自定义实现。我不会过多地关注Tradestation(或类似的),Excel或MATLAB,因为我相信创建一个完整的内部技术堆栈(由于下面列出的原因)。这样做的好处之一是,即使使用极为先进的统计策略,也可以紧密集成回测软件和执行系统。特别是对于HFT策略,使用自定义实现至关重要。

在对系统进行回测时,必须能够量化它的性能。量化策略的“行业标准”指标是最大回撤和夏普比率。最大回撤表征了特定时间段(通常为年度)的账户净值曲线中最大的峰谷下降。这通常被称为百分比。由于许多统计因素,LFT策略往往比HFT策略具有更大的下降。历史回溯测试将显示过去的最大跌幅,这是该策略未来跌幅表现的良好指导。第二个衡量标准是夏普比率,启发式定义为超额收益的平均值除以超额收益的标准差。在这里,超额收益是指策略的回报高于预先确定的基准例如标准普尔500指数或3个月国库券。请注意,年化回报并非通常使用的衡量标准,因为它没有考虑策略的波动性(与夏普比率不同)。

一旦策略经过反复测试并被认为没有偏差(尽可能多的!),通过良好的夏普和最小化的下降,现在是构建执行系统的时候了。

执行系统

执行系统是由经纪人发送和执行策略生成的交易清单的方法。尽管交易生成可以是半自动化甚至是全自动化的,但执行机制可以是手动,半手动(即“一键”)或完全自动化。对于LFT策略,手动和半手动技术很常见。对于HFT策略,有必要创建一个完全自动化的执行机制,该机制通常与交易生成器紧密耦合(由于策略和技术的相互依赖)。

创建执行系统时的关键考虑因素是经纪人的接口交易成本(包括佣金,滑点和差价)的最小化以及现场系统性能与后台性能的差异

有很多方法可以与经纪人联系。它们的范围从通过电话呼叫您的经纪人到全自动高性能应用程序编程接口(API)。理想情况下,您希望尽可能自动执行交易。这使您可以专注于进一步的研究,并允许您运行多种策略甚至更高频率的策略(事实上,如果没有自动执行,HFT基本上是不可能的)。上面概述的常见回溯测试软件,如MATLAB,Excel和Tradestation,适用于频率较低,策略较简单的软件。然而,有必要构建一个用高性能语言(如C ++)编写的内部执行系统,以便进行任何真正的HFT。作为一则轶事,在我过去常用的基金中,我们有一个10分钟的“交易循环”,我们每10分钟下载一次新的市场数据,然后在同一时间段内根据该信息执行交易。这是使用优化的Python脚本。对于接近分频或二频数据的任何事情,我相信C / C ++会更理想。

在较大的基金中,优化执行通常不是量化交易者的领域。然而,在较小的商店或高频交易公司中,交易员是执行者,因此通常需要更广泛的技能组合。如果您希望受雇于基金,请记住这一点。您的编程技能与您的统计学和计量经济学人才一样重要,甚至更重要!

落在执行旗帜下的另一个主要问题是交易成本最小化。交易成本通常有三个组成部分:佣金(或税),即经纪人,交易所和证券交易委员会(或类似的政府监管机构)收取的费用; 滑点,这是您打算填写的订单与实际填写的订单之间的差异; 价差,即被交易证券的买入/卖出价格之间的差额。请注意,差价不是恒定的,取决于市场当前的流动性(即买/卖订单的可用性)。

交易成本可以在具有良好夏普比率的极其有利可图的策略和具有可怕的夏普比率的极其无利可图的策略之间产生差异。从回溯测试中正确预测交易成本可能是一项挑战。根据策略的频率,您需要访问历史交换数据,其中包括买入/卖出价格的价格数据。由于这些原因,整个团队都致力于优化大型基金的执行。考虑一个基金需要卸载大量交易的情景(其中这样做的理由是多种多样的!)。通过将这么多股票“倾销”到市场上,它们将迅速压低价格并可能无法获得最佳执行。因此存在将“滴灌”订单推向市场的算法,虽然那时该基金存在滑点风险。此外,其他战略“捕食”这些必需品,并可以利用低效率。这是域名基金结构套利。

执行系统的最后一个主要问题是战略绩效与后备绩效的差异。这可能由于多种原因而发生。在考虑回测时,我们已经深入讨论了前瞻偏差和优化偏差。但是,某些策略无法在部署之前轻松测试这些偏差。这主要发生在HFT中。执行系统中可能存在错误以及交易策略本身没有出现在回溯测试中,但DO会出现在实时交易中。在部署战略之后,市场可能会受制于政权更迭。新的监管环境,不断变化的投资者情绪和宏观经济现象都可能导致市场行为方式的差异,从而导致战略的盈利能力出现分歧。

风险管理

量化交易难题的最后一部分是风险管理过程。“风险”包括我们讨论过的所有先前的偏见。它包括技术风险,例如共同位于交换机的服务器突然发生硬盘故障。它包括经纪风险,例如经纪人破产(不像听起来那么疯狂,考虑到最近MF Global的恐慌!)。简而言之,它涵盖了几乎所有可能干扰交易实施的内容,其中有许多来源。全书都致力于量化策略的风险管理,所以我不会试图在这里阐明所有可能的风险来源。

风险管理还包括所谓的最优资本配置,这是投资组合理论的一个分支。这是将资本分配给一系列不同策略以及这些策略中的交易的手段。这是一个复杂的领域,依赖于一些非平凡的数学。最佳资本分配和战略杠杆相关的行业标准称为凯利标准。由于这是一篇介绍性文章,我将不再详述其计算。凯利标准对回报的统计性质做出了一些假设,这在金融市场中并不常见,因此交易者在实施时往往保守。

风险管理的另一个关键组成部分是处理自己的心理状况。有许多认知偏见可能会蔓延到交易中。虽然如果单独使用策略,这在算法交易中可能会出现问题!一个常见的偏见是损失厌恶,即由于必须实现亏损的痛苦而导致亏损状态不会被平仓。同样,利润也可能过早,因为担心失去已经获得的利润可能太大了。另一种常见的偏见称为新近偏差。当交易者过分强调近期事件而不是长期事件时,这表明了这一点。当然还有一对经典的情感偏见 - 恐惧和贪婪。这些通常会导致杠杆率过低或过度杠杆化,这可能导致爆炸(即账户资产为零或更差!)或减少利润。

摘要

可以看出,量化交易是一个极其复杂的,虽然非常有趣的量化金融领域。在本文中,我已经完全触及了主题的表面,它已经变得相当长了!已经写了关于我只给了一两句话的问题的全书和论文。因此,在申请量化基金交易工作之前,有必要进行大量的基础研究。至少,您需要具备丰富的统计和计量经验背景知识,并且具有丰富的实施经验,通过MATLAB,Python或R等编程语言。对于更高频率端的更复杂策略,您的技能可能很高包括Linux内核修改,C / C ++,汇编编程和网络延迟优化。

如果您有兴趣尝试创建自己的算法交易策略,我的第一个建议是擅长编程。我的偏好是尽可能多地构建数据抓取器,策略后端测试器和执行系统。如果你自己的资金在线,你知道你已经完全测试了你的系统并意识到它的缺陷和特殊问题,你晚上睡不好吗?将此外包给供应商,同时可能在短期内节省时间,从长远来看可能非常昂贵。

本文由QuantStart团队编撰。此为译文。原文地址:https://www.quantstart.com/articles/Beginners-Guide-to-Quantitative-Trading

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值