量化交易入门指南

Jenny@FinTech社区 2021-05-16 10:45:38
量化交易是量化金融中一个极其复杂的领域。它需要大量的时间来获得必要的知识,并通过面试或者制定自己的交易策略。不仅如此,它还需要大量的编程专长,至少是C++或Python这样的语言中。然而,随着该交易频率的增加,编程技术变得更为重要。



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

交易策略识别-寻找策略,利用优势,决定交易频率

策略回测-获取数据、分析策略性能并消除偏差

执行系统-连接至代理端,实现交易自动化,并将交易成本降至最低

执行系统-连接至代理端,实现交易自动化,并将交易成本降至最低

风险管理-资本最优化配置、“下注规模”与交易心理学



首先我们来看看如何确定一个交易策略。



策略鉴别





所有的量化交易过程都是从最初的研究阶段开始的。 这一研究过程包括找到一个策略,并看看该策略是否适合你可能运行的其他投资组合,获得所有必要数据来对该战略进行测试,并试图优化,以获得更高的回报和/或更低的风险。如果作为独立的交易者运行策略,您需要考虑您自己的资本需求,以及交易成本将如何影响策略。



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



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



以下是一个可以在初期找到策略方法的资源



Social Science Research Network

http://www.ssrn.com



arXiv Quantitative Finance

http://arxiv.org/archive/q-fin



Seeking Alpha

http://www.seekingalpha.com



Elite Trader

http://www.elitetrader.com



Nuclear Phynance

http://www.nuclearphynance.com



Quantivity

http://quantivity.wordpress.com



利用“价格序列”上存在长期均值(如两个相关资产之间的利差)以及短期偏离该均值最终会回复这一事实的策略。 动量策略试图利用投资者心理和大型基金的结构,跟随市场趋势“搭便车”,这可以在一个方向上收集动量,并跟随趋势直至扭转。



量化交易的另一个极其重要的方面是交易策略的频率。 低频交易(LFT)通常是指持有资产超过交易日的策略。相应地,高频交易(HFT)一般指的是日内持有资产的策略。超高频交易(UHFT)指的是以秒和毫秒为单位持有资产的策略。



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


策略回测





回测的目的是提供证据,证明通过上述过程确定的策略在应用于历史数据和样本外数据时都是有益的。这设定了该策略在“现实世界”中表现如何的期望值。然而,由于各种原因,回测并不是成功的保证。这也许是量化交易中最为微妙的领域,因为它涉及许多偏差,必须仔细考虑并尽可能消除这些偏差。我们将讨论常见的偏差类型,包括前瞻偏差、生存偏差和优化偏差。回测中的其他重要领域包括历史数据的可用性和清洁性、考虑现实交易成本以及确定一个强大的回测平台。我们将在下面的Execution Systems部分进一步讨论交易成本。



一旦确定了一项策略,就有必要获得历史数据,并利用这些数据进行测试,或许这一过程会带来改进。所有资产类别中都有大量的数据供应商。它们的成本通常与数据的质量、深度和及时性成正比。



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



为了进行回测,需要使用一个软件平台。您可以选择使用专用的回测软件(如TradeStation),数字平台(如Excel或Matlab)数字平台或完全自定义的编程语言(如Python或C++)。



当对系统进行回测时,必须能量化系统的性能。



一旦一个策略经过了回测,并被认为是没有偏差的,通过良好的夏普和最小化的缩水,现在是时候建立一个执行系统了。


执行系统




执行系统是由代理发送和执行策略生成的交易列表的方法。尽管交易生成可以是半自动化的,甚至是全自动的,但是执行机制可以是手工的,半手工的(即)或完全自动化。对于LFT策略,通常使用手动和半手动技术。对于高频交易策略,有必要创建一个完全自动化的执行机制,该机制通常与交易生成器紧密结合 (由于策略和技术的相互依赖)。



创建执行系统时的主要考虑因素是与代理业务的接口、最小化交易成本以及实时系统的性能与后验性能的差异。



在规模较大的基金公司中,优化执行往往不是量化交易员的职责范围。然而,在较小交易公司,交易员是执行者,因此拥有广泛的技能永远是更被人所需要的。 如果你想在基金公司工作,请牢记这一点:你的编程技能将与你的统计和计量经济学才能同样重要,甚至是更重要!


另一项属于执行范畴的主要问题主要指的是尽量减低交易成本。 交易成本通常由三个部分组成:佣金(或税收),即经纪公司、交易所和证券交易委员会(或类似的政府监管机构)收取的费用;差距,这是你对订单的预期与订单实际完成情况之间的差异;价差,即交易证券的买入/卖出价格之间的差额。注意,利差并不是固定的,而是取决于市场上当前的流动性(即买卖指令的可用性)。



执行系统的最后一个主要问题是策略性能与回测性能的差异。




风险管理





量化交易难题的最后一步是风险管理。它包括技术风险和心理状况管理。



如何处理自己的心理状况也很关键。有许多认知偏见甚至可能会影响交易中。一个常见的偏见是损失厌恶,即由于必须实现亏损的痛苦而导致亏损状态不会被平仓。同样,获利也可能过早,因为害怕失去已经获得的利润可能会太大。另一种常见的偏见称为新近偏见。当交易员过分强调近期事件而不是长期事件时,这就表现出来了。当然,还有一种典型的情感偏见——恐惧和贪婪。这往往会导致杠杆不足或过度,从而导致膨胀或利润减少。






如果您有兴趣尝试创建自己的算法交易策略,我的第一个建议是要善于编程:python 或 c++ ,倾向于尽可能多地自己构建数据采集器、策略回测器和执行系统。

...全文
113 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
NorZ 2021-05-17
  • 打赏
  • 举报
回复
妹纸多发一点呀,你这个是帖子还是博客,是不是发错地方了?

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧