Quantinsti 博客中文翻译(十七)

原文:Quantinsti Blog

协议:CC BY-NC-SA 4.0

高频交易(HFT):历史,基础,事实,特征,等等

原文:https://blog.quantinsti.com/high-frequency-trading/

查尼卡·塔卡阿努普里亚·古普塔米林德·帕拉德卡

高频交易是算法交易的子集,由高频交易算法执行。HFT 的心脏或核心是以下几个部分的结合:高速计算机系统&实时数据供给(快速跟踪交易和订单)。

在这篇文章的结尾,你将会很好的掌握关于高频交易,高频交易算法等有用的知识。

本文涵盖:


什么是高频交易?

高频交易是股票市场中的一种交易行为,以极高的速度下达和执行许多交易指令。从技术上讲,高频交易使用 HFT 算法来分析多个市场,并以最有利可图的方式执行交易指令。

高频交易者利用先进的技术创新,比市场上任何人都更快地获得信息。有了这些信息,交易者就能够用他的高频交易算法快速执行交易指令。

协同定位是一种便于快速获取信息并快速执行交易的做法。

毕竟,有了所有的交易策略和强有力的分析,还能剩下什么呢?

答案是高交易频率,因为它考虑了在特定时间间隔内交易次数的频率。选择高频是因为它有助于高速交易,也是交易者收益最大化的因素之一。


高频交易是如何运作的?

高频交易主要是一个等待时间的游戏(Tick-To-Trade),这基本上意味着你的策略对即将到来的市场数据的反应有多快。

这家名为【Bleeding edge】的公司实际上谈论的是一位数微秒甚至亚微秒级的延迟(超高频交易)与更新、更复杂和定制的硬件。

总而言之,在过去的 20 年里,买家希望支付的价格和卖家希望获得的报酬之间的差距已经大幅缩小。其中一个原因是准确性的提高。HFT 还向市场注入了更多流动性,降低了买卖价差。


高频交易订单

高频交易包括四种类型的 HFT 订单,我们已经在下面的信息图中讨论过了。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

接下来,让我们看看 HFT 的历史和有趣的事实。


高频交易的历史

有趣的是,“快速信息”传递的现象可以追溯到 17 世纪。

  • 17 世纪- 内森·梅尔·罗斯柴尔德利用科技,比伦敦政府更早知道威灵顿公爵在滑铁卢战胜了拿破仑。
  • 19 世纪- 据说,汤森路透的创始人朱利叶斯·路透(Julius Reuter)在 19 世纪使用了包括电报电缆和一队信鸽在内的技术组合来运行新闻传递系统。通过这种方式,朱利叶斯·路透得到的消息比任何人都要早。
  • 1983 - 纳斯达克推出了成熟的电子交易,促使以计算机为基础的高频交易逐渐发展到高级阶段。
  • 2000 年代-2000 年代初,HFT 在股票订单中所占比例不到 10%,但这一比例已经迅速增长。
  • 2001 - 到了 2001 年,HFT 已经有了几秒钟的执行时间,而且还在继续提高。
  • 2005 年至 2006 年- 根据纽约证券交易所的数据,2005 年至 2009 年间,高频交易量增长了 164%。
  • 到 2010 年,这一时间缩短到了毫秒,今年晚些时候缩短到了微秒。
  • 2012 - 随后,每笔交易都在 2012 年的几纳秒内开始执行。

关于高频交易的事实

潜伏

速度并不像被低估的等待时间那样重要。延迟意味着数据传输到目的地所需的时间。因此,定价过低的延迟变得比低延迟(或高速)更重要。

速度

根据彭博的说法,速度仍然很重要,但这是内在的,而不是外在的。传统的 HFT 意味着订单进入市场和你有能力接受订单之间的时间很短。它主要由外部传输延迟组成,企业很快学会了快速做出内部决策,这对结果来说是无关紧要的。

决策

内部决策时间用于决定最佳交易,这样即使是第一个选择交易的人,交易也不会变得毫无价值。因为高频交易在很多方面都是独一无二的,很明显你想知道是什么特征使它如此。

证券市场为调整供求或价格而进行的买卖

高频交易公司将其业务描述为“做市”。每个做市商都通过显示特定数量证券的买卖报价来发挥作用。一旦收到买家的订单,做市商就从自己的库存中卖出股票并完成订单。因此,这一过程增加了市场的流动性。因此,它被称为做市策略

信号

信号(买/卖信号)的准确性是最重要的,因为如果信号传递不正确,收益可能会很快变成损失。所以,HFT 确保每一个信号都足够精确,以如此高的速度触发交易。

逐滴答数据

市场数据的变化触发高频交易系统在几百纳秒内产生新的订单。因此,收集的数据可能包含数十亿行数据!

协同定位

这意味着将高频交易机构和自营交易员拥有的计算机放在交易所计算机服务器所在的同一场所。因此,协同定位使拥有高性能服务器的 HFT 公司能够更快地进入市场。

资产类别

高频交易自营公司交易股票、期货、债券、期权、外汇等。任何时间任何地点的 HFT,因此成为外汇交易的首选。

高端系统

仅仅停留在高频率的游戏中就需要持续的维护和升级来满足需求。为了实现这一目标,银行和其他金融机构投入大量资金开发全球超高速计算机硬件和执行引擎。

熟练的专业人员

高频交易专业人士的需求越来越大,薪酬也越来越高。金融和计算机科学的理论和实践的坚实基础是成功实施高频环境的共同前提。

太好了!接下来,让我们探索高频数据的特征。


高频数据的特征

随着零延迟竞赛的继续,高频数据作为 HFT 的一个关键组成部分,仍然处于研究人员和市场分析师的扫描之下。

有了高频数据的一些特征,对交易方的理解就好得多了。HFT 中涉及的数据扮演着重要的角色,就像任何类型的交易中涉及的数据一样。

随着对 HFT 数据的深入了解,你将能够理解高频交易的技术层面。本节旨在为我们的读者揭示其中的一些特征,它们是:

观察之间不规则的时间间隔

在任何一个交易日,流动性市场都会产生成千上万个分笔成交点,形成高频数据。本质上,该数据在时间上是不规则间隔的,并且与规则间隔的当天结束(EOD)数据相比是海量的。

HFT 包括分析这些数据来制定交易策略,这些策略的执行延迟非常低。因此,数学工具和模型融入高频数据的特征变得非常重要,如不规则的时间序列和其他一些我们将在下面概述的数据,以做出正确的交易决策。

非正态资产回报分布(例如,厚尾分布)

高频数据呈现厚尾分布。为了理解厚尾,我们需要先理解正态分布。正态分布假设样本中的所有值将在平均值上下均匀分布。

因此,大约 99.7%的所有值都在平均值的三个标准偏差范围内,因此极端事件发生的概率只有 0.3%。

做 HFT 的定量分析师需要模拟尾部风险以避免重大损失,因此尾部风险对冲在高频交易中很重要。

下图显示了相对于正态分布的厚尾分布。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Source: lexicon.ft.com

此外,高频数据显示:

  • 波动聚类和
  • 收益率绝对值的长期相关性(长记忆性)。

波动聚类

在金融学中,波动性聚类指的是 Mandelbrot (1963)指出的观察结果,即“大变化往往伴随着大变化,或者符号和小变化往往伴随着小变化。”

长期依赖(长记忆)

长程相关性(LRD),也称为长记忆或长程持续性,是在分析空间时间序列数据时可能出现的现象。这与两点的统计相关性随时间间隔或两点间空间距离的增加而衰减的速率有关。必须注意的是,如果相关性比指数衰减更慢,通常是类似幂的衰减,则通常认为现象具有长程相关性。

高计算负载和相关的“大数据”(以及与之相关的问题)

HFT 玩家依赖微秒/纳秒延迟,并且必须处理大量数据。为 HFT 利用大数据会带来一系列问题。

高频交易公司需要拥有最新的最先进的硬件和最新的软件技术来处理大数据。否则,它会增加处理时间,超出可接受的标准。

市场微观结构噪音

市场微观结构噪声是利用高频数据观察到的现象,与观察到的价格偏离基价有关。噪声的存在使得一些参数(如已实现的波动性)的高频估计非常不稳定。高频数据中的噪声可能由多种因素引起,即:

  • 买卖反弹
  • 不对称信息
  • 价格变化的离散性
  • 订单到达延迟

买卖反弹

当一只股票的价格不断从买入价变为卖出价时,就会出现这种情况(反之亦然)。股票价格的变动只发生在买卖价差内,这就产生了反弹效应。这种买卖反弹的出现会导致高波动性读数,即使价格保持在买卖窗口内。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

信息不对称

在信息不一致的情况下,高频交易者很难对股价做出正确的估计。

价格变化的离散性

由于价格变化的离散性,没有形成稳定性,因此,根据这种信息进行估计是不可行的。

订单到达等待时间

等待时间是指订单到达股票市场或进一步执行所需的时间。在高订单到达延迟的情况下,交易者不能将其订单执行决策建立在交易最有利可图的时候。

另一方面,在订单到达延迟较低的情况下,订单可以在最有利可图的时刻到达市场。

接下来,让我们来看看有趣的高频交易策略。


高频交易策略

HFT 公司使用不同类型的高频交易策略,每种策略的最终目标和基本原理都各不相同。这些策略是基于对市场的分析,因此,决定了你交易的成败。

因此,重要的是只提出最适合你的策略。HFT 战略的一些重要类型是:

订单流量预测高频交易策略

订单流预测策略试图通过各种手段提前预测大玩家的订单。然后,他们在他们之前建立交易头寸,并锁定利润,因为这些大型参与者的交易会产生后续价格影响。

执行高频交易策略

执行 HFT 策略寻求在不造成重大价格影响的情况下执行各种机构参与者的大订单。其中包括:

  • ****【成交量加权平均价格】策略**——该策略用于以较好的平均价格执行大额订单。它是一段时间内交易价值与交易总量的比率。**
  • 【TWAP】(时间加权平均价格)策略——该策略用于在不影响价格的情况下买入或卖出大宗股票。

流动性准备–做市策略

高频交易做市商需要首先建立报价,并不断更新报价以响应其他订单提交或取消。报价的这种连续更新可以基于高频交易做市商所遵循的模型的类型。在此过程中,HFT 做市商往往会为每笔交易提交和取消大量订单。

自动化高频交易套利策略

HFT 套利策略当两种类似的工具之间产生差价时,试图获取小额利润。指数套利可以认为是同样的一个例子。标准普尔 500 期货和 SPY(一个追踪标准普尔 500 指数的 ETF)之间的价格变动应该彼此一致。

如果价格变动不同,那么指数套利者会立即使用他们的自动 HFT 策略通过套利来获取利润。为了有效地做到这一点,高频交易套利策略需要快速执行,以便在其他参与者加入之前,迅速从错误定价中获得最大收益。

除了上面讨论的,还有其他高频交易策略,如:

  • ****回扣套利策略寻求赚取交易所提供的回扣。
  • 基于低延迟新闻源的 HFT 策略。
  • ****冰山和嗅探器用于检测和应对试图隐藏大宗交易的其他交易者。

谁用高频交易?

属于以下类别的公司使用高频交易:

  • 独立自营公司(Independent Proprietary companies)——这些公司倾向于对自己的运营保持保密,其中大多数都是做市商。
  • 经纪-交易商自营柜台 -这些传统的经纪-交易商公司拥有独立的与客户业务无关的高频交易柜台。
  • 对冲基金 -由对冲基金组成的公司将重点放在统计套利上,以利用资产类别&证券中的低效率定价。

此外,为了根据您的交易结果随机应变,我们有一个精心设计的课程“高级算法交易策略”,如果您正在寻找一些东西来增强您的交易体验,这应该会有所帮助。

好了。我们将在前面看看在 HFT 公司的职业方面。


高频交易工作

一旦你成为一名合格的候选人,你可以从全球范围内选择一些重要的职位。我们将在这里讨论的所有角色都是非常重要和有益的。看看下面的列表,包括:

  • 定量分析师/模型开发人员
  • 战略制定者
  • 商人
  • 网络/系统管理员

量化分析师 /模型开发者

如果你对自己构建模型感兴趣,并想申请一个定量分析师/模型开发员的职位,学习定量技能,并掌握使用定量工具的工作知识,如 R、Matlab、Python。

战略制定者

对于策略开发人员角色,您需要编写策略代码,或者维护和修改现有的策略。最有可能的是,你将与一位开发交易模型的定量分析师一起工作,你将被要求把策略编码到一个执行平台中。

交易员

对于交易角色,你的金融知识和解决问题的能力都很重要。如果你擅长解谜和解决问题,你会喜欢金融世界的错综复杂。

网络/系统管理员

涉及维护高频交易平台和编码策略的核心开发工作通常使用 C++或 JAVA。因此,磨练你的 C++或核心开发语言是绝对必要的。

有一些 HFT 公司通常专注于套利和量化策略。这类公司的名单很长,但这些公司可以满足你在其中一家公司找一份定量分析师或定量开发员工作的需要。

我们在另一个博客中分享了细节,以及你如何探索和学习高频交易工作


印度顶级高频交易公司

  • 塔研究(古尔冈)
  • 高盛(班加罗尔/孟买)
  • 摩根斯坦利(孟买)
  • 伊拉克首都(孟买)
  • 埃斯特顾问公司(古尔冈)
  • 四眼(古尔冈)
  • 加速贸易技术公司(班加罗尔)
  • 多拉特集团(孟买)
  • 雪绒花(孟买)
  • 阿普特(古尔冈)
  • 公开期货(德里)
  • LLP 引力研究中心(Gurugram)
  • Alphagrep 证券公司(孟买)

全球顶级高频交易公司

  • Citadel 证券公司(美国纽约)
  • Flow Traders NV(荷兰阿姆斯特丹)
  • GSA 资本合伙公司(英国伦敦)
  • IMC Trading BV(荷兰阿姆斯特丹)
  • 跳跃式交易(美国芝加哥)
  • KCG 控股公司(美国汉普顿路)
  • 虚拟金融公司(美国纽约)

****注意:如果你想在量化交易领域发展事业,EPAT 是最适合你的 algo 交易课程。EPAT 提供最全面的课程,由领先的行业从业者和专家授课。一旦完成,你将获得终身职业援助。


建立高频交易平台的要求

这一部分对那些希望建立自己的高频交易平台的交易者来说尤其重要。基本上,你需要一些我们在这里列出的东西,它们是:

注册公司

首先,你需要注册你想交易的公司。这可以通过两种方式实现:合伙或作为个人**。值得注意的是,如果你想和其他投资者一起建立对冲基金,你可能需要监管机构的批准。******

交易和运营资本

HFT 公司的资本是进行交易和经营的必要条件。这有助于您安排所需的一切,从路由器/调制解调器和交换机等基本网络设备到系统的协同定位

进入市场

如果你不想直接成为交易所的会员,你也可以通过经纪人。这涉及较少的合规规则和监管要求。然而,另一方面是,你将不得不支付经纪费。

基础设施要求

对于基础设施,您将主要需要:

  • 硬件 -意味着执行操作的计算硬件。这只不过是你的计算系统。
  • 网络设备——暗指你的路由器/调制解调器、交换机、互联网等等。

审计与合规

所有在印度的 HFT 公司都必须接受每半年一次的审计。审计只能由交易所(例如美国的纽约证券交易所)网站上列出的注册审计师进行。对于审计,您需要维护订单日志、交易日志、控制参数等记录。在过去的几年里。

接下来,我们将讨论 HFT 的监管要求。


高频交易的监管要求

在世界各地,已经实施了许多法律来阻止可能对金融市场有害的活动。一些专家一直认为,一些针对 HFT 活动的监管规定对市场无益。

他们表示,一方面,我们有高频交易者作为做市商,他们拥有订单流驱动的信息和速度优势。另一方面,我们的交易者对这种延迟并不敏感。

总体而言,实证结果表明,这些针对 HFT 的监管措施并不一定会提高市场质量。之所以如此,是因为他们未能提供足够的证据,证明像闪电崩盘这样的市场突然失灵。

高频交易中的一些监管变化如下:

金融交易税

FTT 被用来限制 HFT 相关的过度交易。此外,这种做法导致政府收入增加。在适当的水平上,FTT 可以削减高频交易,而不会损害其他类型的交易,包括其他形式的非常快速、高速的交易。

让我们举几个与 FTT 有关的国家为例。

欧盟 FTT -欧洲议会报道,2013 年 2 月 14 日,欧盟委员会提议在 11 个成员国中引入 FTT,但以“加强合作”为手段。

但在 2015 年 3 月 25 日,议会意识到并遗憾地表示,成员国没有加强合作。虽然这一问题在委员会中仍未解决,但该国定期得到讨论。

最近,重新做出了决定,并于 2019 年 6 月 14 日向理事会通报了进展情况。

英国 FTT - 需要注意的是,征收交易税并不新鲜,例如,英国自 1964 年以来一直以印花税的形式征收 FTT,对股票的购买者收取 0.5%的费用。

这帮助政府在 1999-2000 年间筹集了大约 50 亿欧元。反对 FTT 的人强烈认为,征税计划不足以打击投机交易活动。

由于缺乏令人信服的证据证明金融交易税降低了短期波动性,金融交易税不太可能降低未来的风险。

****瑞典 FTT-瑞典 FTT 在 1984 年至 1991 年间被应用,希望能获得额外的税收收入并统治金融市场。但是,众所周知,这是 FTT 实施的一个典型失败。

此外,瑞典对股票交易征收近 50 个基点的税,导致超过一半的股票交易量从瑞典转移到伦敦。事实证明,这是一个糟糕的收入来源,也是一个不足以监管股票市场的机制。

此外,这篇由 BNY·梅隆撰写的文章概述了截至 2018 年全球范围内目前已实施和提议的 FTT 法案。

关于过量订单提交和取消的规定

现在,我们来看另一个监管变化。就是在很短的时间内大量订单的提交和取消,这是 HFT 最突出的特点。

值得注意的是,向高订单交易比率的交易商收取费用被认为是为了抑制高频交易公司的有害行为。

此外,如果收取较高的订单交易比或实施税收以阻止操纵活动,速度较慢的交易者可以更积极地交易。这种税应该能够总体上改善流动性。

根据 2019 年 8 月 13 日的商业标准,监管机构正在研究对订单交易比高的交易员征收“激增费用”的概念。

回扣结构

返利结构是另一个监管变化。当限价单交易者得到回扣补偿时,市价单交易者则被收取费用。因此,当交易者(通常是高频交易者)发送限价单来做市时,向市场提供流动性,这反过来为交易所提供流动性。

这对于提交大量限价单的交易者来说肯定是有吸引力的,因为该定价方案为限价单交易者提供了更小的风险。

还存在一种与市场接受者定价相反的收费结构,称为交易商定价。它包括向市场订单交易者提供回扣,并收取费用以限制订单交易者,这种做法也在某些市场中使用。

这种结构总体上不利于高频交易者,专家们认为,这些市场通常不太透明,这可能对市场不利。

断路器

为了防止极端的市场波动,正在使用断路器。断路器在减少市场崩溃方面是有效的。

为了防止类似 1987 年 10 月的市场崩溃事件,纽约证券交易所为交易所引入了熔断机制。当股价跌破某个阈值时,这个熔断机制会暂停整个市场的交易。

让我们以当前场景中的真实世界为例,在 3 月份,由于冠状病毒爆发,市场多次遭遇熔断机制。这导致市场因股价暴跌而暂停 15 分钟。

2020 年 3 月 15 日,据美国消费者新闻与商业频道报道, S & P 500 在开盘后立即暴跌约 8%,触发一级断路器,导致交易暂停 15 分钟。T4 道琼斯工业平均指数开盘暴跌 2250 点。美国东部时间上午 9 点 46 分市场重新开放。

美国总统唐纳德·特朗普(Donald Trump)在新闻发布会上表示,冠状病毒最严重的时期可能会持续到 8 月,发达经济体“可能”会陷入衰退,随后股市收盘跌至盘中低点。

道琼斯指数暴跌 2997 点,经历了自 1987 年“黑色星期一”市场崩盘以来最糟糕的一天。标准普尔 500 收盘下跌近 12%。

订单处理中的结构性延迟

订单处理过程中的随机延迟(几毫秒)会抵消 HFT 的一些策略,这些策略可能会营造一种技术军备竞赛和赢家通吃的环境。

在这里,更快的交易者的优势在随机延迟下显著下降,而他们仍然有提高交易速度的动力。如果提高交易速度的好处会大幅减少,这将阻止高频交易商参与徒劳的军备竞赛。

展望未来,我们将看到 HFT 与长期投资有何不同?


高频交易与长期投资

关于高频交易和长期投资的比较,有很多争论和讨论。这里必须提到的是,市场上长期投资者对 HFT 有各种各样的看法。

我们不要去争论什么是好什么是坏,这是一个非常主观的问题,让我们看看 HFT 和长期投资有什么不同。

HFT 在市场中以零头寸开始和结束。这个想法是在很小的利润空间内快速买卖,赚取极小的利润。因此,HFT 部署的阵地相当小。如果一个高频交易者必须使用 5000 万现金进行交易,他/她将持有大量头寸,比如说 5 亿,也就是说,几乎是资本的 10 倍。

另一方面,长期投资者从大量资本开始,在很长一段时间内赚取高额利润。这需要大量资本,导致交易成本增加,但也带来了更高的利润率和预期的利润一致性。下表总结了这些要点:

对比高频交易和长期投资

| 差异 | 高频交易 | 长期投资 |
| 利润率 | 小的 | 大的 |
| 交易成本 | 小的 | 大的 |
| 资本需求 | 小的 | 大的 |
| 利润的一致性 | 高的 | 低的 |
| 总利润潜力 | 高的 | 大的 |

****(免责声明:上表是对高频交易和长期投资的概述,以及对一些公司/机构的分析,可能会因上述变量而有所不同。)

精彩!这就把我们带到了文章的结尾,当然我们也谈到了高频交易中一些最受欢迎的话题。


结论

因为我们的目标是让这篇文章内容丰富,能够满足所有读者的需求,所以我们包含了几乎所有与高频交易和 HFT 算法相关的概念。

如果你正在开始你的量化交易之旅,请查看 Quantra 关于量化交易策略和模型的课程,该课程教授基本的技术交易策略,如基于趋势的策略和布林线策略,它们也可以在实时市场上交易。立即注册!


免责声明:本文提供的所有数据和信息仅供参考。QuantInsti 对本文中任何信息的准确性、完整性、现时性、适用性或有效性不做任何陈述,也不对这些信息中的任何错误、遗漏或延迟或因其显示或使用而导致的任何损失、伤害或损害负责。所有信息均按原样提供。****

如何通过 Python 股票 API 获取历史行情数据

原文:https://blog.quantinsti.com/historical-market-data-python-api/

由克里斯托夫·勒鲁和雷希特·帕查内卡拍摄

作为一个量化交易者,你总是在寻找创造和优化你的交易策略。回溯测试是这个过程中非常重要的一部分。对于回溯测试,访问历史数据是必要的。但是找到合适的历史价格数据来回溯测试你的交易策略是一项非常艰巨的任务。

虽然简单的谷歌搜索可以给你任何股票的收盘数据,但下载并为你的策略代码做好准备可能是一项任务。如果你正在创建一个需要许多不同资产类别的投资组合,那么所需要的时间将是巨大的。如果您只需运行几行代码并接收数据,不是更简单吗?

这个博客将会做到这一点。我们将研究免费和付费的解决方案,所有这些解决方案都有一个围绕其服务的易于使用的 Python Stock API 包装器。对于每种类型的解决方案,我们将查看哪种资产类型(股票、ETF、外汇、商品期货、期权、国债,甚至是密码)。这些资源提供了关于如何以各种方式检索它的信息,当然还有 python 代码中的一个例子。

这篇文章的结构如下:


使用 Python Stock API 免费解决历史数据

从正确的来源获取财务数据非常重要。虽然有许多免费的数据提供者,但你必须确保质量是好的。自由数据的问题是,在读数中可能会有一些不一致,或者有时几个字段也是如此。

因此,一旦检索到数据,就要对其进行检查。现在,让我们详细看看一些提供者。


雅虎!金融——使用 Python 股票 API 获取数据

雅虎!金融是雅虎网络的一部分,于 2017 年被出售给威瑞森媒体。

按月流量计算,它是美国最大的商业新闻网站,提供财经新闻、数据和评论,包括股票报价、新闻稿、财务报告和原创内容。

他们提供关于加密货币市场数据,常规货币,商品期货,股票和债券,基本面和期权数据,以及市场分析和新闻。

雅虎曾经有自己的官方 API,但这在 2017 年被关闭,它在 2019 年的某个地方重新活跃起来。

代码示例是在 Google Colab 中制作的,但是当然可以在任何 jupyter notebook 服务器或本地 python 文件中执行(预先安装了依赖项)。我们将使用著名的 matplotlib 来绘制我们的数据。

使用 Python stock API 获取单个资产的数据

首先,我们从检索单个 ETF 的每日历史价格数据开始,让我们以 SPDR 标准普尔 500 ETF 信托(SPY)为例,绘制这些数据。

算法交易、HFT 和新闻交易的历史

原文:https://blog.quantinsti.com/history-algorithmic-trading-hft/

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 1602 年——阿姆斯特丹证券交易所

阿努普里亚·古普塔

据估计,2013 年 70%的美国股票是通过自动交易实现的。根据分析师的说法,算法交易占印度现金股票总量的三分之一,几乎占衍生品部分总量的一半。尽管 HFT 是金融新闻中最具争议的话题之一,但它仍被广泛使用,并不断扩大其在新兴市场的影响力。让我们回顾一下这种技术驱动的交易技术的历史和所涉及的风险。

证券交易所的设立

从贸易历史的开端开始,我们可以追溯到四个世纪前的 1602 年。

VOC(荷兰东印度公司或 Vereenigde Oost-in dische Compagnie)股票的二级市场始于 17 世纪的第一个十年。1602 年,荷兰东印度公司启动了阿姆斯特丹从一个区域性集镇向主导性金融中心的转变。随着易于转让的股票的引入,几天内买家就开始交易它们。很快,公众开始参与各种复杂的交易,包括远期、期货、期权和空头突袭,到 1680 年,阿姆斯特丹市场上使用的技术和我们今天使用的一样复杂。

高频交易的早期开端

高频交易是为了提高信息传播的速度。一个 HFT 交易者利用尖端的技术创新比任何人都更快地获得信息,然后比任何人都更快地执行他的交易指令。有趣的是,快速信息传递的现象可以追溯到 17 世纪的 T2。一个有趣的轶事是关于内森·梅尔·罗斯柴尔德在伦敦政府之前知道惠灵顿公爵在滑铁卢战胜了拿破仑。

汤森路透的创始人朱利叶斯·路透在 19 世纪(T2)使用了包括电报电缆和一队信鸽在内的综合技术来运行新闻传送系统。你可以在这篇文章中阅读所有关于路透社通讯页面的内容,这篇文章描述了历史上第一次高频交易创新。

二十世纪股票市场的发展

“美国股市最大的结构性变化可能是 1900 年至 1929 年左右铁路的消亡,以及 1982 年至 2007 年左右金融业的崛起,”拉塞尔·纳皮尔说。

股票市场的历史就是经济变化的历史。

金融市场中订单流的计算机化始于 20 世纪 70 年代初,一些里程碑式的事件是纽约证券交易所“指定订单周转”系统(DOT,以及后来的 SuperDOT)的引入,该系统以电子方式将订单发送到适当的交易站,由交易站人工执行。“开盘自动报告系统”(OARS)帮助专家确定市场清算开盘价(SOR 智能订单路由)。

创新市场体系迈克尔彭博于 1983 年推出。1981 年,所罗门兄弟公司的普通合伙人迈克尔·彭博获得了 1000 万美元作为合伙协议。为所罗门设计了内部电脑化财务系统后,彭博建立了自己的创新市场系统(IMS)。美林向 IMS 投资了 3000 万美元,帮助开发彭博终端计算机系统,到 1984 年,IMS 向所有美林客户出售机器。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

社会和技术剧变是人类历史上反复出现的主题,推而广之,也是股票市场的主题。

算法交易的开始

20 世纪 80 年代末和 90 年代发展了完全电子化执行和类似电子通信网络的金融市场。在美国,十进制将最小报价单位从 1/16 美元(0.0625 美元)改为每股 0.01 美元,这可能鼓励了算法交易,因为它通过允许买卖价格之间的较小差异改变了市场微观结构,降低了做市商的交易优势,从而增加了市场流动性。

直到 1998 美国证券交易委员会(SEC)授权电子交易所为计算机化的高频交易铺平了道路。HFT 执行交易的速度比人快 1000 倍。从那时起,高频交易(HFT)变得非常普遍。

高频交易的繁荣

到 2001 年,HFT 交易的执行时间只有几秒钟。到 2010 年,这一时间缩短到毫秒,甚至微秒,随后在 2012 年缩短到纳秒。21 世纪初,高频交易占股票订单不到 10%,但这一比例增长迅速。根据纽约证券交易所的数据,在 2005 年和 2009 年之间,的高频交易量增长了 164%。

瞬间崩溃

截至 2010 年,美国 56%的股票交易是由 HFT 完成的。2010 年 5 月 6 日,一笔价值 41 亿美元的电脑销售引发了5 月闪电崩盘,道琼斯指数在一个交易日内暴跌 1000 点。近 1 万亿美元的市值被抹去,在 5 分钟的时间内下跌了 600 点,随后才恢复。美国证券交易委员会和 CFTC 将此次崩盘主要归咎于 HFT 公司。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

交易技术的创新

2011 ,标志着纳米交易技术的推出之年。一家名为 Fixnetix 的公司开发了一种可以在纳秒(相当于十亿分之一秒)内执行交易的微芯片:

1 纳秒= 0.000000001 秒

基于新闻的黎明交易

【2012 年 9 月 Dataminr 投资 3000 万美元推出全新服务,将社交媒体流转化为可操作的交易信号。这有助于报道最新的商业新闻,比传统的新闻报道快 54 分钟。该平台能够识别许多独特的**【微趋势】**,为客户提供独特的见解,帮助他们预测世界可能很快会关注什么。其中一些信号包括现场聊天、消费者产品反应、利基在线社区的讨论转移以及公众注意力的增长和衰退模式。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

检测 Twitter 上每天分享的超过 3 . 4 亿条消息的语言和传播模式是实时分析引擎的一些功能,该引擎处理公共推文的聚合。

在 2012 年期间,HFT 席卷了股票市场,并负责 70%的美国股票交易。IT 公司在 HFT 技术上投资数百万。一种专门为 HFT 制造的新计算机芯片在 0.000000074 秒内准备好交易;一条拟议中的3 亿美元的跨大西洋电缆正在建设中,目的只是为了将纽约市和伦敦之间的交易时间缩短 0.006 秒。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

美国联邦调查局对社交媒体的监控以及社交媒体对证券日益增长的即时影响,2013 年 4 月 2 日证交会日和【CFTC】日日对通过社交媒体发布上市公司公告实施限制。

Twitter 数据被用于交易

在美国证券交易委员会和 CFTC 于 2015 年 4 月 4 日实施限制后仅仅两天,彭博终端公司就将实时推文整合到其经济数据服务中。彭博社交速度追踪关于特定公司的异常聊天记录。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

影响股票市场的异常新闻事件的一个值得注意的例子是从 2013 年 4 月 23 日下午 1:05 分——这一天美联社账户发送了一条错误的推文,称白宫遭到两次爆炸袭击;这在华尔街引起了广泛的恐慌。道琼斯指数在 3 分钟内暴跌 143 点(1%),从 14699 点跌至 14555 点。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

首次同地办公

将 HFT 公司和自营交易者拥有的计算机放置在交易所的计算机服务器所在的同一场所。这使得 HFT 公司能够比其他投资者提前一秒了解股票价格。对交易所来说,协同定位已经成为一项有利可图的业务,交易所向 HFT 公司收取数百万美元的“低延迟访问”特权费

为了追求速度,总部位于丹佛的数据中心公司 CoreSite 运营着一个设施,交易者可以在华盛顿市中心安装所谓的“协同定位”计算机。

快,快,最快

整个想法是获得联邦数据的速度比那些耐心等待数据以光纤线路传输到纽约、新泽西和芝加哥市场的交易员快几毫秒。所有这一切——信息从华盛顿到新泽西、纽约和芝加哥的市场服务器的传输、翻译和交易——都比人类思维的速度快。一个人眨眼需要 300 毫秒。但是参与这场电信军备竞赛的公司将一毫秒视为胜利或失败的边缘。

在过去的 20 年里,买家希望支付的价格和卖家希望得到的报酬之间的差距已经大幅缩小。其中一个原因是精确度的提高,股票价格已经从零头交易变成了便士交易。HFT 方面还向市场注入了更多流动性,消除了买卖价差,这在以前是不可能做到的。

下一步

如果你是一名散户交易者或专业技术人员,想要建立自己的自动化交易平台,今天就开始高频交易培训!从基本概念开始,如自动交易架构市场微观结构策略回溯测试系统订单管理系统。你也可以报名参加 EPAT,这是业内最广泛的算法交易课程。

从酒店到 Algo Trading 的旅程|澳大利亚迭戈

原文:https://blog.quantinsti.com/hospitality-sales-marketing-algo-trading-epat-success-story-diego-palacio/

Diego Palacio 来自澳大利亚,拥有超过 15 年的工作经验。他是一个非常热情的人,多年来已经获得了无数的技能。

我们很高兴分享他的旅程,从在酒店行业工作,做各种工作,转向销售和营销,现在终于进入算法交易领域。迭戈还持有算法交易管理课程(EPAT)的优秀证书。

这是他的故事。


嗨,迭戈,给我们介绍一下你自己吧!

你好,我叫迭戈·帕拉西奥。我来自哥伦比亚,大约 13 年前移民到澳大利亚。我来到这个美丽的国家学习英语,现在这里是我的家。我在财务规划行业做总经理。

我毕业于东方大学,获得了工商管理学士学位。我还获得了邦德大学的金融硕士学位和彭博的一些专业证书。

我是一个非常简单的人。哥伦比亚的文化非常注重家庭,我非常感谢我的家人能和我在一起。他们的支持非常重要,我尽量多花时间和他们在一起。天气很好,我们有很多烧烤,去海滩,看电影系列,尽量享受生活。

新冠肺炎彻底改变了世界。我们最近经历了很多停工期。但是我觉得我们生活在澳大利亚是非常幸运的。事实上,我可以在家工作,这让我能够更经常地了解市场。它为我提供了一个保持健康的工作生活平衡的机会。

我喜欢在业余时间看书。我也一直在学习,我喜欢参加短期课程来获得新的技能。足球是我的激情之一,我会尽可能的看马竞的比赛。最近,我和我的妻子一起园艺,这是非常放松的。

我是耶稣的信徒,我的见证是,我所取得的一切都是因为他在我生命中的存在。


我们很想听听你从 BBA 到金融,再到现在的算法交易的旅程!

我一直对市场很感兴趣。与投资组合管理和投资分析相关的工作一直令我感兴趣。在澳大利亚,有多种执照要求,很难在那个领域获得机会。

由于语言不通,我的工作经历是从酒店行业当洗碗工开始的。一开始,我过得很艰难,签证限制只允许我做兼职。

尽管如此,我还是在那个行业工作了七年,并且有机会从一名厨师一步步升到餐厅经理。有了接待经验后,我转到了销售部门。这非常具有挑战性,作为一名职业球员,我真的获得了成长。

语言不再是障碍,因此,我决定攻读金融硕士。我想回到金融行业,提高我的生活质量,并通过我的职业生涯获得满足感。

硕士期间的一门课程是金融交易系统,我接触了 R 语言。我明白编码技能有多强大。然而,我从没想过我自己也能做到。

硕士毕业后,我开始在一家财务规划公司工作,担任准规划师。该职位涉及投资分析和 Excel 建模。有了这个,我的市场敞口增加了,我对量化金融产生了浓厚的兴趣。

我做了几个月的 Paraplanner 经理,然后被提升为项目经理/业务分析师,在那里我学到了更多关于数据科学、编码和系统的知识。

我的同事向我介绍了 Python,这让我开始了算法交易,这让我享受到了金融和编码两个世界的精华。就在那时,我决定涉足量子金融,并找到了 EPAT。


EPAT 在你的生活中扮演了什么角色?

当我决定涉足量化金融时,我研究了多种选择,很难找到一门课程完全专注于算法交易。

有可能找到主题与交易和金融相关的短期课程,但它们并不是我想要的。这就是 EPAT 出现的时候。它的课程很有挑战性,涵盖了所有重要的科目。

课程中涉及的许多主题是我在理论上知道的,但从未有机会实际应用。EPAT 帮助我提高了编程技能,并将我的金融知识运用到实际场景中。

我不是 IT 人士,EPAT 项目对我来说有点挑战性。但是,关键是要循序渐进,花时间和精力。这样,看起来很难的事情变得更容易,也更享受。

我必须说,教员们的支持是惊人的,经理们在每一条道路上都指引着我,他们帮助我回答问题。当然,我为自己目前的编码技能感到自豪,而且总是有更多需要改进的地方!

由于我所在的时区,很难参加所有的现场讲座。我发现 EPAT 的 LMS 非常方便,因为它允许我事后观看讲座。

最后,EPAT 在我的生活中有一个重要的角色。事实上,我可以回来并终生访问这些内容,这使我能够及时了解最新的变化。我不得不不断回顾那些我还没有应用到我的策略中的话题。


你给所有有抱负的算法交易者的信息。

我真的相信任何人都可以成为算法交易者,不管你来自什么背景。如果你没有任何编码经验,也不要着急,一步一步来就好。

对自己有耐心,庆祝你的“胜利”,随着时间和努力,你将实现你的目标。

不要指望你会一头扎进课程中,找到一个简单的课程,EPAT 项目无疑是具有挑战性的,但课程设计良好,得到的支持将帮助你克服学习道路上的任何挑战。

最后,你将学到的技能可以应用到不同的知识领域,学习 Python 是非常有用和有价值的。

谁可以学习算法交易


这是一个可靠的建议,迭戈。纪律、奉献、团队合作和目标设定能帮助你实现的目标是无限的。我们相信你的旅程会激励很多人。感谢您与我们分享您的旅程,我们祝您在成为成功的 Algo 交易者的旅途中好运。

如果你也想用终生的技能来武装自己,这将永远帮助你提升你的交易策略。这门 algo 交易课程的主题包括统计学和计量经济学、金融计算和技术、机器学习,确保你精通在交易领域取得成功所需的每一项技能。现在就来看看 EPAT 吧!


免责声明:为了帮助那些正在考虑从事算法和量化交易的人,这个成功的故事是根据 QuantInsti EPAT 项目的学生或校友的个人经历整理的。成功案例仅用于说明目的,不用于投资目的。EPAT 方案完成后取得的成果对所有人来说可能不尽相同。T3】

如何成为一名独立的算法交易员?

原文:https://blog.quantinsti.com/how-become-independent-algorithmic-trader/

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

算法交易是使用计算机程序来自动化你的策略,以获得更高的利润。你可以选择通过一个结构化的综合课程来获得开始交易所需的基本技能,或者你可以自学。协助可以为你提供正确的方向,从而最大限度地减少寻路的时间。

QuantInsti 的算法交易(EPAT)高管课程(T1)是一门全面的课程,在六个月的时间里,它可以帮助你建立自己的算法交易公司,或者开始独立交易。课程结构提供的理论和实践知识为如何管理和回溯测试数据、编程语言和交易策略提供了专业指导。

该课程广泛涵盖期权、衍生品和风险以及开始交易所需的自动交易系统。EPATians 人还接受 excel 基础知识、数据可视化、各种模型应用等方面的培训。使用模拟和理解结果预测未来股票价格的随机行走模型,资本资产定价模型。

我们向您介绍了我们的一位 EPATian 员工劳伦斯·特劳德·K·拉吉,他在技术领域已经工作了二十多年,领导过不同的业务部门。

以下是 Raj 先生对他的经历的描述。

What did you learn from this course?

成功完成 EPAT 课程后,我现在看待市场的方式与我在课程开始前完全不同。EPAT 给了我很好的实践经验和概率思维知识,回测了许多算法策略、市场微观结构、买卖价差、衍生品市场交易等。EPAT 课程由各自领域的专家授课,这进一步丰富了我的经验。

我想感谢两位老师,他们的讲座对我的学习产生了深远的影响。

Nitesh Khandelwal 先生:感谢他关于 ATR 策略、excel 编程的会议,以及他对我的最终项目的支持。

Yves Hilpisch 博士:让 Python 易于理解。他关于如何对策略进行编码和回溯测试并将其付诸实践的会议极大地激励了我开发 Python 编程技能。

今天,我已经成功地从零开始开发了我的算法交易系统,并开始了我自己的交易公司。

What is your educational and professional background?

我来自一个非金融和非编程的背景。在我 20 多年的职业生涯中,主要是在技术支持方面,我曾以各种角色和身份管理过团队,包括在 Sify、戴尔、Tesco、微软等公司担任技术支持总监。在经历了多年的支持后,我想换个方向做一些完全不同的事情,重新开始我的学习过程。股票市场最让我兴奋,因为它不断变化的性质,高度竞争,具有挑战性和专注的工作环境。

我选择股票交易作为我的下一个职业发展方向。我开始阅读算法交易书籍和关于市场、股票交易、策略等的网络文章。在将近一年的时间里,我开始了日内手工交易,以获得实践经验。手工交易的经历是成功和失败的混合体,我总觉得缺少了什么。我觉得需要一个结构化的学习过程。

How do you know about QuantInsti & Why did you choose QuantInsti?

我参加了 2016 年 10 月 Zerodha 主办的 QuantInsti 的会议。从那时起,我开始了解 Quantinsti 和他们的 EPAT 项目。这门课程符合我的要求。EPAT 让我对市场、市场微观结构、算法、策略和交易的基本编程技巧有了基本的了解。

How did you find the employment opportunities offered by QuantInsti?

虽然我选择了自己交易,但是实习机会非常有趣,EPAT 课程提供了足够的基础知识来抓住这些机会。

Would you recommend QuantInsti to others who wish to engage in algorithm trading?

当然,这个课程会帮助任何对算法交易有热情的人。

下一步:

和 Raj 一样,你是否热衷于学习更多关于算法交易的知识?联系我们,了解不同的金融策略世界观。 QuantInsti 帮助人们获得适用于各种交易工具和平台的技能。算法交易(EPAT)的高管课程涵盖了统计学&计量经济学、金融计算&技术和算法&量化交易等培训模块。EPAT 让你具备成为成功交易者所需的技能。

对冲基金如何使用杠杆?

原文:https://blog.quantinsti.com/how-hedge-funds-use-leverage/

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者布兰登·姆西曼加

定义“对冲”

生活中总有我们希望能够摆脱的东西,我们希望,通常不受贪婪支配的非常聪明的人迟早会有惊人的新发现来保护自己免受未来风险的可能性。正是因为人们了解不确定性的影响,所以在某种意义上,他们常常希望“消除”这种变化的风险。如果我们认为即使有了这些新发明,我们也能够摧毁改变的机会,那就太天真了,因为这个世界并不完美,但正是完美和不完美的平衡让这个星球和平地在其轴上。

让我们说,我们都知道,当冬天来临的时候,感染流感的几率会翻倍,所以当冬天开始降临的时候,人们会接种疫苗,脱掉厚重的夹克和鹅毛羽绒被,作为预防流感的措施。就像一个安全网。就像金融界的一切事物一样,我们也有许多具有相似特征的事物。例如,一份保险单可以消除你遭遇意外时的经济压力,但这些东西都不是免费的。我们毕竟是金融部门,我们的主要目的是让我们的钱增长。因此,在投资方面,我们也开发了某些工具,以消除放弃你的钱来购买一项有望在未来产生回报的资产所涉及的一些风险,这就是对冲。

对冲就是进行投资以降低未来亏损的风险,因为价格是不稳定的,我们无法控制。套期保值通常在我们处理未来要买卖的东西时使用。根据定义,对冲基金是一种受管理的投资组合,它适应不同的投资策略头寸,通过押注未来价格的波动来获取更高的利润。对冲基金基本上是一种投资基金,需要相当高的最低投资资本,由私人实体管理。

使用杠杆

杠杆是利用借来的资本或股本进行投资,期望获得的利润将大于应付利息。在投资行业中,杠杆是一个非常重要的工具,对冲基金也利用杠杆。

对冲基金目前正借入更多资金购买股票,通过纽约证券交易所经纪商发放的贷款已达到 4 年来的最高点。这表明信心正在增强,信心水平可能会达到 2008 年的水平。据摩根士丹利称,投机股价涨跌的对冲基金经理的杠杆率达到了至少自 2004 年以来从未有过的水平。

纽约证交所杠杆率上升是一个积极迹象,表明对冲基金经理和投资者等人士的信心有所增强。这也表明,投资者有足够的信心,以积极的预期向对冲基金经理提供信贷。经济增长的一个必要条件是投资者应该有一个积极的预期。

然而,杠杆意味着,如果股市下跌,对冲基金可能会遭受更大的损失。如果市场继续朝着同一个方向发展,风险会带来一些高回报。对冲基金经理押注,低于 60 年平均水平 9.8%的创纪录收益和估值,将有助于推动标准普尔 500 指数逼近 2007 年 10 月创下的纪录。

对对冲基金行业来说,今年将是非常重要的一年,投资者和对冲基金经理都将密切关注市场。杠杆率上升可能表明对冲基金和机构投资者感到放心。许多对冲基金利用杠杆持有超过其资本的多头和空头头寸。然而,值得注意的是,对冲基金并不总是利用杠杆。

使用过多杠杆的负面影响是,它可能对金融体系产生灾难性影响。对冲基金和投资行业中的其他公司可以积极地使用杠杆来增加利润,但从消极的方面来看,当使用杠杆导致损失时,损失也会增加。一些投资者已经对自 2008 年以来从未见过的创纪录高杠杆水平表示担忧。人们担心股价下跌会导致股市和经济螺旋式下降。这一点很重要,因为一些投资者正在筹集资金,而且对冲基金的杠杆水平必须受到密切关注和监管,以防止在股市价格大幅下跌的情况下出现巨额亏损。

很明显,对于对冲基金经理来说,杠杆是一个非常重要和有用的工具,但当公司使用过多杠杆时,可能会给金融体系带来问题。最成功的对冲基金经理确切知道什么时候使用杠杆是有利的,什么时候可能是不利的。

您可能还想了解金融机构的风险管理、银行的资产负债管理以及风险和资产管理的职业机会

技术和金融专家如何成为 Quants?

原文:https://blog.quantinsti.com/how-technical-financial-experts-become-quants/

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

股票市场提供了广泛的职业机会。如果你从事业务开发、战略或技术方面的工作,这篇文章将告诉你如何转向盈利方面。良好的行业工作知识会给你巨大的推动。

你了解市场框架的功能和交易所的工作流程。你已经知道是什么影响了上市公司的长期头寸。制定交易策略和适用的技术理解(比如编程语言和平台)是成为量化分析师所需要的。确定你的财务目标,起草你自己的战略,获得技术敏锐度,你就可以开始了。实现你目标的一个方法是聪明方法。

请继续阅读,了解 Maxime Fages T1 是如何加入 QuantInsti 的,他有着强大的并购和公司战略背景。获得认证后,马克西姆创办了自己的量子研究公司。德瑞克,Maxime 在这个新项目中的合作伙伴也是 QuantInsti 的校友,他们两人是在认证课程中认识的。他们的合资企业金罗盘做得非常出色,现在是我们的招聘合作伙伴之一。

下面是马克西姆·法吉斯的详细讨论

Tell us a little about yourself?

我是法国人,但已经在新加坡生活了 4 年多。事实上,我的妻子,我的儿子里昂和我都是公关,新加坡对我们来说越来越像家了。我一直对科技有浓厚的兴趣。我是一名训练有素的工程师,我喜欢在家里试验新的处理或可视化框架。为了休息,我制作电子音乐,冲浪,或者在家附近,我发现了巴西柔术,我喜欢它。

When did you discover your passion for the financial market? (especially quantization and algorithmic transactions)

我来自 M&A 那边。我一直在为一笔大宗交易的资产定价,最终有机会进入一家初创基金。虽然我最初的角色是一名专家,但我很快接手了投资组合构建的重要部分。新兴基金的风险状况至关重要,我很快发现我需要新的工具和概念来管理它。尽管我对 Excel 掌握得很好(可能现在仍然如此),但所需的数据量和处理量实在是太多了。我发现了 R,以及一些非常有趣的风险定价概念。例如,预期短缺。

How did you come into contact with QuantInsti’s EPAT project?

在那次经历之后,我在芝加哥商品交易所工作,负责亚洲战略。这是一家不可思议的公司,拥有无可否认的最广泛的产品范围,我非常喜欢在那里的工作。我在亚洲交易时段研究了 CME 产品的微观结构,因为对客户来说,什么比流动性更重要?

我渴望看到事情的执行方面,并寻找一个程序。我从一个自营交易客户那里听说了它,它的形式、范围和持续时间都符合我的要求。

How was your study experience?

太糟糕了!在有固定工作的同时管理个人研究,并在周六和周日参加网络会议是一项艰巨的任务。好的一面是,大部分内容对我来说都很新奇,而且是由从业人员教授的。我发现他们很容易接近,并热衷于在课后通过电子邮件甚至打电话来回答问题。

我特别热衷于使用执行系统,超越托管服务器模型,评估机器学习的潜力。那时,我和德里克的互动非常频繁,交换研究论文或有趣的 githubs。我们有一个雄心勃勃的范围,所以我们问,并获准作为一个团队工作。我们最终得到了一个有趣的交易系统,它使用基于云的模型来进行 WTI 当天的交易。

When and how did you come up with the idea of starting your own quantitative research company?

在 EPAT 之后,我们继续实验。在 TeamViewer 和微信上聊了 6 个多月后,我们终于见面了。我们在曼谷相遇,因为它位于新加坡和北京的中间,非常不真实!我们的一个共同点是,我们都是期货和期权的人,虽然量化技术和算法交易正在成为主流,但期货仍然不太容易获得。

因此,在不止一个方面,黄金罗盘源于我们对期货的热情,以及我们想要分享期货交易中许多令人难以置信的酷事情的愿望。我们对未来有雄心勃勃的计划,包括开源对交易栈的全面研究,以及投资组合模拟和报告。不过现在,我们解决的是作为德里克的客户和我的战略家的需求。交易所、经纪商和资产管理公司都意识到了客户日益复杂的需求。内部研究费用昂贵,而且越来越受到监管。因此,他们需要一个可靠的提供商来设计关于他们分发的产品的突出和可操作的内容。

So far, how is your golden compass plan going?

难以置信的满足!不幸的是,我们受到严格的 NDA 的约束,但我们确实有几个大型区域交易所作为客户,我们看到他们的工作性质越来越考验我们的技能。我们拥有坚实的基础设施和非凡的人才(包括我们通过 QI 聘用的一些人才)。漫长的白天和夜晚,但它令人难以置信的兴奋。

What does the future look like? (for the company and the whole industry)

整个资产管理行业都面临压力。波士顿咨询集团发布了一份有趣的报告,概述了该行业的结构变化。十多年来,AuM 的净流量一直很低,产品组合正转向被动或更便宜的选择。这让 AM 的利润率面临压力,每个人都在关注成本。在这种情况下,系统基金表现相当不错,但我坚信,许多资产配置者甚至个人现在都希望尽可能地做自己的聪明贝塔或阿尔法。

这对我们来说是一个积极的趋势,因为我们的研究旨在让交易者更接近可行的解决方案。下一步是开源量化技术,我们也已经接触到编写策略。不过,这是未来,目前,我们需要管理增长和销售渠道。

How does EPAT help you? Would you recommend it to others?

首先,对我来说,这是一次与德里克的不可思议的相遇,但我也很感激校友们不断扩大的影响。我也打电话给教员或 QuantInsti 的团队寻求支持,总是得到可靠的答案。课程非常有趣,并提供了一个很好的基础。当然,如果你想成为分散策略专家或执行策略专家,你需要付出更多的努力,但至少你有一个大致的方向。

有抱负的量化分析师或企业家的动机

你是否也梦想成为一名量化交易者或者创办自己的交易公司?我们确信马克西姆的故事鼓舞了你的计划。加入我们强大的领先校友和全球教师队伍。查看算法交易(EPAT)中的执行程序。课程涵盖统计学&计量经济学、金融计算&技术和算法&定量交易等培训模块。EPAT 让你具备成为成功交易者所需的技能。立即报名!

请分享你作为算法交易者/定量分析师的评论和经验。我们很想听听你鼓舞人心的职业旅程!

如何用 R 设计 Quant 交易策略?

原文:https://blog.quantinsti.com/how-to-design-quant-trading-strategies-using-r/

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这篇博客简要介绍了使用 R 进行策略回溯测试的概念。在深入研究使用 R 的交易术语之前,让我们花一些时间来理解 R 是什么。r 是开源的。目前有超过 4000 个附加包,18000 多个 LinkedIn 群组成员和近 80 个 R Meetup 群组。这是一个完美的工具,用于统计分析,尤其是数据分析。CRAN 提供了一个软件包列表以及所需的基本安装。根据需要进行的分析,有许多可用的软件包。为了实现交易策略,我们将使用名为 quantstrat 的软件包。

任何基本交易策略的四个步骤

  1. 假设形成
  2. 测试
  3. 改善
  4. 生产

我们的假设被表述为“市场是均值回归的”。均值回归理论认为价格最终会回到平均值。第二步是测试假设,我们根据假设制定策略,并计算指标、信号和绩效指标。测试阶段可以分为三个步骤,获取数据、编写策略和分析输出。在这个例子中,我们考虑漂亮的蜜蜂。它是由高盛管理的交易所交易基金。NSE 具有巨大的仪器体积,因此我们考虑这一点。下图显示了相同的开盘价-最高价-最低价-收盘价。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们绘制收盘价的布林线。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们设定了一个阈值来比较价格的波动。如果价格上升/下降,我们更新阈值列。收盘价与高波段和低波段进行比较。当穿过上带时,这是卖出的信号。同样,当穿越较低波段时,是买入信号。编码部分可总结如下:-

  • 添加指标
  • 添加信号
  • 添加规则

下图给出了该策略输出的俯视图。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

因此,我们的假设,市场是均值回复是支持的。因为这是回溯测试,所以我们有空间改进交易参数,提高我们的平均回报和实现的利润。这可以通过设置不同的阈值水平、更严格的进场规则、止损等来实现。人们可以选择更多的数据进行回溯测试,使用 Bayseian 方法设置阈值,将波动性考虑在内。

一旦你对后验测试结果支持的交易策略有信心,你就可以进行实时交易了。生产环境本身是一个很大的话题,超出了本文的范围。简单来说,这包括在交易平台上写策略。

网络研讨会视频

https://www.youtube.com/watch?v=LkjpZ-pirGM

下一步

一旦你学会了使用 R 设计一个 quant 交易策略的基础,你可以看一看用 R 编码的交易策略的例子,也可以学习一下如何开始使用 R 中的 quantmod 包。你也可以看看我们的交互式自定进度 10 小时长的数据营课程’在 R 建模量化交易策略’

如何设置自动交易[网上研讨会]

原文:https://blog.quantinsti.com/how-to-set-up-automated-trading-17-march-2022/

https://www.youtube.com/embed/CcWLRe9vM7c?rel=0


演示文稿

https://www.slideshare.net/slideshow/embed_code/key/K2Y0UzgxJUIz8L?hostedIn=slideshare&page=upload


关于会议

自动化无处不在!在我们生活的世界里,你可以获得某些没有人监督的产品。自动化正在改变整个行业,贸易世界会被甩在后面吗?

加入我们这个有趣的会议,在这里我们讨论交易过程,以及我们如何自动化某些任务,以最大限度地提高我们的效率。我们还将简要介绍如何实现交易策略的自动化。

会议大纲如下:

  • 什么是自动化?
  • 对自动化的需求
  • 交易的过程
  • 交易流程各个方面的自动化
  • 创建简单的基于规则的策略
  • 自动化简单的交易策略
  • 问与答(Question and Answer)

关于演讲者

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

雷希特·帕查内卡尔(Quant 分析师,QuantInsti)

雷希特·帕查内卡在 IIM·印多尔完成了他的计算机工程,接着又完成了他的 PGDM。他是 Quantra 内容团队的一员,研究股票和固定收益证券。工作之余,他喜欢阅读市场中的异常数据,并怀着浓厚的兴趣关注特斯拉公司(Tesla Inc .)。


本次活动于:
2022 年 3 月 17 日星期四
东部时间上午 9:30 | IST 时间晚上 7:00 |新加坡时间晚上 9:30

赫斯特指数:计算,价值和更多

原文:https://blog.quantinsti.com/hurst-exponent/

维布·辛格瓦伦·迪瓦卡尔和阿希什·加尔格

在这篇博客中,我们将讨论时间序列分析中的一个重要概念:赫斯特指数。我们将借助一个例子来学习如何计算它。

首先让我们了解一下什么是赫斯特指数。


赫斯特指数定义

赫斯特指数被用来衡量时间序列的长期记忆。它与自相关有关(你可以阅读更多关于自相关和自相关的内容。)以及它们随着值对之间的滞后增加而减小的速率。


赫斯特值

赫斯特值大于 0.5

如果赫斯特值大于 0.5,那么它将表明一个持续的时间序列(大致相当于一个趋势市场)。

赫斯特值小于 0.5

如果赫斯特值小于 0.5,那么它可以被认为是一个反持续时间序列(大致翻译为横向市场)。

赫斯特值为 0.5

如果赫斯特值是 0.5,那么它将表明一个随机游走或一个不可能根据过去数据预测未来的市场。


如何计算赫斯特指数

为了计算指数,我们需要将数据分成不同的块。例如,如果您有过去 8 天的 BTC/美元的返回数据,那么您将它分成两半,如下所示。

以下 8 个观察值的示例仅用于说明目的 1 :

| 数据 | 组块 1 |
| Zero point zero four |
| Zero point zero two |
| Zero point zero five |
| Zero point zero eight |
| Zero point zero two |
| -0.17 |
| Zero point zero five |
| Zero |

1 在实际应用中,子序列的长度通常要长得多,并且会影响 R/S 统计的均值和标准差。

然后,我们将数据分成如下 3 个不同的缝隙:

  1. 第 1 部分-8 个观察值中的一个
  2. 第 2 部分——两大块,每块 4 个观察值
  3. 第 3 部分-四大块,每块两个观察值

| 数据 | 组块 1 |
| Zero point zero four |
| Zero point zero two |
| Zero point zero five |
| Zero point zero eight |
| Zero point zero two |
| -0.17 |
| Zero point zero five |
| Zero |

| 数据 | 组块 2 | 组块 3 |
| Zero point zero four | Zero point zero two |
| Zero point zero two | -0.17 |
| Zero point zero five | Zero point zero five |
| Zero point zero eight | Zero |

| 数据 | 组块 4 | 组块 5 | 组块 6 | 组块 7 |
| Zero point zero four | Zero point zero five | Zero point zero two | Zero point zero five |
| Zero point zero two | Zero point zero eight | -0.17 | Zero |

将数据划分为区块后,我们对每个区块执行以下计算:

第一步

首先,我们用 n 次观察来计算数据块的平均值,

M = (1/n) [ h(1)+h(2)+...+h(n) ]

| 数据 | 组块 1 |
| Zero point zero four |
| Zero point zero two |
| Zero point zero five |
| Zero point zero eight |
| Zero point zero two |
| -0.17 |
| Zero point zero five |
| Zero |

| 数据 | 组块 2 | 组块 3 |
| Zero point zero four | Zero point zero two |
| Zero point zero two | -0.17 |
| Zero point zero five | Zero point zero five |
| Zero point zero eight | Zero |

| 数据 | 组块 4 | 组块 5 | 组块 6 | 组块 7 |
| Zero point zero four | Zero point zero five | Zero point zero two | Zero point zero five |
| Zero point zero two | Zero point zero eight | -0.17 | Zero |

第二步

然后我们计算 n 次观察的标准偏差

s(n) = STD( h(1)+h(2)+...+h(n))

| 表示 | Zero point zero one one |
| 标准 | Zero point zero seven two |

| 表示 |  0.048 | -0.025 |
| 标准 | Zero point zero two two | Zero point zero nine nine |

| 表示 | Zero point zero three | Zero point zero six five | -0.075 | Zero point zero two five |
| 标准 | 0.0141 | Zero point zero two one | Zero point one three four | Zero point zero three five |

第三步

然后我们通过从观察值中减去平均值来创建一个以平均值为中心的序列,

x(1) = h(1) - M x(2) = h(2) - M ... x(n) = h(n) - M

| 以平均值为中心的序列的累积和 | Zero point zero two nine |
| Zero point zero three eight |
| Zero point zero seven six |
| Zero point one four five |
| Zero point one five four |
| -0.028 |
| Zero point zero one one |
| Zero |

| 以平均值为中心的序列的累积和 | -0.008 | Zero point zero four five |
| -0.035 | -0.100 |
| -0.033 | -0.025 |
| Zero | Zero |

| 以平均值为中心的序列的累积和 | Zero point zero one | -0.015 | Zero point zero nine five | Zero point zero two five |
| Zero | Zero | Zero | Zero |

第四步

然后,我们通过对以平均值为中心的值求和来计算累积偏差,

Y(1) = x(1) Y(2) = x(1) + x(2) ... Y(n) = x(1) + x(2) + ...+ x(n)

| 均值中心数列(h(n)-M) | Zero point zero two nine |
| 标准 | Zero point zero zero nine |

| 均值中心数列(h(n)-M) | -0.008 | Zero point zero four five |
| 标准 | -0.028 | -0.145 |

| 均值中心数列(h(n)-M) | Zero point zero one | -0.015 | Zero point zero nine five | Zero point zero two five |
| 标准 | -0.010 | Zero point zero one five | -0.095 | -0.025 |

第五步

接下来,我们计算范围®,即累积偏差的最大值和最小值之间的差值:

| 范围 | Zero point one eight two |

| 范围 | Zero point zero three five | Zero point one four five |

| 范围 | Zero point zero one | Zero point zero one five | Zero point zero nine five | Zero point zero two five |

第六步

最后,我们计算范围 R 与标准偏差 s 的比率。这也称为重新调整的范围

| 范围 | Zero point one eight two |
| R/S(范围/标准) | Two point five two eight |
| 平均 R/S | Two point five two eight |

| 范围 | Zero point zero three five | Zero point one four five |
| R/S(范围/标准) | One point six one seven | One point four six seven |
| 平均 R/S | One point five four two |   |

| 范围 | Zero point zero one | Zero point zero one five | Zero point zero nine five | Zero point zero two five |
| R/S(范围/标准) | Zero point seven zero seven | Zero point seven zero seven | Zero point seven zero seven | Zero point seven zero seven |
| 平均 R/S | Zero point seven zero seven |   |   |   |

第七步

一旦我们有了所有块的重新标度范围,我们就计算每个分区的平均值,并记下它以及该分区的每个块中的样本数,如图所示。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

| 范围 | Zero point one eight two |
| R/S(范围/标准) | Two point five two eight |
| 平均 R/S | Two point five two eight |

| 范围 | Zero point zero three five | Zero point one four five |
| R/S(范围/标准) | One point six one seven | One point four six seven |
| 平均 R/S | One point five four two |   |

| 范围 | Zero point zero one | Zero point zero one five | Zero point zero nine five | Zero point zero two five |
| R/S(范围/标准) | Zero point seven zero seven | Zero point seven zero seven | Zero point seven zero seven | Zero point seven zero seven |
| 平均 R/S | Zero point seven zero seven |   |   |   |

第八步

接下来,我们计算每个区域的大小和每个区域的重新调整范围的对数值。

| 总结 |
| 尺寸 | R/S | 日志大小 | R/S 日志 |
| eight | Two point five two eight | Two point zero seven nine | Zero point nine two seven |
| four | One point five four two | One point three eight six | Zero point four three three |
| Two | Zero point seven zero seven | Zero point six nine three | -0.347 |


结果

赫斯特指数“H”只不过是每个区间的对数(R/S)与每个区间的对数(大小)的曲线斜率。

这里 log(R/S)是因变量或 y 变量,log(size)是自变量或 x 变量:

| 赫斯特指数 | 0.918 |


结论

这个赫斯特指数值表明我们的数据是持久的,但我们必须记住,我们的数据集太小,无法得出这样的结论。

例如,如果你想用 python 中的‘hurst’库计算 Hurst 指数,它要求你至少给出 100 个数据点。

我们希望你已经从这篇博客中学会了如何计算赫斯特指数。在我们关于加密货币的高级课程中,我们展示了赫斯特指数和另一个技术指标如何产生优化的交易信号。


*免责声明:股票市场的所有投资和交易都涉及风险。在金融市场进行交易的任何决定,包括股票或期权或其他金融工具的交易,都是个人决定,只能在彻底研究后做出,包括个人风险和财务评估以及在您认为必要的范围内寻求专业帮助。本文提到的交易策略或相关信息仅供参考。*T3】

交易中的假设检验-逐步指南

原文:https://blog.quantinsti.com/hypothesis-testing-trading-guide/

维布·辛格

在这篇博文中,我们将了解什么是假设形成,以及如何在交易中进行假设检验。

建立量化交易策略需要一个严格的方法。任何量化交易系统都由四大部分组成:

  1. 假设形成-寻找策略
  2. 回溯测试和优化假设——获取数据,编码策略,分析性能
  3. 自动化策略-链接到经纪公司
  4. 风险管理-最佳资本分配、买卖规模等。

假设形成是关于你对市场的看法。如果你认为市场趋势看涨,你可以买入该资产;如果你认为市场趋势看跌,你可以做空该资产。但是为了验证假设,你需要进行假设检验。

假设检验

假设检验是对关于人口的假设或想法进行检验的系统化方法。在假设检验中,我们通过测量样本中的行为来了解更多关于人群的信息,因为样本与人群有些关联。例如,如果俏皮 50 指数中所有股票的回报率为 3%,并且我们从指数中随机选择 10 只股票,那么样本平均值的平均值将等于总体平均值。

假设你是一名分析师,你认为 Nifty 50 指数中所有股票的平均回报率都高于 3%。你假设收益是正态分布的。

假设检验方法

假设检验的方法可以概括为四个步骤:

  1. 陈述假设
  2. 设定决策标准
  3. 计算测试统计数据
  4. 做决定

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传第一步: 陈述假设

陈述假设是假设检验既定流程的第一步。它包括陈述无效假设和替代假设。

零假设:

在假设检验中,零假设通常是我们想要拒绝的假设。它通常用 Ho 表示,并且总是包含某种形式的等号。

在我们的例子中,零假设是:

何:μ< = 3的。

μ为总体均值。

替代假设:

备选假设是当零假设被拒绝时将被接受的陈述。它通常用 Ha 表示。

在我们的例子中,另一个假设是:

ha:μ**>**

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传第二步:设置判定标准

决策必须基于数据集的某些参数,这就是正态分布、显著性水平、单尾和双尾检验的概念出现的地方。

常态分布

正态分布是一种概率分布,其中大部分数值位于平均值附近,其他数值对称地位于平均值之上或之下。

对于正态分布,68%的值落在平均值的一个标准偏差内。95%的值落在平均值的两个标准偏差内,99.7%的值落在平均值的三个标准偏差内。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

显著性水平

显著性水平或显著性水平用于设定标准,根据该标准做出关于零假设的决定。它被定义为当假设为真时,检验统计量偶然拒绝原假设的概率。它用α或α 来表示。如果我们选择 0.05 的显著性水平,这意味着当假设为真时,我们有 5%的机会拒绝零假设。显著性水平为 0.01 意味着当零假设为真时,有 1%的机会拒绝零假设。

通常,显著性水平是在计算检验统计之前指定的,因为检验统计的结果可能会影响显著性水平的选择。

单尾检验

单尾检验意味着假设检验,其中拒绝区域出现在抽样分布的一侧。如果总体参数是“小于”或“大于”,那么我们使用单尾检验。例如,如果 Nifty 50 所有股票的回报率都大于 3%,那么进行的假设检验就是单尾检验。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

双尾检验

双尾检验表示假设检验,其中拒绝区域位于抽样分布的两侧。如果总体参数的特征是“等于”或“不等于”,那么我们使用双尾检验。例如,如果 Nifty 50 的所有股票的回报率等于 3%,那么它是一个双尾测试,我们可以拒绝基于任何一个尾的观察的零假设。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

替代假设决定了是将显著性水平置于抽样分布的一个尾部还是两个尾部。如果μ 是一个总体参数的实际值(如均值或标准差),μ 0 是我们假设的总体参数的值,那么:

| 替代假设 | 测试类型 |
| h1:μ≤t1【0】T2 | 双尾检验 |
| h1:μ>0 | 单尾(右) |
| h1:μ<0 | 单尾(左) |

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传第三步:计算测试统计量

在假设检验中,检验统计量被定义为从样本中提取的数量,用于决定是拒绝还是接受零假设。

计算检验统计量的一般公式是

检验统计量=【-样本统计量-根据空值的参数值】 / 样本统计量的标准误差(SE)

标准误差=标准差/ √(样本数)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传第四步:做决定

关于假设检验的决定是通过比较两个值做出的。

  1. 测试统计
  2. 临界值:临界值是检验分布上的一个点,它与检验统计量进行比较,以确定是否拒绝零假设。是显著性水平 (α ) 、概率分布以及检验是单尾还是双尾的函数。

单尾和双尾检验(正态分布)在三种常用显著性水平下的临界值。

| 显著性水平**【α】** | 单尾检验 | 双尾检验 |
| 0.05 (5%) | +1.625 或-1.625 | 1.96 |
| 0.01 (1%) | +2.33 或-2.33 | 2.58 |
| 0.001 (0.1%) | +3.09 或-3.09 | 3.30 |

对于双尾检验,显著性水平 (α ) 对半分开,放在正态分布的每个尾部,如上图双尾图所示。

如果检验统计量的值小于或等于临界值,我们拒绝零假设,并声明结果具有统计学意义。如果检验统计量大于临界值,那么我们不能拒绝零假设,我们声明结果没有统计学意义。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

其中,

Zα =显著性水平的临界值

错误类型

假设检验中有两类错误:第一类和第二类。

第一类错误:

类型 I 错误被定义为当零假设为真时拒绝零假设。犯 I 型错误的概率是α。α值为 0.05 表示当你拒绝零假设时,你愿意接受 5%的错误概率。选择较低的α值可以减少 I 型误差。

第二类错误:

当零假设是假的,我们没有拒绝它,我们犯了第二类错误。犯第二类错误的概率是β。我们可以通过增加样本量来降低犯第二类错误的风险。

结论

为了创造一个有利可图的交易策略,你需要有一个假设,为了验证一个假设,你需要进行假设检验。假设检验涉及的步骤有:

  1. 陈述假设
  2. 设定决策标准
  3. 计算测试统计数据
  4. 做决定

假设检验通常是我们开始制定交易策略的第一步。你可以通过检查算法交易策略包来浏览不同的策略。

建议阅读:

关于算法交易你需要知道的一切

免责声明:股票市场的所有投资和交易都有风险。在金融市场进行交易的任何决定,包括股票或期权或其他金融工具的交易,都是个人决定,只能在彻底研究后做出,包括个人风险和财务评估以及在您认为必要的范围内寻求专业帮助。本文提到的交易策略或相关信息仅供参考。

在交互式代理 API 中实现 Python 的 IBPy 教程

原文:https://blog.quantinsti.com/ibpy-tutorial-implement-python-interactive-brokers-api/

我希望您在参加我们关于使用 Python 与交互式经纪人进行 交易的网上研讨会时过得愉快。我认为这将是一个非常好的主意,给你一个关于交互式经纪人 API** 和使用 IBPy 在 IB 的 TWS 中实现 Python 的简要见解。**

随着我们的进行,你将需要一个交互式经纪人模拟账户和 IBPy。在本文快结束时,您将使用交互式代理 API 运行一个简单的订单路由程序。

我们涵盖的内容:


对于那些已经了解交互式经纪人(IB)及其界面的人来说,你可以很好地理解为什么我更喜欢 IB 而不是其他在线经纪人。但是,对于没有使用过 IB 的人来说,这可能是他们首先想到的问题:


为什么要互动券商?

互动经纪人是我的首选,原因很简单:

  1. 在 100 多个市场进行国际投资
  2. 极具竞争力的佣金率
  3. 低利润率
  4. 非常友好的用户界面
  5. 大量订单类型可供选择

上面说的五点,对任何一个初学者来说最重要印象最深的就是第二点和第四点了吧?

交互式代理 API 可以在专业环境中使用,即使是对它完全陌生的人也可以使用。交互式代理 API 与 Java、C++和 Python 的连接也令人印象深刻。

够了,是时候进入下一步了。我可以理解,你们中的大多数人一定已经迫不及待地想在交互式经纪人 API 面板上一试身手了。毕竟,没有人会拒绝一些既友好又有利可图的东西。

你可以很容易地在互动经纪人网站上设置你的账户。有一个选项,您可以选择免费试用包。

算法交易者更喜欢交互式经纪人,因为其相对简单的 API。 在这篇文章中,我将告诉你如何通过使用一个叫做 IBPy 的桥在交互式经纪人 API 中实现 Python 来自动化交易。

由于交互式经纪人为多种多样的交易者提供了一个平台,因此,它的 GUI 包含了无数的功能。这个独立的应用程序在交互式经纪人上被称为交易员工作站或**【TWS】**。

除了交易者工作站之外,Interactive Brokers 还有一个 IB 网关。这个特殊的应用程序允许 IB 服务器使用命令行界面访问它。Algo 交易者通常更喜欢用这个而不是 GUI。


IBPy 是什么?T3】

IBPy 是用于访问交互式经纪人在线交易系统的 API 的第三方实现。

IBPy 实现了 Python 程序员可以用来连接 IB、请求股票行情数据、提交股票和期货订单等功能。

IBPy 的目的是以一种可以从 Python 调用的方式来构思用 Java 编写的本机 API。IBPy 中最重要的两个库是 ib.ext 和 ib.opt。

通过 IBPy,API 执行订单并获取实时市场数据。该架构本质上利用了客户端-服务器模型。


在 Python 中实现 IB

首先,您必须有一个 Interactive Brokers 帐户和一个 Python 工作空间来安装 IBPy,然后,您可以将它用于您的编码目的。

安装 IBPy

正如我之前提到的, IBPy 是一个 Python 模拟器为基于 Java 的 交互式代理 API 编写的。IBPy 有助于将 Python 中的算法交易系统的开发变成一个不那么麻烦的过程。

为此,我将把它作为与互动经纪人 TWS 进行各种互动的基地。这里我假设你的系统上安装了 Python 2.7,否则你可以参考这里提到的安装指南


在 Ubuntu 上安装 IBPy

采集

IBPy 可以从 GitHub 仓库获得。

Ubuntu 系统需要以下代码:

sudo apt-get install git-core
创建子目录
mkdir ~/ibapi
T1】下载 IBPy
cd ~/ibapi

git clone https://github.com/blampe/IbPy

cd ~/ibapi/IbPypython setup.py.in install

太好了!你已经在你的 Ubuntu 系统上安装了 Python。


在 Windows 上安装 IBPy

去 github 库,从https://goo.gl/e6Idr6下载文件

解压缩下载的文件。将此文件夹移动到 Python 的安装目录,以便它可以识别此包:

\ \ anaconda 2 \ Lib \ site-packages

现在,使用 windows 命令提示符打开安装程序,并键入以下命令:

python setup.py install

在这之后,你必须让你的交易工作站(TWS)投入运行。


安装交易员工作站

互动经纪人交易工作站或 TWS 是图形用户界面,让所有注册用户的互动经纪人交易系统。别担心,即使你事先没有编程或编码知识,TWS 也会让你做交易工作。

你可以从互动经纪人的网站下载 TWS 安装程序,并在你的系统上运行。

你可以从这里下载 TWS 的演示:https://www.interactivebrokers.com/en/index.php?f=19903&invd = T

重要提示:

在旧版本的 TWS 中,用户可以选择两个不同的程序。第一个是互动经纪公司的 TWS ,第二个是我之前已经谈到的 IB 网关。虽然它们是不同的应用程序,但是,它们只能一起安装。

**IB 网关运行在较低的处理能力上,因为它没有像交易工作站那样改进的图形用户界面。然而,结果和其他数据以原始代码的形式显示在 IB 网关上,这使得对于某些不具备足够编码知识的用户来说不太友好。T3】

**您可以使用这两个界面中的任何一个进行互动经纪人的工作。两者的功能保持不变,即在您的系统和交互式代理服务器之间传递信息。不用说,Python 应用程序将从交互式代理的服务器端获得完全相同的消息。T3】


安装走查

下载应用程序后,您会在浏览器底部找到可执行文件。出现安全警告提示时,单击运行。

  • 现在,点击下一步。
  • 单击“完成”完成安装。
  • 点击桌面图标,启动 TWS 应用程序。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

由于我要使用模拟账户,因此,点击 没有用户名?T3】

  • 输入您的电子邮件地址,然后点击登录:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


交互式券商面板的配置

到目前为止,旅程还算顺利,不是吗?如果你同意我的观点,那就太好了。在安装了 TWS 和/或 IB 网关之后,在交互式经纪人服务器上实施我们的策略之前,我们必须对配置进行一些更改。只有更改这些设置后,软件才能正确连接到服务器。

程序

  • 转到 TWS 的 API 设置
  • 勾选启用 ActiveX 和 Socket 客户端
  • 插座端口设置为未使用的端口。
  • 将主 API 客户端 ID 设置为 100
  • 创建一个可信 IP 地址并设置为 127.0.0.1

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


运行第一个程序

那么,配置完成了吗?

太好了!我们现在准备运行我们的第一个程序。

在你开始输入这些代码之前,确保你已经启动了 TWS(或 IB 网关)。很多次,我都被问到为什么代码运行时会出现错误信息。

就像我在上一节提到的,你的系统通过 TWS 或 IB 网关连接到交互式经纪人的服务器。所以,如果你还没有打开它,那么你一定会得到一个异常消息,不管你开发代码有多聪明。

让我们开始一步一步地编写代码。

打开 Spyder(开始-所有程序- Anaconda2 - Spyder)

在 Spyder 控制台上,我将输入我的代码。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

步骤 1 -我们从导入代码所需的模块开始:

使用 Python 与交互式经纪人进行回溯测试和实时交易

https://blog . quantities . com/ibridgeppey-网络研讨会-2019 年 11 月 14 日/

https://www.youtube.com/embed/qLsxbiZgTho?rel=0

2019 年 11 月 14 日星期四

东部时间上午 9:00 | IST 时间晚上 7:30 |新加坡时间晚上 10:00

会议大纲:

  • IBridgePy 安装
  • 一个简单的算法交易策略,每日收盘反转
  • 浏览该策略中使用的代码和基本函数
  • 回溯测试使用 IBridgePy 中 IB 的历史数据的策略
  • 使用本地 csv 文件中的历史数据对策略进行回溯测试
  • 如何生活贸易战略
  • 向多个帐户下订单
  • 根据策略分析交易结果

还有更多…

扬声器简介:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

刘辉博士-教员,QuantInsti

算法交易执行计划他是 IBridgePy (与交互式经纪人交易的开源软件)的作者,也是 Running River Investment LLC 的创始人。他的主要交易兴趣是美国股票和外汇市场。Running River Investment LLC 是一家私人对冲基金,专门使用 Python 开发自动化交易策略。

他在中国清华大学获得材料科学与工程学士和硕士学位,在美国弗吉尼亚大学获得博士学位。他在美国印第安纳大学获得工商管理硕士学位,在印第安纳大学的研究兴趣是定量分析。

https://www.slideshare.net/slideshow/embed_code/key/nNyzbEHb5KscvT

Backtesting And Live Trading With Interactive Brokers Using Python With Dr. Hui Liu from QuantInsti

刘辉博士的 IBridgePy 的最新回溯测试特性

原文:https://blog.quantinsti.com/ibridgepys-latest-backtesting-features-by-dr-hui-liu/

https://www.youtube.com/embed/zK9SoKdxCpI?rel=0

A session on** ‘****IBridgePy’s Latest Backtesting Features**’ was exclusively held for EPATians and was conducted by Dr. Hui Liu.

会议的主要收获

  • IBridgePy 的基础函数。
  • 建立交易策略的基本步骤。
  • 使用 IB 的历史数据进行回溯测试策略。
  • 使用用户提供的历史数据的回溯测试策略。
  • 分析回溯测试结果。

关于演讲者

刘辉博士是 IbridgePy(与交互式经纪人进行交易的开源软件)的作者,也是 Running River Investment LLC 的创始人。他的主要交易兴趣是美国股票和外汇市场。Running River Investment LLC 是一家私人对冲基金,专门使用 Python 开发自动化交易策略。

市云与交易策略

原文:https://blog.quantinsti.com/ichimoku-cloud-trading-strategy/

维布·辛格和阿希什·加尔格

Ichimoku 云指示器是一种源自日本的技术指示器和一种由日本配方师拥有约 30 年专利的指示器**。**

它包括计算一种证券价格的高、低、收盘价的五条中短期线,并在这五条线中的两条线之间画出一个区域,通常被称为市云

这些线有助于确定时间序列数据的方向、动量和支撑位阻力水平。Ichimoku 云指标也产生买卖交易信号,通常与烛台一起绘制,以实现更好的决策和更清晰的图形。

线条的计算很简单,选择的时间段也有些随意:

  1. Tenkan Sen 或转换线:(20 期-高点+ 20 期-低点)/2
  2. Kijun Sen 或基线:(60 期-高+ 60 期-低)/2
  3. 寇森森 A 或领先跨度 A:(基线+转换线)/2
  4. 寇森森 B 或领先跨度 B: (120 周期-高+ 120 周期-低)/2
  5. 池口跨度或滞后跨度:(30 期前收盘)

价格行动的方向

市云形成于领先区间 A 和领先区间 B 之间,有助于决定价格的力量和方向。

例如,当价格高于市云时,价格行为的方向或趋势是向上的。类似地,当价格低于市云时,价格动作的方向是向下的,当价格在市云的某个位置时,方向是平坦的。


价格的强势动作

强度可以使用前导跨距 A 和 B 线之间的差异来估计。当领先跨度 A 增加并高于另一跨度线时,差额的增加表明上升趋势的力量。

这也意味着市云变得越来越厚。类似地,领先跨度 B 在另一跨度线上的增长表明下降趋势的强度,市云的厚度再次增加,尽管方向相反。


Python 代码和交易策略

下面的 Python 代码加载名为**比特币的加密货币的 OHLC 数据。**然后,它使用熊猫matplotlib 功能计算、绘制各种组件和 Ichimoku 云。

ICICI 轴对

原文:https://blog.quantinsti.com/icici-axis-pair-video/

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

此视频是 QuantInsti 于 2013 年 6 月 1 日举办的量化交易策略在线研讨会的录像。

网络研讨会视频

https://www.youtube.com/watch?v=vau7GwumxRo

Excel 模型

Rajib Ranjan Borah 受邀参加 IGIDR 关于算法交易监管的圆桌会议

原文:https://blog.quantinsti.com/igidr-roundtable-regulating-algo-trading/

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

日期: 3 2015 年 9 月**地点:**孟买 BKC 索菲特酒店

英迪拉·甘地发展研究所(IGIDR)的金融和研究小组(FRG)最近就印度算法交易的相关法规进行了一次圆桌讨论活动。来自金融机构(买方和卖方交易公司、监管机构、合规和风险专业人士、交易所专业人士等市场参与者)和金融相关学术界的 30 多名专业人士参加了此次活动。该活动于 2015 年 9 月 3 日在孟买 BKC 索菲特酒店举行。

QuantInsti 的 Rajib Ranjan Borah 应邀参加了“*SEBI 应该如何考虑监管算法交易”的专题讨论。*同一小组的其他发言者包括 Balasubramanium Venkataramani 先生(孟买证券交易所首席商务官)、Kumar gora dia(Tower Research Capital India)和 Ravi Varanasi(国家证券交易所业务发展主管)。

鉴于算法交易在金融市场中日益突出的地位,以及最近关于 SEBI 考虑监管算法交易行业的消息,该事件的主题是最近印度算法交易行业讨论的热门话题。鉴于广泛的参与(专业人员和学术研究人员;所有关键部门的财务专业人员;大多数主要的国内和国际金融机构-买方和卖方)和这个主题的中心地位;这个极具互动性的活动引发了一些关于算法交易的好处和挑战的积极讨论。

讨论了关于算法交易在印度的流行和影响的研究。讨论了算法交易的全球法规及其相对于印度法规的变化。

以下是活动的详细议程。

议程

| 10:00 - 10:10 | 简介苏珊·托马斯IGIDR 金融研究小组 |
| 10:15 - 10:45 | 算法和高频交易初级读本 Gangadhar Darbha印度储备银行 |
| 10:50 - 11:15 | 印度的算法交易:数据说明了什么? Nidhi AggarwalIGIDR 金融研究组 |
| 11:20 - 11:50 | 监管地点:全球视角文卡特什·潘查帕吉桑IIM·班加罗(前布里奇沃特协会和高盛) |
| 12:00 - 13:00 | 小组讨论和现场讨论:SEBI 应如何考虑在 进行监管 Balasubramaniam Venkataramani,首席商务官-BSEKumar gora dia,业务发展主管&运营-Tower Research Capital IndiaRajib Borah,董事-iRage CapitalRavi vara nasi,业务发展主管- |
| 13:00 - 14:00 | 午餐 |

如需了解更多活动详情和活动演示,请访问活动现场http://ifrogs.org/EVENTS/roundtablehft1.htmlT5】

从 IIT、哈佛到现在的 EPAT -阿努拉格的学习之旅

原文:https://blog.quantinsti.com/iit-harvard-epat-journey-anurag-sharma/

如果你从事的是与交易不同的职业,你可能会想知道如何学习算法交易。如果你有交易的知识,你可能会渴望更好地理解事物,以此来调整你的职业生涯。

Anurag 面临着类似的情况,你可以理解。他拥有印度理工学院(IIT 孟买)的计算机科学学士和硕士学位,以及哈佛大学的管理基础证书。他想学习算法交易,因此,为了学习和提高,他投入时间学习。我们采访了阿努拉格,与我们分享他的故事。

讨论是这样进行的。


你好,阿努拉格,给我们介绍一下你自己吧!

嗨!我是阿努拉格·夏尔马。我在美洲银行工作,拥有孟买 IIT 大学的计算机科学学士和硕士学位,并在哈佛商学院学习管理。

我是徒手格斗的三级黑带武术家,完成了 10 年的训练。我喜欢阅读技术书籍,并且一直在学习很多关于金融的知识。

在疫情期间,需要时间来适应在家工作的新形式,以及处理缺乏互动的问题。这让我有更多的时间来完成《EPAT》的学习。


你在学习工程和金融职业后学习 Algo 交易的背后有什么故事?

我于 2007 年在孟买的 IIT 获得了计算机科学的硕士和学士学位(双学位)。成为机械警察比赛的一部分是我在 IIT 的美好回忆。我在一家咨询公司实习过两次,一次是开发项目,另一次是基于两个实体之间的关系创建社交图。

我的室友在一家教育机构工作,所以我和他一起加入,并获得了一个很好的机会,自己创建了一个端到端的交易系统。之后,我于 2013 年加入美国银行,开发交易程序以支持银行和全球市场使用的应用程序。

我被算法交易吸引了——它有即时的奖励和即时的惩罚,不像常规交易,你必须等待一段时间才能意识到赚或赔的价值。

工作一年后,我的经理建议我再学习一些对我的职业有帮助的知识。这让我开始寻找课程,就在那时我找到了 EPAT。从那时起,我开始对算法交易感兴趣。

因为我有计算机科学的背景和对数学的理解,这看起来是一个很好的挑战机会。是的,它更生活在大自然中。


你是怎么知道 EPAT 的,为什么选择它?

由于我的职业更接近于网络开发人员,我想考虑从事定量金融方面的职业。我在网上搜索量化金融课程,就是这样找到了 QuantInsti。

我发现 EPAT 的课程结构在本质上是非常完整的。这是一个完美的起点,因为它涵盖了从市场到金融工具的基础以及市场如何运作的所有内容。

EPAT 对算法交易有最好的介绍——它是什么,它是怎么做的,你如何用算法交易。显然,即使在那之后,一个人还需要学习很多东西,但我认为 EPAT 提供了一个很好的起点,这一点毋庸置疑。一种是从基本策略开始,以及如何编码它们,并把它们付诸实施。

我们开发的应用程序基本上是交易者直接使用的,所以这对我很有用,因为现在我可以更好地了解他们的需求,并获得手头概念的完整概述。

简言之,EPAT 帮助我了解了交易者的心理。T3】

起初,我很茫然,因为我会从网上搜索或同事那里得到一些零碎的信息——都是些支离破碎的信息。但是有了 EPAT,我能够把它们准确地组合在一起。这正是我想要达到的目标。


你认为 EPAT 最大的特点是什么?你喜欢它的什么?

课程的前半部分提供了一个很好的基础,让你对交易、交易策略和基础设施有一个很好的了解。从 excel 表格中的策略开发到 Python 编码都是流畅、无缝的,并且解释得非常清楚。

它会在课程开始时培养学生的兴趣。对于一个刚接触 algo 交易的人来说,这很容易理解。

第二部分是证券衍生品期权,尤安·辛克莱博士对此做了很好的阐述。

我现在对金融市场有了更好的理解。一个教训是,风险管理是一个非常重要的方面。不在于你冒多大的风险,而在于你有多少次是正确的。

我更清楚战略的内容、方式和原因,需要注意什么,回溯测试等等。

我的支持经理 Subash 给了我极大的帮助。他非常迅速地在几分钟内回答了我的问题,不管是在什么时候。在整个过程中,他主动确保我一切顺利。


你有什么话想和那些有抱负的量化分析师分享吗?

你可以把你的情绪放在一边,用一种更数学、更逻辑的方式来处理事情。

我读过几本书——我最喜欢的作家马特·戴维斯给了我一条很好的建议(他被评为优秀的交易者之一)。即使你 50%的时间是错的也没关系,如果你 100 次中有 49 次是对的,你就是优秀的交易者,重要的是,你需要很好地管理你的风险。

我认为关注风险管理很重要——这是优秀交易者和优秀预测者的区别。


阿努拉格,谢谢你对 EPAT 的溢美之词。我们很高兴能够提供正确的指导,帮助您实现目标。

看到你是如何从学习 It 发展到进入像美国银行这样的好机构是非常有趣的。此外,你不仅学会了算法交易,为你的职业生涯增值,还获得了 EPAT 卓越证书。恭喜你!

EPAT 是一门综合课程,涵盖的主题从统计学和计量经济学到金融计算和技术,包括机器学习等等。开始你的探索,与 EPAT 一起提升你的算法交易知识。点击查看


免责声明:为了帮助那些考虑从事算法和量化交易的人,这个案例研究是根据一个学生或 QuantInsti 的 EPAT 项目的校友的个人经历整理的。案例研究仅用于说明目的,并不意味着用于投资目的。EPAT 项目完成后所取得的成果对所有人来说可能并不一致。

新冠肺炎和油价战争对交易的影响

原文:https://blog.quantinsti.com/impact-covid-19-oil-price-trading/

众所周知,新型冠状病毒首先袭击了中国,导致中国经济放缓,进而影响了股市。另一个对股市打击更大的重大事件是俄罗斯和沙特阿拉伯之间的油价争端。

在这篇文章中,我们将从不同的方面来讨论当前市场下滑的情况以及交易方面同时发生的变化。就新冠肺炎和石油价格战对交易的影响而言,我们从以下几个方面来看待这种情况:

提款后的未来回报

在本节中,我们将根据历史股票市场崩盘情景的数据计算平均未来回报。为此,我们考虑了过去股市崩盘的数据。有了这些数据,我们已经剔除了股市崩盘情况下的提款后果。让我们根据对股市崩盘历史数据的分析,来看看在不久的将来有哪些可能性。

使用 IBridgePy 在交互式代理 API 中实现 Python

原文:https://blog.quantinsti.com/implement-python-in-interactive-brokers-api/

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者:哈里·库马尔·克里什纳摩尔提

在上一篇关于在交互式代理 API 中实现 Python 的 IBPy 教程中,我谈到了交互式代理、其 API 以及使用 IBPy 实现 Python 代码。在这篇文章中,我将谈论使用包装器在 IB 的 C++ API 中实现 python,该包装器由刘辉博士编写。

关于刘辉博士

刘辉博士是 Running River Investment LLC 的创始人,这是一家专门使用 Python 开发自动化交易策略的私人对冲基金。Hui 是 IBridgePy 的作者,IBridgePy 是一个著名的 Python 交易平台,允许交易者快速实施他们的交易策略。刘辉博士在中国清华大学获得材料科学与工程学士和硕士学位,在美国弗吉尼亚大学获得博士学位。他在美国印第安纳大学获得工商管理硕士学位,在印第安纳大学的研究兴趣是定量分析。

刘博士的 IBridgePy 是一个包装器,它将帮助你使用 Python 在交互式经纪人 API 中进行交易。QuantInsti 就此主题举办了一次非常成功的网上研讨会,我们有创纪录的注册人数(1000+)参加了由刘博士亲自主持的网上研讨会。我将在本文末尾分享网上研讨会的链接。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传T2】

杂交

IBridgePy 是最灵活、最友好的 Python 包之一,可用于在交互式代理 API 上实现 Python。和 IBPy 很不一样。

如何?

嗯,是第三方实现的应用编程接口,用来访问 IB 的交易员工作站。而 IBridgePy 的工作方式不同;它没有重新实现交互式代理的 API。相反,它帮助 Python 直接调用 IB 的 C++ API,因为它充当包装器。由于 IBridgePy 直接调用 IB 的 C++ API,因此,我们可以预计程序中的错误和异常会更少。

为什么?

原因很简单:互动经纪人 C++ API 由互动经纪人官方维护。事实上,当互动经纪人将有其平台的新版本时,API 也将更新。

使用 IBridgePy 有什么好处?

IbridgePy 有一些关键特性,这些特性使它对用户更有益,我将列举如下:

  1. 灵活性
  2. 易用性
  3. 隐私
灵活性

IBridgePy 最棒的一点是,你可以用它来交易任何种类的证券。你可以交易股票、期货、期权、外汇等。刘博士开发 IBridgePy 的动机之一是使应用程序更加灵活。在 IBridgePy 上,您可以使用任何 python 包并从任何地方访问数据源。

易于使用

交互式代理 API 的复杂性已经完全被 IBridgePy 的用户友好界面所掩盖。您将不必付出任何额外的努力来管理您的订单,或者编写代码来从服务器获取历史数据或报价,因为包装器会处理这些事情。

隐私

隐私是非常重要的,当你把你的证书交给一个运行在不同服务器上的第三方程序时,隐私是一个被忽视的因素。但是,IBridgePy 是在你的电脑上运行的,所以你的隐私完全在你的掌控之中。

谁应该使用 IBridgePy?

  • 喜欢自动交易的人
  • 那些想把它作为市场或股票筛选工具的人

如何安装 IBridgePy?

您可以简单地访问 IBridgePy 网站的下载部分,下载与您的 python 版本相匹配的安装文件。运行文件并安装必要的文件。

先决条件

您应该在系统上安装以下程序:

  1. 互动经纪人 TWS。我们已经在之前的文章中详细讨论了如何安装交互式经纪人 TWS。
  2. 或者,您也可以使用 IB 网关(随 TWS 一起提供)
  3. 您还应该在系统上安装一个 python 包。Anaconda Navigator 是运行 python 文件的好资源。
  4. 您应该有 IbridgePy(和一组示例程序),您可以通过向上面提到的 IbridgePy 的电子邮件发送请求来获得。
TWS 还是 IB 网关?

TWS 和网关都可以用来交易。如果你对这个行业比较陌生,那么我会推荐 TWS,因为它对用户更友好。然而,如果你想节省时间,避免 IB 系统重启,那么就使用 IB 网关。

我们将遵循与前一篇文章相同的步骤。当登录屏幕出现时,检查 IB 网关并继续。当 IB 网关打开时,我们进入其配置,就像我们对 TWS 所做的那样。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

随后将手动配置 IB 网关。接下来,点击设置。虽然这里没有什么可改变的,但是我们可以根据您的需要设置端口,尽管不建议这样做。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们也将设置 TWS,就像我们在上一篇文章中所做的一样。配置后重新启动 TWS。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

准备 IDE

本教程的下一个重要步骤是准备 Python 的 IDE。如果您使用的是 Python(XY),那么您必须启动可执行文件并从那里运行 spyder:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

一旦 Spyder 启动,请遵循以下步骤:

  1. 进入视图然后窗格并检查编辑器控制台
  2. 点击工具,然后选择 PYTHONPATH 管理器,将文件夹添加到 Python 路径中。在这里你将点击添加路径并选择你解压 IBridgePy 的文件夹。外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
  3. 点击关闭以接受它。
  4. 重启 Spyder。

运行示例程序

在 Spyder IDE 中单击 RUN_ME.py,方法是单击文件,然后单击打开。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

RUN ME.py 是程序,你可以把它作为入口来运行,但是例子移动均线* cross.py 是保存交易策略的文件。

在此之后,请确保您登录到 IB TWS 或 IB 网关。点击绿色三角形或按 F5 键。

解码代码结构

就像我在上一篇文章中讨论的程序结构一样,我也将在这里讨论代码结构。

我们定义了 initialize() ,这是一个内建的方法来声明只运行一次的变量。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

接下来我们定义 handle_data() ,这也是一个进行交易决策的内置方法。这里给出了两个输入**(上下文,数据)上下文包含了 initialize() 中声明的变量。而数据**是每天或每分钟接收的直播馈送。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

**第 16 行~第 19 行:**你可以通过注释掉其他算法来选择一个你想要执行的算法

**第 20 行:**您的互动经纪人账户代码

**第 21 行:**handle _ data(context,data)函数的频率或多长时间运行一次,60 表示每分钟运行一次,1 表示每秒运行一次。

第 22 行:有 4 个级别显示结果

  • **错误:**仅显示错误信息
  • **信息:**典型用户将使用它来了解您的算法的结果
  • 调试:当你调试你的算法时,你可能知道更多的信息
  • 如果你真的想知道发生了什么,你会看到大量的信息

IBridgePy 的三块基石

以下是构成 IbridgePy 基石的三个最引人注目的内置函数:

  • 显示实时价格
  • 请求 _ 数据
  • 下订单
实时报价

每当你需要实时报价时,那么你可以使用内置函数显示真实时间 _ 价格T4】

在上面一行中,您将看到使用的参数是现金、欧元、美元,这些参数将返回指定货币的实时汇率。

同样,你可以用 **STK、**T2、美元来代替,用美元来表示苹果股票的价值。STK 是安全类型,我们在上一篇关于使用 IBPy 在交互式代理 API 中实现 Python 的文章中已经详细讨论过。

获取历史数据

request_data 是用于从交互式代理获取历史数据的函数。您还必须指定一个参数历史数据

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

涉及的参数
  • 使用这些参数,我们选择需要获得历史数据的工具,在上面的例子中是 SPY,它是一个跟踪 S&P500 指数的 ETF
  • 接下来,我们指定时间间隔,在我们的示例中是**‘1 天’**
  • 回溯周期是下一个参数,我们在其中指定所需历史数据的周期。在我们的示例中,它是**‘50d’**表示从今天开始往回 50 天。
  • 检索到的历史数据保存在 pandas 数据帧中,该数据帧保存在 hist(数据类的一个属性)中,保存在名为 data 的字典中。
输出

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

请求多个历史数据

就像您从交互式代理请求特定时间段的历史数据一样,您也可以一次获取多个历史数据。看看下面的代码:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我指定了间谍和 AAPL,指定的时间间隔分别是 1 分钟 (1 分钟)和 1 天。指定的周期分别为 1 D & 10 D (D =天数)。类似地,我们也在输出函数中指定了需求。

输出

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

下订单

下单是我们整个流程中的重要步骤,下面是我们如何使用 IBridgePy 在交互式经纪人上下单:

  • 下达市价订单:订单(符号(‘证券’),x)

这里 security 是目标证券,例如 SPY,x 是股份数。–x 表示卖出,x 表示买入

例如,订单(符号(’ SPY '),100)

  • 目标安全是间谍

  • 行动是当 n > 0 时购买 100 股

  • 如果是-100,那么负数意味着卖出,-100 =卖出 100 股

  • order_target(symbol('SPY '),100)将根据您的持仓通过买入或卖出来调整头寸,直到您持有 100 股

  • 下限价单/止损单

    • order(symbol('SPY '),100,LimitOrder(213.42))下达限价订单,以每股 213.42 美元的价格购买 100 股 SPY 股票
    • order(symbol('SPY '),-100,StopOrder(213.42))下达止损单,以每股 213.42 美元的价格卖出 100 股 SPY 股票
  • 强烈建议使用 order_status_monitor()跟踪您所下订单的状态

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

就像在前面的教程中一样,我们已经指定了一个 orderId,这里我们还指定了一个函数 orderId,它是您的订单请求的唯一标识。对于市价订单,您应该将“已完成”作为订单请求的终点,这意味着订单已经在交互式经纪人处执行。

对于限价单和止损单,预期状态为“已提交”,这意味着订单已被 IB 接受,正在等待执行。对于高流动性证券,完成交易不会花费太长时间(几秒钟)。

IbridgePy。交易者单个账户是该模块的名称,随后是请求购买 100 股。接下来是账户余额

你可以在这里观看刘辉博士网上研讨会的录像。

https://www.youtube.com/embed/Cg3gejGX3Xk

多年来,我们已经看到试图安装 IBridgePy 的用户所面临的一些常见障碍,我们写这一节是因为我们相信这将有助于简化过程,让用户更专注于他们想要的东西,即应用他们的交易策略。

我无法下载 IBridgePy,该链接将我带到 404 页面。你能帮我做这件事吗?

请使用此链接下载 IBridgePy。您还必须创建一个帐户来访问这些文件。

当我想在 Spyder 上运行 RUN_ME.py 时,它给了我一种不同的语言,为什么呢?
类似于:strategies/PK×o # iWüà4yjìZ ~ pòa;

在 Spyder 上访问之前,您需要先解压缩从 Download 下载的 zip 文件——最容易回溯测试和实时交易的 Python 平台

我得到以下错误:
“从 IBridgePy 导入 IBC PP”
“导入错误:DLL 加载失败:找不到指定的模块。”

我该怎么办?

如果下载的 IBridgePy 版本与您系统中的 python 不匹配,就会出现错误。该错误的另一个原因是您的系统上安装了多个 python 版本。解决方法是从你的系统中卸载不匹配的 Python。

求解步骤:

  1. 检查是否下载了正确的 IBridgePy 版本。(它解决了大多数问题)
  2. 如果您使用的是 Windows,请确保使用了 Anaconda。
  3. 检查是否安装了多个 Python 版本。如果是,卸载未使用的 python 版本。或者,使用正确的 Python 执行 RUN_ME.py。
  4. 您可以使用不同版本的 python 在 Spyder 上执行 RUN_ME.py,方法是:
  5. 工具→首选项→ Python 解释器→设置所需 Python 解释器的路径
  6. 您也可以通过用所需的 python 版本在蟒蛇上创建一个新环境,然后使用该环境运行 Spyder 或 Jupyter 来实现这一点。

我收到以下错误消息:

" error message =无法连接,因为客户端 id 已被使用。请使用唯一的客户端 id 重试。

这是 IB API 最新版本中的一个已知问题。无论何时启动 TWS,都会分配一个客户端 id,在代码结束时,客户端 id 仍然是活动的。因此,下次运行代码时,您将会看到一条错误消息,提示客户端 id 已经在使用中。当 IB 在 IB API 中发布修复程序时,此问题将得到永久解决。

不幸的是,与此同时,您可以在再次运行代码之前重启内核。重新启动时,将使用新的客户端 id,从而解决问题。

关于这一点的视频指南可以从这里获得:使用 Python 与交互式经纪人进行交易:无法连接,因为客户端 id 已经在使用中。

我得到以下错误:

导入错误:python37.dll 的模块使用与此版本的 Python 冲突

确保从网站上下载了正确版本的 IBridgePy。这个版本应该与您的 spyder 环境使用的 python 版本一致。如果没有,就会有冲突。

如何知道运行 Sypder 的客户端能够连接到 IB TWS/网关上的服务器?

运行 RUN_ME.py 后,您会得到类似以下内容的帐户摘要:

IBridgePy 版本 9.1.4

文件名= example_show_positions.py

####开始初始化交易者####

##账户余额 DU229341 ##

经纪人 _ 服务 _ 工厂。broker service _ callback::_ get _ account _ info _ one _ tag:EXIT,没有基于 account code = du 229341 tag = TotalCashValue 的值

活动账户代码为[‘DU229341 ‘,’ DU229347’]

我在 spyder 上使用模拟账户运行 RUN_ME.py 时出现以下编码错误:

" unicode decode 错误:“charmap”编解码器无法解码位置 1035 的字节 0x9d:字符映射到<未定义的> "

您可以添加 encoding="utf8 ",在 configuration.py 文件的第 83 行中突出显示。该文件位于 C:\Users…\ IBridgePy _ Win _ Anacondaxx _ YY \ configuration . py

用 open(os.path.join(os.getcwd(),’ Strategies ',fileName),encoding="utf8 ")作为 f:

script = f.read()

**在学习 IBridgePy 课程后,我试图从交互式经纪人那里下载价格数据用于回溯测试,交互式经纪人的平台抛出一条错误消息:
IBridgePy 版本 5 . 2 . 3
fileName = example _ get _ historical _ data . py

# # #开始初始化交易者####


####初始化交易者完成# # #
STK、间谍、美元的历史数据**

经纪人 _ 客户 _ 工厂。回调:errorId = 13 error code = 162 error message =历史市场数据服务错误消息:美国运通 STK
broker_client_factory 没有市场数据许可。回调:EXIT IBridgePy version = 5.2.3
发生了异常,使用%tb 查看完整的回溯。

如果您在获取数据时使用的是模拟账户,那么您将无法访问所有的报价机。您的访问权限将主要限于外汇对。在这种情况下,尝试下面的代码来获取数据。

使用卡尔曼滤波器实现配对交易[EPAT 项目]

原文:https://blog.quantinsti.com/implementing-pairs-trading-using-kalman-filter/

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

迪特曼达斯

**本文是作者在 QuantInsti 提交的算法交易(EPAT)** 高管课程的一部分的期末项目。请务必检查我们的项目 页面 ,看看我们的学生在构建什么。

**### 简介

一些股票会同步波动,因为同样的市场事件会影响它们的价格。然而,特殊的噪音可能会使它们暂时偏离通常的模式,交易者可以利用这种明显的偏离,期望股票最终会回到它们的长期关系。具有这种关系的两只股票构成“一对”。我们在之前的文章中已经讨论过配对交易背后的统计数据。

这篇文章描述了一个基于这样的股票对的交易策略。文章的其余部分组织如下。我们将讨论交易单个货币对的基础,选择交易货币对的整体策略,并给出一些初步结果。最后,我们将描述改善结果的可能策略。

配对交易

让我们考虑两只股票,x 和 y,这样

y = \ alpha+\ beta x+e

\alpha\beta 为常数, e 为白噪声。参数{\ alpha,beta }可以从两个股票的价格的线性回归中获得,并得到价差

e{ t } = y{ t }-(\ alpha+\ beta x _ { t })**

设这个利差的标准差为\sigma_{t}。此价差的 z 值为

z{ t } = e{ t }/\ sigma _ { t }**

交易策略

交易策略是,当 z 得分高于阈值,比如说 2、时,可以做空价差,即卖出 1 个单位的 y,买入\beta 个单位的 x。我们预计 x 和 y 之间的关系在未来将保持不变,最终 z 得分将降至零,甚至变为负值,然后可以平仓。通过在价差高的时候卖出,在价差低的时候平仓,这种策略希望在统计上能够盈利。相反,如果 z 分数低于下限,比如说-2,该策略将执行价差,即买入 1 个单位的 y 并卖出\beta 个单位的 x,当 z 分数升至零或以上时,可以平仓以实现利润。

有几个问题使得这个简单的策略在实践中难以实施:

  1. 常数α和β实际上并不是常数,而是随时间变化的。它们不是市场上可观察到的,因此必须进行估算,有些估算比其他的更有利可图。
  2. 长期关系可能破裂,价差可能从一个平衡移动到另一个平衡,使得变化的{\alpha,\beta}给出“开盘做空”信号,并且价差保持上升到新的平衡,使得当“收盘做多”信号出现时,价差高于进场值,导致亏损。

这两个事实都是不可避免的,战略必须考虑到它们。

确定参数

参数{\alpha,\beta}可以根据 y 的价格对 x 的价格的线性回归的截距和斜率进行估计。请注意,线性回归是不可逆的,即参数不是 x 对 y 的回归的倒数。因此对(x,y)与(y,x)不同。虽然大多数作者使用普通最小二乘回归,但有些人使用总体最小二乘,因为他们假设价格也有一些日内噪声。然而,这种方法的主要问题是我们必须选择一个任意的回顾窗口。

在本文中,我们使用了与指数移动平均相关的卡尔曼滤波器。这是一个自适应滤波器,它迭代地更新自己,同时产生α、β、e 和σ。我们使用 python 包 pykalman,它具有 EM 方法,可以在训练期间校准协方差矩阵。

出现的另一个问题是是否回归价格或回报。后一种策略要求在多头和空头头寸中持有等量的美元,即投资组合必须每天重新平衡,增加交易成本、滑点和买卖价差。因此,我们选择使用价格,这在下一小节中是合理的。

长期关系的稳定性

长期关系的稳定性是通过确定这些对是否协整来确定的。请注意,即使这两个组合没有直接进行协整,它们也可能是为了正确选择杠杆比率。一旦参数如上所述被估计,扩展时间序列 e_{t}通过扩展的 Dickey Fuller (ADF)测试来测试平稳性。在 python 中,我们从 statsmodels 模块中的 adfuller 函数获得这一点。结果给出了不同置信水平的 t 统计量。我们发现,在 1%的置信水平下选择的配对并不多,所以我们选择 10%作为阈值。

一个缺点是,为了进行 ADF 测试,我们必须选择一个回望周期,这将重新引入我们使用卡尔曼滤波器避免的参数。

选择板块和股票

交易策略部署了初始资本。为了分散投资,将选择五个部门:金融、生物技术、汽车等。将选择一个培训期,并根据最小方差投资组合方法决定分配给每个部门的资本。除了初始投资,每个部门都是独立交易的,因此下面的讨论仅限于单个部门,即金融部门。

在金融领域,我们根据大市值选择了大约 n = 47 个名字。我们正在寻找流动性高、买卖差价小、能够卖空股票等的股票。一旦定义了股票领域,我们可以形成 n (n-1)对,因为如上所述(x,y)与(y,x)不同。在我们的金融投资组合中,我们希望在任何给定的时间保持最多五对。在我们想要进入一个位置的任何一天(例如开始日期),我们在所有的 n (n-1)对上运行一个筛选,并且根据一些标准选择顶部的对,其中一些将在下面讨论。

选择配对

对于每一对,从卡尔曼滤波器获得信号,我们检查是否|e| > nz \sigma,其中 nz 是要优化的 z 得分阈值。这确保了这一对有一个入口点。我们首先执行这个测试,因为它不贵。如果货币对有一个进入点,那么我们选择一个回望期,进行 ADF 测试。

该程序的主要目标不仅是确定符合标准的货币对列表,而且根据与货币对的预期盈利能力相关的一些指标对它们进行排名。

一旦排名完成,我们就进入对应于前两对的位置,直到我们的投资组合中总共有五对。

结果

在下文中,我们在 Cal11 上校准了卡尔曼滤波器,然后使用校准后的参数在 Cal12 中交易。接下来,我们在投资组合中只保留了一个股票对。

在所示的测试中,我们将每笔交易的最大允许亏损保持在 9%,但在一种策略中允许最大亏损 6%,在另一种策略中只允许 1%。正如我们从上面看到的,随着每笔交易最大允许亏损的收紧,业绩会有所改善。夏普比率(假设指数为零)分别为 0.64 和 0.81,而总 P&L 为 9.14%和 14%。

阈值是基于训练期间的模拟来选择的。

未来工作

  1. 制定更好的筛选标准,以确定最有潜力的配对。我已经有了几个想法,这将是正在进行的研究。
  2. 优化回顾窗口和买入/卖出 Z 值阈值。
  3. 在培训期间收集更详细的统计数据。目前,我只收集了前 5 名的统计数据(基于我的选择标准)。然而,在将来,我应该记录所有通过的配对的统计数据。这将表明哪些交易最有利可图。
  4. 在训练期间,我用交易的总 P&L 来衡量盈利能力,从进场到出场信号。然而,我也应该记录最大利润,这样我就可以确定一个更早的出场门槛。
  5. 运行模拟几年,即一年校准,下一年测试。这将产生几年的样本外测试值。另一个要优化的窗口是训练周期的长度以及卡尔曼滤波器必须重新校准的频率。
  6. 将该方法扩展到金融以外的其他部门。
  7. 探索其他过滤器,而不只是卡尔曼滤波器。

接下来的步骤

如果你是一名程序员或科技专业人士,想开始自己的自动化交易平台。从日常从业者的实时互动讲座中学习自动交易。算法交易(EPAT)高管课程(T1)涵盖统计学&计量经济学、金融计算&技术和算法&定量交易等培训模块。现在报名

注:

本文中介绍的工作是由作者 Dyutiman Das 先生开发的。构成本文基础的底层代码没有与读者共享。对于那些对使用卡尔曼滤波器实现配对交易感兴趣的读者,请找到下面的文章。

链接:使用卡尔曼滤波器的统计套利作者乔纳森·金莱**

隐含波动率:从理论到实践

原文:https://blog.quantinsti.com/implied-volatility-webinar-7-mar-2017/

https://www.youtube.com/embed/y8cbF81rIRw?rel=0

隐含波动率:从理论到实践

波动性是期权交易中的一个基本概念,所有的交易者都有一套如何交易的理论,然而,并不是每个人都清楚它到底是什么。

网上研讨会将涵盖

  • 不同类型波动的介绍
  • 隐含波动率背后的理论(四)
  • 如何使用隐含波动率
  • 利用 IV 的各种特性的众多交易策略中的一些
  • 可用的在线资源,即学术和从业者研究
  • 各种 CBOE 指数帮助你开始

分享您的问题/疑问,我们将尽最大努力在网上研讨会中讨论它们!

扬声器

阿纳夫·谢斯

金融分析与投资管理硕士(FAIM 女士) 加州圣玛丽学院

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

拥有近 20 年经验的 Sheth 博士是加州圣玛丽学院的全职教授。在此之前,他是德勤税务公司的经济学家,也是加州大学伯克利分校(包括哈斯商学院)多个系的讲师。

他几乎一直在学习、研究和教授波动性,并为许多公司的衍生品合约提供咨询。

他在《投资和计算经济学杂志》等期刊上发表了大量同行评议的期刊论文。此外,他的作品已经在世界各地的几个会议上展示过。他在 2011 年出版了他的第一本书——随机现金流下的最优操作策略。他于 2014 年创办了咨询公司 Gaji Analytics,并于 2015 年成为金融分析平台 ProfitModeler 的技术联合创始人。他还是几家活跃的管理公司和对冲基金的研究员,并经常应邀为硅谷的金融科技公司提供建议。他拥有劳伦斯大学的经济学-数学和哲学学士学位;行为经济学硕士学位;金融工商管理硕士学位;和罗格斯大学的定量金融学博士,与已故数学家拉里·谢普一起工作。

工作之余,他还对爬山(四次攀登喜马拉雅山)、长跑(完成了三次马拉松)和公开水域游泳(完成了从阿卡特兹到三藩市的游泳)感兴趣。

谁应该参加?

  • 期权交易商
  • 对隐含波动率感兴趣的交易员/定量分析师/分析师
  • 对冲基金经理和顾问
  • 学生和学者

隐含波动率:什么,为什么&如何!

原文:https://blog.quantinsti.com/implied-volatility/

普尼特·南迪

“当长期趋势失去动力时,短期波动性往往会上升。”——乔治·索罗斯

这句话听起来很有趣,很吸引人,但是你怎么知道市场对波动的预期是什么呢?此外,有没有一种方法来计算未来的波动性,这将有助于我们在期权交易领域建立多头或空头头寸?听起来很有趣,对吧!!

好了,我们已经得到了你所有的关于“期权交易中的隐含波动率”的问题。用于描述从期权被市场参与者购买之日到其到期日的预期市场波动性的术语被称为“隐含波动性(IV)”。但是在我们进入隐含波动率的特殊和明显的特征之前,让我们看一下这篇文章的子主题。

理解隐含波动率

在我们深入了解隐含波动率的基础知识之前,你应该知道期权交易的基础知识。

我们将首先简要介绍波动性。

波动性:

波动性是金融市场最重要的支柱之一。简而言之,波动性是指金融资产价格的上下波动。这些变动是由几个因素造成的,包括需求和供给、情绪、公司行为、贪婪和恐惧等。

现在我们知道了波动性是什么,让我们现在来理解隐含波动性的真正含义!!

什么是隐含波动率?

隐含波动率(IV)是期权市场预期未来波动率的度量。本质上,隐含波动率过去和现在都被认为是 Black-Scholes-Merton 模型(一个流行的期权定价模型)的组成部分,它代表与基础资产相关的未来波动率。

但是,你知道吗,它并不是市场上唯一可用的波动性指标。历史波动率和已实现波动率是市场中其他不同类型的波动率指标。

历史波动

历史波动率表示基础资产价格在过去一段时间内的偏离或变化。通常,历史波动率以一年为周期计算,即 252 个交易日。交易员用它来比较基础资产的当前波动水平和历史波动水平。每当当前和历史波动之间有差距时,交易者就根据机会建仓。然而,历史波动率的问题是,它是一个向后看的指标,这意味着它是基于过去的回报,而不是最可靠的波动形式。

已实现波动率

另一方面,已实现波动率是未来将发生的实际波动率。对于过去发生的波动,称为历史波动,对于未来发生的波动,称为已实现波动。

那么,我们为什么要在期权市场中使用隐含波动率呢?

在考虑了市场预期后,隐含波动率的值已被考虑在内。市场预期可能是重大市场事件、法院裁决、高层洗牌等。本质上,与历史波动率相比,隐含波动率是一种更好的估计未来波动率的方法,历史波动率仅基于过去的回报。

数学背后的 IV

我们现在将向前推进,理解隐含波动率背后的数学原理,以及如何计算期权隐含波动率。

计算 IV 并不像看起来那么简单。为了计算看涨或看跌期权的隐含波动率,我们首先需要理解 BSM 模型背后的数学原理。就本文的目的而言,我们不会深究 BSM 模型的概念,但我们肯定会对什么是 BSM 模型有一个概述,以便隐含波动率的计算看起来相似且易于理解。

布莱克·斯科尔斯·默顿模型:

Black-Scholes-Merton 模型是交易者在交易欧式期权时最常用的期权定价模型。它有两个独立的公式来计算看涨期权和看跌期权。

计算买入期权的参数有:

  • ST-基础资产的现货价格(当前价格)
  • k–标的资产的执行价格
  • r-无风险利率(连续复利)
  • σ–基础资产回报的波动性
  • t-t——到期时间(年)
  • n——正态分布的累积分布函数

看涨期权的定价:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

看跌期权的定价:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

看起来有点复杂吧?不要担心,一旦你输入参数值,它就像任何其他简单的方程。

例如:如果参数如下:

现货价格(St): 300 执行价格(K): 250 无风险利率® = 5%到期时间(T-t) = 0.5 年(6 个月)看涨价格= 57.38

我们如何找到具有上述参数的看涨期权的隐含波动率?我们就简单的用迭代或者试错的方法。

使用 15%的 IV 可以得到 56.45 的买入期权价格,使用 25%可以得到 59 的买入价格。

从上述试错法可以清楚地看出,IV 是 15 - 25%范围内的值。20 呢?。它给我们的买入价格是 57.38!!同样的技术也可以用于相应的看跌期权。一旦你掌握了这种技术,那就太容易了!

使用 python 计算 IV

好了,现在我们知道了隐含波动率的概念,为什么不创建一个计算器来计算期权的 IV 呢?毕竟学到的知识要实际应用!!

我们将使用 python 创建一个隐含波动率计算器,以方便计算期权的 IV。

Python 代码:

## Let us first import all the required libraries for IV Calculation.
# Data manipulation
import numpy as np
import pandas as pd
import datetime
import mibian

# We will now use the mibian library to calculate the implied volatility.
##The syntax for the variable values is in the format as mentioned below :
# BS([UnderlyingPrice, StrikePrice, InterestRate, Daystoexpiration],callPrice=x)

# Python code :
c = mibian.BS([145.65, 145, 5, 30], callPrice=3.89)

# Input Code :
c.impliedVolatility

输入代码的输出:

18.24951171875

这意味着看涨期权的隐含波动率为 18.249%(近似值)

这不是很简单吗?!Python 计算复杂的数学模型如 Black-Scholes-Merton 公式非常快速简单。同样的机制也可以用来计算看跌期权隐含波动率。

影响市场隐含波动率的因素

让我们来看看影响期权交易中隐含波动率的某些因素:

供给和需求 -随着基础资产需求的增加,隐含波动率也增加,期权价格也增加!当然,这种现象在需求低的时候正好相反。随着需求下降,高 IV 倾向于向平均 IV 值移动,同时供应开始稳定。一旦市场预期开始下降,这一切就会发生,并导致期权价格下降。

到期时间 -到期时间,更好地称为 theta,衡量期权到期的剩余时间,直接影响期权的 IV。例如,如果到期时间很短,IV 通常会较低。然而,如果期权的到期时间比通常情况下相对较长,IV 就会很高。逻辑上也说得通!怎么会?由于到期时间很长,标的资产的价格更有可能向执行价格移动,这对期权卖方来说风险太大。为了补偿卖方承担的风险,期权价格相对高于平时,IV 也是如此。

市场状况 -大多数基础资产直接受到市场情绪或上市机构未来将发生的事件的影响。收益公告、法院裁决、高层管理人员变动等是导致高 IV 期权的一些市场事件,因为市场不确定基础资产可能移动的方向。

静脉注射的用途

隐含波动率在期权市场上被交易者频繁使用,原因多种多样。下面列出了静脉注射的各种用途:

预测波动率 -隐含波动率被交易员用来了解基础资产的预期波动率范围。例如,让我们考虑一个看涨期权,其标的资产目前的交易价格为 100 美元,执行价格为 103 美元,溢价为 5 美元。如果此类看涨期权的隐含波动率为 20%,则标的资产的预期范围为高于当前交易价格 20%和低于当前交易价格 20%。这告诉我们,下限应该是 100 = 100 - 20 = 80 的 100 - 20%。上限在 100+100 的 20% = 100+20 = 120。这种情况下隐含波动率的范围是 80 - 120。

对冲现金头寸 -交易员经常需要对冲头寸,以降低与初始或主要头寸相关的风险。如果期权的当前 IV 相对低于年化 IV 或全年 IV,交易者可以以低溢价购买期权,并等到 IV 增加。随着 IV 的增加,期权费的价值也会增加,因此期权合约的总价值也会上升!

卖出期权——与套期保值相反,期权卖方(option sellers)在 IV 较高时卖出期权,从而为他们所承担的风险赚取高额溢价。这里的问题是,对于他们销售的保险(期权),到期时间不断减少。经过一段相当长的时间后,交易对期权卖方有利。

基于事件的交易 -每当有关于上市公司的收益或法庭裁决的消息时,IV 通常很高。当未来可能不确定时,就会发生这种情况。在这种情况下,有见识或有经验的交易者会围绕隐含波动率制定期权策略。例如,交易者使用日历价差策略,多头或空头价差策略从高 IV 中获利。

**在布莱克-斯科尔斯-默顿(BSM)模型中的用法:**隐含波动率是 BSM 模型中的一个关键参数。随着隐含波动率或市场对波动率的预期增加,期权价格也会增加。这在隐含波动率和期权价格之间建立了直接关系。因此,IV 构成了 Black Scholes Merton 模型的一个内在性质。

口译四

可视化和解释隐含波动率的方法不止一种,我们将具体研究每一种方法。

数据表 -嗯,可视化静脉注射号码的最基本方法是通过数据表格式。现在,在期权市场,它被称为期权链。以下是美国股票的期权链:苹果(股票代码:AAPL)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来源**😗*****(注:期权数据每天更新,因此您将能够在给定的链接上看到当天的期权价格)

**从上图可以清楚地看出,相同执行价格的隐含波动率对于看涨期权和看跌期权是不同的。此外,对于不同的执行价格,隐含波动率随着市场预期的变化而波动。注:隐含波动率不是一个基于方向的参数,因此它仅表示基础资产未来可能变动的价格范围。不同执行价格的看跌期权和看涨期权的隐含波动率的这种变化以“波动率微笑”和波动率偏斜为特征。当 OTM 和 ITM 看涨或看跌期权的隐含波动率(IV)最高,而 ATM 期权的隐含波动率(IV)最低时,就会出现波动率微笑。在波动率偏斜的情况下,不同的执行价格对相同的标的资产具有不同的隐含波动率。

这两种解释都用于期权市场,以便更好地可视化。下面,我们已经从看涨期权执行价格和隐含波动率相对提到了波动率偏态的例子。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图表 -好了,现在我们已经理解并解释了期权链数据表中的隐含波动率,我们将通过图表来可视化隐含波动率,并从图表中解释 IV 水平。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

资料来源:IVolatility.com

在图表中,我们有过去一年的隐含以及 30 天的历史波动数据。

市场参与者使用历史隐含波动率水平来衡量对 IV 的理解,例如,3 个月前 IV 在哪里,以及今天基于机会的交易在什么水平。

交易者还使用历史和隐含波动率的过去趋势来了解 HV 和 IV 一起是高于还是低于以前的时期。如果你今天开始交易期权,这是你衡量隐含波动率水平的首选工具。如前所述,隐含波动率水平在特定时间点的高低取决于多种因素。

隐含波动率(IV)等级 - IV 等级是计算过去一年或 52 周隐含波动率的另一种流行方法。它是用来计算当前 IV 水平与年化水平相比是高还是低的。有一个特殊的公式来计算 IV 等级,下面提到:

(当前 IV - 52 周低 IV / 52 周高 IV - 52 周低 IV) * 100

例如:让我们考虑一下第四章图表部分提到的苹果公司(股票代码:AAPL)的例子。目前静脉注射率为 32.5%,52 周最低静脉注射率为 18%。52 周高 IV 是 34%。所以让我们来算一下:

32.5% - 18% / 34% - 18% = 14.5% / 16% = 90.625%.

解释 IV 等级也很容易。直观上,IV 等级是指当前 IV 和 52 周低点 IV i 之间的差异。在这种情况下,它是 90.625%。这意味着 IV 目前比平时高,由于 IV 高,交易者会有兴趣卖出期权。高 IV 意味着高期权价格,因此对期权卖方非常有利。购买具有高 IV 的期权的期权购买者由于在稍后的时间点 IV 的降低而面临损失。

隐含波动率(IV)百分位数 - IV 百分位数是另一种看待或解释 IV 的有趣方式。IV 百分位数仅指当前 IV 低于当前 IV 百分比值的天数,与总交易日数相比,即 252 个交易日。

IV 百分位=当前 IV 下的交易天数/一年内的交易天数。

例如:如果当前 IV (30%)下的天数为 100。交易日数为 252。IV 百分位= 100/252 = 39.68 百分位(近似值)。

下面是日期为 2019 年 11 月 26 日的印度股票的数据表,其中包含用于可视化 IVR 和 IVP 的 IV 排名和 IV 百分位!

| 符号 | ⅳ级 | 第四百分位 | 隐含波动率 |
| 塔塔通信 | Eighty-six point nine nine | Ninety-eight point four seven | Forty-eight point two |
| 苏珊?苏珊 | Ninety-three point one seven | Ninety-eight point five four | One hundred and eighty-four point one three |
| 国家图书馆 | Seventy-three point seven four | Ninety-six point six five | Sixty-one point one eight |
| CGPOWER | Eighty-one point one two | Ninety-six point four | One hundred and six point two nine |
| BOSCHLTD | Seventy-eight point one six | Eighty-seven point nine four | Thirty-six point six five |
| 雷蒙德(男子名) | Seventy-one point six three | Ninety-five point four three | Forty-seven point three three |
| 想法 | Seventy-three point zero four | Ninety-six point two seven | One hundred and sixty-seven point five one |
| NBCC | Seventy-two point zero five | Ninety-eight point seven four | Ninety point four three |
| 工业基准黑(industrial reference black) | Seventy-one point four three | Ninety-three point five three | Eighty-seven point three eight |
| TV18BRDCST | Ninety-seven point one | Ninety-seven point eight four | Eighty point one five |
| 捷达航空公司 | One hundred | One hundred | Four hundred and eighty-three point seven three |

让我们以两种股票为例,即塔塔通信有限公司(TATACOMM)和苏司兰能源有限公司(Suzlon),推导出与隐含波动率相关的 IVP 概念。TATACOMM 的隐含波动率(IV)为 48.2 %,而 SUZLON 的隐含波动率为 184.13%。鉴于两种股票期权的 iv 之间存在巨大差距,从逻辑上看,IVP 也应该有巨大差异。然而,在现实中,塔塔通讯的 IVP 是 98.47,而苏司兰是 98.54,只有 0.07 个百分点的差别!

这意味着,即使塔塔通信的 IV 为 48.2%,它仍处于与苏司兰相似的最高水平之一。因此,在使用 IV 进行期权交易之前,你应该知道一个期权的历史 IV 值是多少,以及它目前的位置。这正是隐含波动率百分位数的应用变得至关重要的地方,它有助于我们确定当前 IV 值与过去一年(252 个交易日)IV 值的比较。

历史 IV 与已实现波动率 -从历史上看,IV 有一个大部分大于已实现波动率的趋势。市场预期不断波动,这意味着它们总是高于或低于基础资产的已实现波动率值。在下面的例子中,我们展示了道琼斯指数隐含波动率和已实现波动率(实际发生的波动率)之间的比较,以形象化相同的概念。蓝线代表已实现波动率,黄线代表隐含波动率。由于市场预期的波动,隐含波动率大多高于实际波动率。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

使用 IV 的交易策略

鉴于隐含波动率和期权价格之间存在正相关关系,交易者使用隐含波动率作为他们策略的关键参数。这可能包括基本期权策略,如多头价差、空头价差和备兑买入策略。隐含波动率的使用也可以在使用远期波动率的交易策略或期权定价中看到。此外,高级期权策略如铁鹰和改进的蝴蝶策略涉及隐含波动率的使用。

结论

最后,我们来到了本文的结尾。我们学习了隐含波动率的概念,为什么使用它,以及它是如何在期权交易中使用的。我们理解了 Black - Scholes-Merton 模型,并通过重复公式学习了如何计算 IV。我们还学习了如何使用 python 计算 IV。总而言之,现在你知道了隐含波动率,你知道 IV 作为期权交易参数的重要性。然而,由于期权交易需要风险管理和完善的策略执行思维,从这篇文章中学到的知识可以作为交易期权的补充工具!

免责声明:股票市场的所有投资和交易都有风险。在金融市场进行交易的任何决定,包括股票或期权或其他金融工具的交易,都是个人决定,只能在彻底研究后做出,包括个人风险和财务评估以及在您认为必要的范围内寻求专业帮助。本文提到的交易策略或相关信息仅供参考。**

在 Zipline 中导入 CSV 数据进行回溯测试

原文:https://blog.quantinsti.com/importing-csv-data-zipline-backtesting/

由普里扬卡·萨赫

在我们的上一篇关于 Python 中 Zipline 包介绍的文章中,我们创建了一个移动交叉策略的算法。回想一下, Zipline 是一个用于交易应用的 Python 库,用于创建一个事件驱动的系统,该系统可以支持回溯测试和实时交易。

在上一篇文章中,我们还学习了如何在 Zipline 上实现移动平均交叉策略。Zipline 中的策略代码直接从雅虎读取数据,执行回溯测试并绘制结果。我们建议您在继续学习之前,先温习一下前一篇文章中提到的一些基本概念:

  1. 安装(如何在本地安装 Zipline)
  2. 结构(用 Zipline 编写代码的格式)

在本文中,我们将更进一步,学习使用不同来源的数据对 Zipline 进行回溯测试。我们将学习:

  • CSV 格式 OHLC 数据的导入和回测
  • 从 Google Finance 导入和使用数据进行研究/分析
  • 计算并打印回测结果,如 PnL、交易数量等

这篇文章为严肃的 quants 和 DIY 算法交易者提供了指导,这些交易者希望独立地使用 Python 或 Zipline 软件包对他们的交易想法进行 T2 回溯测试和假设测试。在本帖中,我们将假设数据来自美国市场。通过对代码进行一些编辑和添加,可以使用其他市场的数据集进行分析。我们将在以后的帖子中分享相同的内容。

滑索上的部分代码——我们已经知道的

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

现有方法的问题?

Zipline 提供了一个内置函数“loads bars from_yahoo()”,该函数从 yahoo 获取给定范围内的数据,并使用该数据进行所有计算。虽然很容易使用,这个功能只适用于雅虎数据。使用这个函数,我们不能对不同的数据集进行回溯测试,例如

  1. 商品数据——雅虎不提供
  2. 以 csv 格式创建和保存模拟数据集

到目前为止,我们一直在使用这个内置函数来加载 Python IDE 中的股票数据,并进一步使用它。为了能够在 Zipline 中读取 csv 或任何其他数据类型,我们需要了解 Zipline 是如何工作的,以及为什么导入数据的常用方法在这里不起作用!

**Zipline 接受面板表格中的数据。**要了解 Zipline 如何处理和理解数据,我们必须了解一点 Python 中的数据结构。

Panda 中的数据结构

Pandas 基本上以三种形式构建数据:系列(1D)、数据框(2D)、面板(3D)

  1. 系列:

它是一个一维标签数组,能够保存任何数据类型(整数、字符串、浮点数、Python 对象等)。).轴标签统称为索引。

创建系列的基本方法是调用:

s = pd。系列(数据,索引=索引)

series 接受不同种类的对象,如 Python 字典、ndarray、标量值(如 5)。

  1. 数据帧:

它是一个带有行和列的二维标记数据结构。列可以是不同的类型或相同的类型。

它是最常用的熊猫对象之一,接受不同类型的输入,如 1D 数组的字典、列表、字典或序列;二维 numpy.ndarray 结构化或记录阵列;一系列。

  1. 面板:

面板是一种较少使用的数据结构,但可以有效地用于三维数据。

三个轴命名如下:

  1. items: axis 0,每一项对应于其中包含的一个 DataFrame
  2. major_axis: axis 1,它是每个数据帧的索引(行)
  3. minor_axis: axis 2,它是每个数据帧的列

Zipline 只理解面板格式的数据结构。

虽然很容易导入。csv 数据在熊猫作为一个数据帧,这是不可能的,在 Zipline 直接做同样的事情。然而,我们发现了这个问题的一个迂回之处:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这是一项强大的技术,可帮助您从不同来源导入数据,例如:

  • 在 zipline 中导入 CSV 格式的 OHLC 数据(我们将展示如何)
  • 从雅虎以外的在线资源读取数据,这些资源与 Panda 连接(我们将展示如何连接)
  • 在 Zipline 中从 Quandl 读取数据(这是留给你的一个练习!)

让我们从三个步骤开始吧!

  1. Import data in python

我们可以使用任何方法将数据作为数据帧导入,或者只是导入数据并将其转换为数据帧。这里,我们将使用两种方法来获取数据:DataReader & read_csv 函数。

使用 DataReader 从 Google 读取数据

Pandas 提供了一个 Datareader 函数,允许用户指定日期范围和来源。你可以使用雅虎、谷歌或任何其他数据源。

#code
pip install pandas
import pytz
from pandas.io.data import DataReader
from collections import OrderedDict
data = OrderedDict()
start_date = '9/17/2011'
end_date = '6/24/2015'
data['SPY'] = DataReader('SPY',data_source='google',start=start_date, end=end_date)
print data['SPY'].head()
type(data['SPY'])

这是打印前 6 行时数据帧的样子:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

使用 read_csv 函数导入一个 csv 文件

Pandas 提供了另一个函数 read_csv,它从指定的位置获取 csv 文件。请注意,CSV 应该采用正确的格式,以便在 Zipline 中被策略算法调用时能够以正确的方式运行。

CSV 文件格式:

第一栏是“日期”栏,第二栏是“开仓”,第三栏是“高位”,第四栏是“低位”,第五栏是“收盘”,第六栏是“成交量”。任何列都不应为空或缺少值。

读取 CSV 文件:

#code
import pandas as pd
datas = OrderedDict()
data['SPY'] = pd.read_csv('SPY.csv', index_col=0, parse_dates=['Date'])
print data['SPY'].head()
type(data['SPY'])

请注意上面的代码:

股票的名称是“SPY ”,我们已经在保存 CSV 文件“SPY.csv”的目录中,否则您还需要指定路径。

  1. Convert data frame into panel

通过上述方法导入 Python IDE 的数据保存为 Dataframe。现在我们需要将其转换为面板格式,并修改长轴和短轴。

#code
panel = pd.Panel(data)
panel.minor_axis = ['Open', 'High', 'Low', 'Close', 'Volume']
panel.major_axis = panel.major_axis.tz_localize(pytz.utc)

Zipline 接受[‘开盘’,‘高’,‘低’,‘收盘’,‘成交量’]数据作为短轴,以 UTC 时间格式将’日期’作为长轴。因为如果我们没有 UTC 格式的日期,我们就使用“tz_localize(pytz.utc)”来转换它。

现在“面板”是以面板格式保存的数据集“数据”。这是面板格式的外观:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  1. Use this new data structure panel to run your strategy

我们使用这个新的数据结构‘Panel’来运行我们的策略,在‘initialize’或‘handle _ data’部分没有任何变化。策略逻辑和代码保持不变。我们只是在运行策略时插入新的数据结构。

#initializing trading enviroment
algo_obj = TradingAlgorithm(initialize=initialize, handle_data=handle_data, capital_base = 100000.0)
#run algo
perf_manual = algo_obj.run(panel)

就是这样!现在,您可以轻松地在 CSV 数据文件上运行之前解释的移动交叉策略!来吧,试试看!

您可以获取 Quandl(US data)数据,并尝试在其上生成信号。

对滑索进行回溯测试

在前一篇文章中,我们测试了一个简单的移动交叉策略,并绘制了每个交易日的现金和 PnL。现在,我们将计算 PnL 和整个交易期间的交易总数。

回想一下,结果会自动保存在“perf_manual”中。使用同样的方法,我们可以计算任何我们需要的性能比率或数字。

#code
#calculation
print "total pnl : " + str(float(perf_manual[["PnL"]].iloc[-1]))
buy_trade = perf_manual[["status"]].loc[perf_manual["status"] == "buy"].count()
sell_trade = perf_manual[["status"]].loc[perf_manual["status"] == "sell"].count()
total_trade = buy_trade + sell_trade
print "buy trade : " + str(int(buy_trade)) + " sell trade : " + str(int(sell_trade)) + " total trade : " + str(int(total_trade))

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

看起来这个策略损失了 50%以上的初始资本!

要更改初始资本和其他参数来优化您的回溯测试 excel 结果,您需要相应地初始化 TradingAlgorithm()。‘资本基数’用于定义初始现金,‘数据频率’用于定义数据频率。例如:

algo_obj = TradingAlgorithm(initialize=initialize, handle_data=handle_data, capital_base = 80000.0)

(默认情况下,资本为 100000.0。)

通过 TradingAlgorithm()函数的官方文档来尝试了解更多!


我们的下一篇文章将向您介绍 python 中的 zipline 包及其优点,如何安装它,并使用它来编写金融贸易的移动交叉策略。

你可以通过对历史数据进行回溯测试来提高交易成功的可能性。Quantra 的这个关于回溯测试交易策略的课程正是你从交易中获得最大收益所需要的。从基本步骤、数据、规则、风险管理等方面学习一切。立即注册!


重要提示:我们不建议再使用 zipline,因为这个库在过去两年中没有得到有效的管理。


*免责声明:股票市场的所有投资和交易都涉及风险。在金融市场进行交易的任何决定,包括股票或期权或其他金融工具的交易,都是个人决定,只能在彻底研究后做出,包括个人风险和财务评估以及在您认为必要的范围内寻求专业帮助。本文提到的交易策略或相关信息仅供参考。*T3】

注意:我们注意到一些用户在从雅虎和谷歌金融平台下载市场数据时面临挑战。如果您正在寻找市场数据的替代来源,您可以使用 Quandl 进行同样的操作。


下载数据文件

  • mac_excel_ zipline.txt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值