Quantinsti 博客中文翻译(三十四)

Quantinsti 博客中文翻译(三十四)由编译 Python 一种由 GuidoVanRoss 在 20 世纪 80 年代后期构思的编程语言 已经见证了巨大的增长 尤其是在最近几年 因为它的易用性 丰富的库和优雅的语法

原文:Quantinsti Blog

协议:CC BY-NC-SA 4.0

如何使用 Python 进行交易和投资[网络研讨会]

原文:https://blog.quantinsti.com/python-trading-investment-webinar-29-june-2021/


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


访问 Python 笔记本这里。


关于会议

本次网络研讨会旨在从金融市场的角度向您介绍 Python 编程的基础知识。对于希望利用编程和技术将当前交易方法提升到新水平的交易者和投资者来说,这是一个必须参加的会议。


会话大纲

  • Python 环境和库
  • 用 python 构建交易策略
  • 根据历史数据对策略进行回溯测试
  • 在现场市场实施战略
  • 分析战略的绩效
  • 问与答(Question and Answer)

关于演讲者

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

萨特雅普里亚·乔德里

QuantInsti 的定量分析师

Satyapriya 是 QuantInsti Quantra 内容团队的一名量化分析师。在此之前,她是 GreyAtom 学习团队和 Quattro 风险管理团队的成员。她主要关注的领域是 Python、机器学习和自然语言处理。


本次会议于
2021 年 6 月 29 日星期二
美国东部时间上午 9:30 | IST 时间晚上 7:00 |新加坡时间晚上 9:30 举行

用于算法交易的流行 Python 库

原文:https://blog.quantinsti.com/python-trading-library/

由沙古塔塔西尔达&T2】阿波瓦辛格

通过这篇关于“Python 库和平台”的文章,我们将涵盖最流行和最广泛使用的 Python 交易平台和用于量化交易的 Python 交易库。

我们之前也报道过最流行的量化交易回测平台,你可以在这里查看。

Python 是一种免费的开源和跨平台的语言,它有一个丰富的库,可以用于几乎所有可以想象的任务,还有一个专门的研究环境。 Python 是中低交易频率(即持续时间不少于几秒钟的交易)自动交易的绝佳选择。它有多个 APIs 库,可以链接起来优化它,并允许多种交易想法的更大探索性发展。比如我们可以通过 Python 股票 API 获取历史行情数据。

我们整理了一份由专家撰写的关于 Python 交易的最受欢迎的博客列表。

在这篇博客中,除了流行的 Python 交易平台,我们还将关注流行的 Python 交易库的各种功能,如:

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

用于技术分析的 Python 交易库

TA-LibT3】

TA-Lib 或技术分析库是一个开源库,广泛用于使用 RSI(相对强弱指数)、布林线、MACD 等技术指标对金融数据进行技术分析。它不仅适用于 Python,还适用于其他编程语言,如 C/C++、Java、Perl 等。下面是 TA-Lib 中可用的一些函数:BBANDS -用于布林线,AROONOSC -用于 Aroon 振荡器,MACD -用于移动平均线收敛/发散,RSI -用于相对强弱指标。在此阅读更多此类功能。

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

用于数据操作的 Python 交易库

NumPyT3】

NumPy 或数字 Python,提供了大型多维数组和矩阵的强大实现。该库由用于复杂数组处理和这些数组的高级计算的函数组成。这个库的一些数学函数包括三角函数(sin,cos,tan,弧度),双曲函数(sinh,cosh,tanh),对数函数(log,logaddexp,log10,log2)等。

熊猫

Pandas 是一个巨大的 Python 库,用于数据分析和操作,也用于处理数字表或数据框和时间序列,因此,大量用于使用 Python 的算法交易。熊猫可以用于各种功能,包括进口。csv 文件、串行执行算术运算、布尔索引、收集关于数据帧的信息等。

SciPy

SciPy ,顾名思义,是一个用于科学计算的开源 Python 库。它与 NumPy 一起用于执行复杂的功能,如数值积分、优化、图像处理等。这是 SciPy 的几个模块,用于执行上述功能:scipy.integrate(用于数值积分)、scipy.signal(用于信号处理)、scipy.fftpack(用于快速傅立叶变换)等。

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

用于绘制结构的 Python 交易库

【matplot lib】

这是一个 Python 库,用于绘制 2D 结构,如图形、图表、直方图、散点图等。与用于计算的其他库一起,有必要使用 matplotlib 使用图表和图形以图形格式表示数据。matplotlib 的一些功能包括散点图、饼图、堆积图、颜色条等。

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

用于机器学习的 Python 交易库

Scikit-learn

它是一个基于 SciPy 库构建的机器学习库,由各种算法组成,包括分类、聚类和回归,可以与其他 Python 库(如 NumPy 和 SciPy)一起用于科学和数值计算。它的一些类和函数是 sklearn.cluster、sklearn.datasets、sklearn.ensemble、sklearn.mixture 等。你可以在这里阅读更多关于图书馆及其功能的信息。

张量流

TensorFlow 是一个开源软件库,用于高性能数值计算和机器学习应用,如神经网络。它允许跨各种平台(如 CPU、GPU、TPU 等)轻松部署计算。由于其灵活的架构。了解如何安装 TensorFlow GPU

Keras

Keras 是深度学习库,用于开发神经网络和其他深度学习模型。它可以建立在 TensorFlow、Microsoft Cognitive Toolkit 或 Theano 之上,并专注于模块化和可扩展。它由用于构建神经网络的素组成,如层、目标、优化器等。在 Python 和 R 上安装 Keras 在这里演示。该库可用于利用人工神经网络预测股票价格的交易中。

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

用于回溯测试的 Python 交易库

PyAlgoTradeT3】

一个事件驱动的库,专注于回溯测试,支持纸上交易和现场交易。PyAlgoTrade 允许你用历史数据评估你的交易想法,看看它的表现如何。支持事件驱动的回溯测试,访问来自雅虎财经、谷歌财经、NinjaTrader CSVs 的数据以及 CSV 中任何类型的时间序列数据。文档很好,支持 TA-Lib 集成(技术分析库)。它在速度和灵活性方面胜过其他库,然而,最大的缺点是它不支持 Pandas-object 和 Pandas 模块。

滑索

这是一个事件驱动的系统,支持回溯测试和实时交易。Zipline 有很好的文档记录,有一个很棒的社区,支持交互式经纪人和熊猫集成。然而,与在已编译的应用程序中具有回溯测试功能的商业平台相比,Zipline 速度较慢,并且对于多种产品的交易来说不太方便。

Pybacktest

Python/pandas 中的矢量化回溯测试框架,旨在使您的回溯测试变得紧凑、简单和快速。它允许用户使用 pandas 的全部功能来指定交易策略,同时隐藏所有交易、股票、业绩统计的手动计算并创建可视化。产生的策略代码在研究和生产环境中都是可用的。目前,只支持单一安全性回溯测试,多重安全性测试可以通过运行单一 sec 回溯测试,然后结合股权来实现。它正在进一步发展,以包括多资产回溯测试能力。

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

用于数据收集的 Python 交易库

超级金融

这是一个矢量化系统。一个用于实时金融数据收集、分析和回溯测试交易策略的 python 项目。支持从 Yahoo Finance、Google Finance、HBade 和 Excel 访问数据。

【TWP(用 Python 交易)

TradingWithPython 或 TWP 库也是一个矢量化系统。它是用于量化交易的函数和类的集合。它包括从雅虎财经、CBOE 和互动经纪人等来源获取数据的工具,以及经常使用的 P&L 基准函数。然而,这个库的文档和课程要花费 395 美。

使用 Python 在互动券商上交易

Interactive Brokers 是一个电子经纪人,它使用包括 Python 在内的各种编程语言提供了一个连接实时市场的交易平台。它为各种电子交易产品提供了全球 100 多个市场目的地,包括股票、期权、期货、外汇、债券、差价合约和基金。IB 不仅有非常有竞争力的佣金和利润率,而且有一个非常简单和用户友好的界面。这里我们将讨论如何使用 Python 连接到 IB。

有几个有趣的 Python 库可以用来连接使用 IB 的实时市场,你需要首先拥有一个 IB 帐户,才能利用这些库进行真实货币交易。

这是一个易于使用且灵活的 python 库,可用于与交互式经纪人进行交易。它是一个围绕 IB 的 API 的包装器,提供了一个非常简单易用的解决方案,同时隐藏了 IB 的复杂性。为了学习使用 IBridgePy 库,你可以看看这个 T2 的 youtube 视频或者这个 T4 的神奇博客

IBPy

IBPy 是另一个 python 库,可用于使用交互式代理进行交易。关于安装和使用 IBPy 的细节可以在这里找到如上所述,每个库都有自己的优势和劣势。根据策略的要求,您可以在权衡利弊后选择最合适的库。到目前为止,我们已经看了不同的库,现在我们来看 Python 交易平台。

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

开源 Python 交易平台

Python 交易平台提供多种功能,如开发策略代码、回溯测试和提供市场数据,这就是为什么这些 Python 交易平台被量化和算法交易员广泛使用。下面列出了几个流行的免费 python 交易平台,Python 爱好者可以用来进行算法交易。

蓝移

Blueshift 是一个免费的综合性交易和策略开发平台,也支持回溯测试。它有助于人们更专注于策略开发而不是编码,并提供集成的高质量分钟级数据。其基于云的回溯测试引擎使人们能够在 Python 编程环境中开发、测试和分析交易策略。您可以从这里开始使用该平台开发战略。

Quantiacs 是一个免费的开源 Python 交易平台,可以用来开发和回测使用 Quantiacs 工具箱的交易想法。Quantiacs 为 49 只期货和标准普尔 500 指数股票提供长达 25 年的免费和干净的金融市场数据。你可以想开发多少策略就开发多少策略,盈利策略可以在 Quantiacs 算法交易竞赛中提交。在 Quantiacs,你可以拥有自己交易想法的知识产权。Quantiacs 投资每场比赛的 3 个最佳策略,如果你的交易策略被选中投资,你将获得一半的绩效费。

这些是一些最常用的 Python 库和交易平台。你可以在这里了解一些流行的 Python ide。但是仍然有很多东西需要探索,包括更多的库和平台,其中大部分你可以通过这门关于量化策略的课程来学习,这门课程不仅包括用于交易的Python的基础知识,还包括各种策略,并解释了如何用 Python 实现它们。

观看关于“Python 中的自动化交易”的网络研讨会,了解如何用 Python 创建和执行量化策略。

您也可以查看这个教程,使用 IBPy 在 Interactive Brokers API 中实现 Python。在 IB TWS 上为 quants 和 Python 编码者自动交易。

更新

我们注意到一些用户在从雅虎和谷歌金融平台下载市场数据时面临挑战。如果您正在寻找市场数据的替代来源,您可以使用 Quandl 来获得相同的数据。

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

推荐阅读

Python 交易入门

在 Python 中处理错误和异常

Python 异常:在 Python 中引发和捕获异常

时间序列分析:Python 简介

使用 Python 对股票数据的基本操作

Quantiacs 平台中的 Python 交易策略

原文:https://blog.quantinsti.com/python-trading-strategy-quantiacs-platform/

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

由米林德·帕拉德卡

算法交易在最近几年有很大的吸引力,希望探索这个利润丰厚的领域的学生、工程毕业生和金融专业人士的数量逐年呈指数增长。

你是想学习量化技术并利用你的交易理念赚钱的人吗?让我们探索 Quantiacs 平台,它允许你创建、运行和实施你的https://blog.quantinsti.com/python-trading-library/Python 交易策略。Quantiacs 为成功的量化分析师提供了巨大的赚钱机会。

Quantiacs 工具箱

Quantiacs 工具箱是免费和开源的。Quantiacs 为 49 只期货和标准普尔 500 股票提供长达 25 年的免费数据。该工具包允许用户创建一个交易策略,并用 1990 年的数据进行回溯测试。除了期货数据,Quantiacs 最近还增加了宏观经济数据,这些数据可以与价格时间序列数据结合使用,以改进交易算法。Quantiacs 同时支持 Python 和 Matlab。在本帖中,我们将探索 Python 工具箱,并展示一个使用它的玩具策略。

Quantiacs Python 工具箱

Quantiacs 创建了一个简单而强大的 Python 框架,可以用来创建不同类型的算法策略。它提供了定义交易系统设置,如加载市场数据,交易成本,自定义字段,资本等。Python 工具箱的其他特性包括评估交易系统、优化、结果可视化等。让我们在这里探索一下 Python 框架的一些特性。

加载市场数据:

Quantiacs 在股票和期货市场都有交易。股票的数据字段如下所示:

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

我们可以使用 quantiacsToolbox.loadData 函数在 Python 中加载股票数据。

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

可以看出,数据是 Python 字典的形式。让我们检查键值对的数据类型。

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

要创建一个 Python 交易策略,我们必须操作 numpy 数组,并且要求你对 Python numpy 数组及其支持的无数函数有很好的理解。这里是一些有用功能的列表。

蜡烛高低 Python 策略

现在让我们采用一个非常简单的蜡烛图高低策略,并尝试使用 Quantiacs 工具箱对其进行编码。一步一步的过程如下所示。

第一步:定义设置

我们对苹果公司(Apple Inc .)和亚马逊公司(Amazon Inc .)的股票测试了我们的样本策略。回溯测试周期在设置[’ begin sample ']和设置[‘endInSample’]变量中定义。我们还定义了回望日、资本和滑点。

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

第二步:Python 交易策略

我们保持了简单的策略。在第一步中,我们定义蜡烛线的数量,这些蜡烛线代表先前价格的数量,这些价格将被考虑用于生成买入/卖出信号。然后我们计算最后 n 根蜡烛的价格差。如果所有的价差都是正的,我们做空,预期会出现均值回归行为。如果所有的差价都是负数,我们就做多。

多头头寸由值 1 表示,而空头头寸的值为-1。

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

第三步:运行策略

为了执行我们的策略,我们使用 quantiacsToolbox.runts 命令并指定相应的 Python 文件。

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

第四步:可视化结果

在执行时,Python 框架会显示一个信息丰富的图表,其中包括市场、选择风险类型的选项、各种性能指标等。

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

可以看出,Quantiacs Python 框架易于使用,可以用来开发各种交易策略。

下一步

Python 算法交易在 quant finance 社区中获得了牵引力,因为它可以轻松地建立复杂的统计模型,这是因为有足够的科学库可用,如 Pandas、NumPy、PyAlgoTrade、Pybacktest 等。

如果您希望掌握使用 Python 生成交易策略、回溯测试、处理时间序列、生成交易信号、预测分析等艺术,您可以注册我们的 Python for Trading 课程!

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

下载 Python 代码

  • 蜡烛线高低策略- Python 代码

Python 交易十大博客| 2022

原文:https://blog.quantinsti.com/python-trading-top-blogs/

Python 是加速交易过程的一个关键方面。Python 利用其可行的库和高度功能化的语法来关注回溯测试,并支持纸上交易和现场交易。此外,Python 是一种开源的跨平台编程语言,支持商业用途的免费包。

根据 Emergen Research 的一份报告,“预计 2030 年全球 Python 市场规模将达到 1.006 亿美,收入 CAGR 将达到 44.8%。”

因此,我们可以看到,在 web 和软件的最终应用中,对 Python 的需求正在上升。与其他编程语言相比,Python 有很大的依赖性,因为它支持实时物联网和边缘计算应用。

Python 在 quant finance 社区获得了牵引力。它使得综合统计模型的开发变得容易。它还使用 Pandas 框架导入财务数据。基于 Python 的解决方案包括分析数据和预测结果的机器学习算法,这些算法有助于开发金融模型和策略。

因此,为了帮助你改进你的交易,我们整理了一份由专家撰写的 Python 交易博客列表。


Python 交易十大博客| 2022

Python 进行交易:其好处、策略及更多

编程语言 Python 是在 20 世纪 80 年代开发的。虽然它已经有几十年的历史,但是由于它的应用,它已经有了巨大的发展。

而且,在这个算法交易的时代,学习和开发 Python 中的技能已经成为一种必须。为了在算法交易中取得成功,你必须更多地了解 Python 来制定优雅的策略。

因此,在本文中,您将了解到:

  • 如何选择编程语言
  • 为什么要用 Python 做交易?
  • Python 这些年来的流行
  • Python 在算法交易中的利与弊
  • Python vs. C++ vs. R
  • Python 在金融中的应用
  • 如何评价样本交易策略
  • 如何在交易中入门 Python
  • 还有更多。

Python 中的建筑技术指标

技术指标是建立在多个数据集上的数学表达,用来预测市场变化。各种指标有助于评估和确定价格运动的方向。例如,交易者使用动量交易、均值回归策略等指标来分析未来的定价趋势。

您也可以学习如何使用 Python 开发技术指标,正如博客所涵盖的:

  • 什么是技术指标?
  • 为什么要用 Python 技术指标?
  • 交易的技术指标
  • 移动平均数
  • 布林线
  • 相对强度指数
  • 资金流动指数
  • 平均真实范围
  • 力指数
  • 易于移动

用 Python 轻松安装 Ta-Lib 的分步指南

历史价格和交易量数据在计算技术指标以分析市场趋势时至关重要。指标加在图表上是为了安排进场和出场信号。

想知道如何用 Python 只用几行代码就能计算出技术指标?你想知道如何回测各种金融资产的表现吗?

Ta-Lib 提供了超过 150 个指标,如 ADX、MACD、RSI、布林线以及烛台模式识别。

这个博客包括什么?安装 Ta-Lib 的最简单和可选的方法。

Python 中的层次聚类

随着原始数据的丰富和分析的需要,无监督学习的概念逐渐流行起来。无监督学习的主要目标是发现未标记数据中隐藏的和令人兴奋的模式。

最常见的无监督学习算法是聚类。聚类分析的应用范围从医学到人脸识别到股票市场分析。在这篇博客中,我们将讨论层次聚类。

根据 Statista 的一份报告,“全球创建、捕获、复制和消费的数据总量预计将快速增长,到 2020 年将达到 64.2 兆字节。在到 2025 年的未来五年中,全球数据创建预计将增长到 180 多亿字节。”

Allied Market Research 预测,到 2030 年,金融分析市场将达到 198 亿美。

正如在数据和分析市场的增长中所看到的,需要无监督学习来评估大型数据集。无监督学习提供了在非结构化数据中识别模式的特征。最流行的无监督学习算法之一是聚类。它在股市分析中起着举足轻重的作用。

使用 Python Seaborn 创建热图

该博客提供了一个使用 Seaborn Python 包创建热图的演练,交易员可以用它来跟踪市场。Seaborn 是一个易于使用的库,提供了主要的解决方案。它也是 Python 中一个很酷的数据可视化包,提供了更美观的可视化效果。

本博客涵盖:

  • 用于 Python 数据可视化的 Seaborn
  • 什么是热图?
  • 金融业热图的使用案例
  • 创建热图的逐步 Python 代码
    -显示股票单日价格变化百分比
    -显示股票价格变化之间的相关性
  • 用于绘制热图的其他 Python 库

用 Python 分析历史数据获得股市洞察!T3】

你想获得股票市场的洞察力,并用 Python 分析历史数据吗?

这将使您能够

  • 获取股票的历史数据
  • 绘制股票市场数据并分析其表现
  • 获取基本面、期货和期权数据

正如它所讨论的:

  • 如何用 Python 获取股市数据?
  • 如何获取不同地域的股市数据?
  • 标准普尔 500 证券交易所
  • 日内或分钟频率股票数据
  • 重新采样股票数据
  • 基本数据
  • 期货和期权数据
  • 股票市场数据可视化和分析

利用 Python 对市场数据进行线性回归,R

这篇文章提供了回归实际财务数据的见解。它还涵盖了使用 Python 和 r 建模关系的方法。它可以帮助精通一种语言或应用程序的读者更深入地了解其他语言的实现。

使用 Python 股票 API 获取历史行情数据

几行代码就可以得到你的数据!这个博客带你了解免费和付费的解决方案。这些解决方案有一个简单的 Python Stock API 包装器,您可以利用它。该博客还涵盖了一些资源,这些资源提供了关于如何通过多种方式获取数据的信息,并附有示例。

博客结构包括

  • 使用 Python stock API 免费解决历史数据
  • 获得免费历史数据的资源
  • 使用 Python stock API 的历史数据付费解决方案
  • 获取付费历史数据的资源

Python 中的 XGBoost 介绍

XGBoost 是一个开源软件库,它为多种编程语言和操作系统规范了梯度推进框架。这是一个流行的监督学习库,用于对大型数据集进行回归和分类。顶部博客提供了图书馆的详细信息。

该博客提供以下信息:

  • XGBoost 是什么?
  • XGBoost 为什么这么好?
  • XGBoost 功能重要性
  • 如何在 anaconda 中安装 XGBoost?
  • Python 中的 xgboost

利用 Python 机器学习预测黄金价格指南

有可能预测黄金价格的走向吗?

是的,让我们使用机器学习回归技术来预测最重要的贵金属之一黄金的价格。

我们将创建一个机器学习线性回归模型,该模型从过去的黄金 ETF (GLD)价格中获取信息,并返回第二天的黄金价格预测。GLD 是 T2 最大的直接投资实物黄金的 ETF T3。在我们使用 Python 中的机器学习预测黄金价格的旅程中,我们将涉及以下主题。


一些特别提及

Python 中的机器学习分类策略

该博客提供了用 Python 开发分类模型的基础知识和分步指南。

用于算法交易的流行 Python 库

通过这篇关于“Python 库和平台”的文章,我们将涵盖最流行和最广泛使用的 Python 交易平台和用于量化交易的 Python 交易库。

我们之前也讨论过最流行的量化交易回测平台。

了解 Algo Trading 中最流行、最广泛使用的 Python 交易平台和库有哪些。这个博客涵盖了 Python 交易平台和几个函数库:

  • 技术分析
  • 数据操作
  • 绘制结构
  • 机器学习
  • 回溯测试
  • 数据收集

Python 中的斐波那契回撤交易策略

斐波纳契交易解决方案有助于确定支撑位和阻力位,或确定定价目标。斐波纳契数列对于使用它进行交易的技术分析师来说非常突出。文章简单解释了流行的斐波那契交易策略:回撤以确定支撑位。

在印度市场用 Python 交易

Python 是最受欢迎的编程语言之一,因为它具有开源和跨平台的架构。在本文中,了解如何使用 Python 在印度市场进行交易。

Excel 和 Python 中的风险值(VaR)计算

通过相关示例,学习并运用历史方法和方差-协方差技术在 Excel 和 Python 中计算风险值。


结论

我们有一个完整的博客、教程、课程等资源库。只为你的学习和发展。Python 的世界非常广阔,因为它是当今时代的一种关键编程语言。

这些只是帮助我们的读者在 2022 年了解更多 Python 的一些博客。我们真的很感谢你在这个博客上的评论,一定要在下面留下你的评论!


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

Python 交易简介:好处、策略等等

原文:https://blog.quantinsti.com/python-trading/

由 Viraj Bhagat 编译

Python,一种由 Guido Van Rossum 在 20 世纪 80 年代后期构思的编程语言,已经见证了巨大的增长,尤其是在最近几年,因为它的易用性、丰富的库和优雅的语法。

一门编程语言怎么会有‘Python’这样的名字?

嗯,Python 的创造者 Guido 需要一个简短、独特、有点神秘的名字,因此在观看一部名为“蒙蒂·Python 的飞行马戏团”的喜剧系列片时,他决定使用“Python”。

如果你对 Python 的历史以及什么是 Python 和它的应用很好奇,你可以随时参考 Python 手册的第一章,它是你开始 Python 之旅的指南。我们正在走向自动化的世界,因此,总是需要有编程语言经验的人。当谈到算法交易的世界时,为了让你的交易算法更聪明更快,学习一门编程语言是必要的。

的确,你可以将战略中的编码部分外包给一个有能力的程序员,但当你不得不根据不断变化的市场场景调整你的战略时,这将会很麻烦。

在本文中,我们将介绍以下内容:


选择编程语言

在我们了解 Python 的核心概念及其在金融中的应用以及使用 Python 进行交易之前,让我们了解一下我们应该学习 Python 的原因。

了解流行的编程语言是成为专业算法交易者的基石。随着技术的日新月异,程序员很难学会所有的编程语言。

我们在 QuantInsti 收到的最常见的问题之一是

*“算法交易应该学哪种编程语言?”*T3】

这个问题的答案是,没有什么比算法交易更好的语言了。在选择编程语言之前,有许多重要的概念需要在整个交易过程中加以考虑:

  • 费用
  • 表演
  • 跳回
  • 模块化和
  • 其他各种交易策略参数

每种编程语言都有其优点和缺点,基于交易系统要求的优点和缺点之间的平衡将影响个人可能更喜欢学习的编程语言的选择。

每个组织基于其业务和文化都有不同的编程语言。

  • 你会使用什么样的交易系统?
  • 你打算设计一个基于执行的交易系统吗?
  • 你需要一个高性能的回溯测试器吗?

基于所有这些问题的答案,你可以决定哪种编程语言最适合算法交易。


为什么要用 Python 进行交易?

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

Python 已经成为最近交易的首选,因为 Python 是开源的,所有的都可以免费用于商业用途。

Python 已经在 quant finance 社区获得了牵引力。由于有足够的科学库可用,Python 使得构建复杂的统计模型变得很容易。

一些流行的 Python 库有:

对 Python trading 库的首次更新在开发者社区中是经常发生的事情。外面有无数的社区。

一些经常光顾的 Python 社区有:

  • Python meetups -全球约有 1637 个 Python 用户组,分布在 37 个国家的 191 个城市,成员超过 人。
  • Github 上的 200 万个知识库中有超过 130 万个是针对 Python 的
  • 有超过 170 万个关于 Python 的问题在 StackOverflow 上得到回答

我们甚至没有考虑到通过各种门户、团体、平台、论坛等的 Python 的绝大多数本地社区。

量化交易者需要一种脚本语言来构建代码原型。在这方面,

  • Python 在整个交易过程中有着巨大的意义
  • Python 在原型化量化模型中得到应用,尤其是在银行和对冲基金的量化交易团队中

“Python is fast enough for our site and allows us to produce maintainable features in record times, with a minimum of developers,”

Cuong Do 说,软件架构师,YouTube.com。【2】

为什么 quant 交易者更喜欢 Python 进行交易?

使用 Python 进行交易可以帮助他们:

算法交易开发者经常困惑于选择开源技术还是商业/专有技术。在决定这一点之前,必须考虑:

  • 围绕特定编程语言的社区活动,
  • 易于维护,
  • 易于安装,
  • 语言文档,以及
  • 维护成本。

Python 作为一种编程语言之所以流行,部分原因是该领域的一些巨头对它的认可。

这里列出了全球使用 Python 的一些大公司:

随着 #Python 的持续快速增长,这里有一份#使用 Python 的‘十大顶级公司’名单:
👉谷歌
👉Instagram
👉脸书
👉Spotify
👉Quora
👉亚马逊
👉网飞
👉条纹
👉收纳箱
👉Reddit

(来源:TIOBE,Hackernoon)pic.twitter.com/EP9jDp94Xc

— QuantInsti (@QuantInsti) July 11, 2021

如何使用 Python 和 Twitter API 获取推文

原文:https://blog.quantinsti.com/python-twitter-api/

由乌迪莎·阿洛克

社交媒体是名副其实的信息金矿,也是了解全世界人民集体心理的窗口。无论是政治家、名人、创意艺术家、教授还是学生,每个人似乎都在推特上。

它变得越来越受欢迎,名人的推文影响了数百万粉丝和市场!

因此,Twitter 数据被用于包括交易在内的各种领域的情绪分析。

这篇博客将展示我们如何使用 Twitter API 从 Twitter 获取数据。我们将为此使用 Tweepy 库,并详细探索使用它可以获得的各种类型的数据。这篇博客是由两部分组成的迷你系列的第一部分。

让我们看看我们将在这个博客中涵盖什么。


什么是 Twitter API?

Twitter API 是 Twitter 提供的官方编程端点。它允许开发者访问 Twitter 上数百万用户每天分享的大量公共数据。

Twitter API 的最新版本是 v2,它是官方的主要 Twitter API。但是 Twitter API v1.1 版还在用。

这两个版本的 API 之间有一些重要的区别。因此,1.1 版中的一些功能可能不适用于 v2。

根据 Twitter 网站的说法,v2 的构建是为了“更好地服务于更广泛的需求,引入了新的功能和端点,并改善了开发人员的体验。”

有关两个版本之间差异的更多信息,请参考此链接。


Twitter API v2 访问级别

Twitter API v2 提供了不同的访问级别:基本、高级和学术研究。高架+级也即将到来,根据官方网站。

下图比较了每个访问级别下的一些可用功能。

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

Twitter API v2 access levels: Source

对于本文中出现的一些代码,您需要有提升的访问权限。


访问 Twitter API

要使用 Twitter API v2,您需要:

  • 经批准的开发人员帐户。
  • 来自位于项目中的开发人员应用程序的密钥和令牌,用于身份验证。

阅读官方指南,了解更多关于 Twitter API 的入门知识。

一旦你注册了开发者账户,你就可以立即获得基本权限。需要提升访问权限才能向 Twitter v1.1 版发出请求,并获得 v2 的附加功能。基本访问直接可用,而提升访问必须请求。


基本通道与高架通道

简而言之,基本通道和高架通道的区别如下:

| 序列号 | 基本访问 | 高架通道 |
| one | 不需要申请。 | 需要批准的开发者帐户申请。 |
| Two | 立即可用。 | 一般需要 48-72 小时。但是,审查提升访问权限的申请可能需要两周时间 |
| three | 自由的 | 每月免费访问多达 2M 推文和 3 个应用程序环境 |
| four | 1 个应用程序,1 个项目 | 3 个应用程序,1 个项目 |
| five | 有限的功能 | 更多功能 |

您需要从开发者门户申请提升的访问权限,以访问本博客中讨论的所有代码。这个过程非常简单。

高架通道应用技巧

以下是一些我认为有助于提升访问权限申请更快获得批准的有用提示:

  1. 在你的应用程序中诚实地说明你的应用程序的目标以及你打算如何使用这些数据。
  2. 提供关于您的项目/应用程序的详细信息。
  3. 如果您的任何回复需要更多信息,Twitter 将向您发送电子邮件。请尽快坦率地详细回答。
  4. 如果你的申请因为没有及时提供所需信息而被拒绝,那么你可以通过回复收件箱中的电子邮件来重新打开该申请。
  5. 如果您的应用程序因为其用例违反了 Twitter 政策而被拒绝,您就不能重新申请它。

更多详情,请参考这些常见问题解答。

一旦您的提升访问权限申请获得批准,您将在您注册的电子邮件地址收到一封电子邮件。

让我们从代码开始吧!


使用 Python 从 Twitter 获取数据的 Tweepy

Tweepy 是一个易于使用的 Python 库,用于访问 Twitter API。它的 API 类提供了对 Twitter API 的 RESTful 方法的访问。这使得它易于理解和学习,成为访问 Twitter API 功能的流行选择。


安装 Tweepy

要使用 pip 从 PyPI 安装 Tweepy,可以使用以下命令:

pip install tweepy 

或者,您可以从 Github 存储库安装它:

pip install git+https://github.com/tweepy/tweepy.git 

API 认证

当你在 Twitter 上注册开发者账户时,你会得到 API 密匙和密码(这些功能类似于你的应用的用户名和密码),以及访问令牌和密码(这些代表拥有该应用的用户)。在向 Twitter API 发出请求之前,您将需要这些来验证您自己。

除非重新生成,否则这些密钥和令牌不会过期,并且需要安全地保存,以便您可以为您的代码访问它们,而不会将它们透露给其他人。

为此,我们将创建一个配置文件来保存这些凭据。然后,我们将在代码中从配置文件中读取这些值。

创建配置文件

  1. 打开记事本(或任何基本的文本编辑器),并创建以下格式的文件:
[twitter] api_key = XXXXXXXXXXXXXXXXXXXXXXXXX api_key_secret = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX access_token = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX access_token_secret = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 

2.现在,用“config.ini”这个名称保存这个文件。

从配置文件中读取凭据

我们现在将使用 configparser 库从配置文件中读取凭据的值。

利用二次判别分析优化日内动量策略

原文:https://blog.quantinsti.com/quadratic-discriminant-analysis-optimize-intraday-momentum-strategy/

拉马克·科尔曼

在本帖中,我们将创建一个日内动量策略,并使用 QDA 作为优化策略的手段。我们将首先回顾线性判别分析(LDA)及其与 QDA 的关系,了解 QDA,以及何时可以用这种技术代替线性判别分析。然后,我们将使用埃米尼标准普尔 500 期货的数据创建我们的日内动量策略,并应用我们的 QDA 分析来改进我们的交易策略。

我们开始吧!

线性判别分析综述

回想一下,使用机器学习技术的目的是为了让我们能够从数据中做出更好的推断和预测。因此,机器学习的目的类似于实现量化交易工作流程的目的。在定量交易中,我们的目标是消除认知偏差,最终将我们的决策建立在合理的证据或逻辑上。换句话说,我们的目标是用量化交易提供的客观性来取代手工交易固有的主观性。机器学习是实现这一目标的手段。

分类是机器学习问题的一种类型。在一个标准分类问题中,我们有一些*【y】或包含 k 水平或可能类别的响应。我们可以使用定量或数字、定性或分类,或者两种数据类型的混合作为我们的或特征来预测我们的数据的类别。*

在交易环境中,分类问题的一个例子是试图预测下一个价格的方向。在回归设置中,我们将尝试构建一个模型,使我们能够预测实际价格或数字响应。所以回归问题处理数字预测,分类处理分类预测。

当我们实现机器学习算法时,我们对*【f(X)*进行近似,这是一个表示 X 或我们的预测器和 y (我们的响应)之间关系的方程。参数模型为我们提供的优势是专注于估计一个方程的特定系数,而不是估计整个方程。

这意味着,我们可以对我们的数据做出一些假设,并基于现有的方程构建我们的模型,并求解该方程的系数,而不是试图构建一个完整的方程来表示我们的输入和输出之间的关系。这种模型有优点也有缺点,我们不会深入探讨,但本质上,为了有效地提供预测,模型需要反映或“模拟”现实中的数据。模型具有固有的假设,如果这些假设与现实不一致,模型的准确性或预测能力就会很低。

从它的名字,你可能已经猜到 LDA 假设线性。

在 LDA 中,我们从我们的观察可以落入的 k 类开始。该模型为每个 k 类创建概率分布。与直接估计观察值在特定类别中的概率的逻辑回归不同,LDA 使用 Bayes 定理并间接地估计这个后验概率。

例如,从代数上回忆一下,直线的方程是 y=mx+b

有了这个等式,我们可以简单地通过估计 mb 来拟合我们的数据,其中 m 是给定x中一个单位变化的 y 的斜率或导数(即变化率),而是截距这个等式允许我们,给定一些 x 值,来估计系数*【m】【b】,并对【y】进行预测。*

此过程类似于实现参数模型的过程。我们有一个关于数据结构的假设,通过我们的线性方程来说明,因此我们可以简单地估计我们的系数来进行预测。

LDA 的等式如下:

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

在这个等式中,我们寻求估计或每个 kπ k ,或k类和σ的先验概率,或每个类之间的公共协方差矩阵一旦我们有了这些系数,我们就可以把它们代入我们的方程进行预测。

我们将在下一篇题为“使用线性判别分析进行量化投资组合管理”的文章中介绍更多关于 LDA 的内容这个帖子将很快上线。

什么是二次判别分析?

二次判别分析是另一种机器学习分类技术。像 LDA 一样,它试图估计一些系数,将这些系数代入一个方程,作为进行预测的手段。实际上,LDA 和 QDA 非常相似。两者都假设 k 类可以从高斯分布中提取。QDA 也像 LDA 一样,使用 Baye 定理来估计方程的参数。QDA 的方程式如下:

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

等于:

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

因此我们可以看到,我们的 QDA 方程看起来与我们的 LDA 方程有些相似,只是在 LDA 中我们估计kT5、 π kσ 2 ,但在 QDA 我们估计μk

在 LDA 中,我们假设每个kthT5】类有一个共享协方差矩阵, σ 2 。但是在 QDA,这个假设已经改变了,我们现在假设每个k类都有自己的协方差矩阵, k

好了,现在你可能在想,如果 LDA 和 QDA 有相似之处,我们为什么要用 QDA。难道我们不能只关注 LDA 吗?因为很明显,QDA 更复杂一些,并且包含了矩阵乘法。

虽然 LDA 和 QDA 很相似,但也存在应该使用 QDA 的情况,并且可能优于 LDA,反之亦然。例如,LDA 假设 k 个类共享一个协方差矩阵。如果这种假设是无效的,那么 QDA 将优于 LDA。模型的另一个考虑是它们的灵活性。模型的灵活性可以直接转化为偏差-方差的权衡。模型越灵活,就越有可能过度拟合数据,并具有低偏差但高方差。相比之下,模型越不灵活,它就越有可能具有高偏差但低方差,因此并不真正类似于真实的总体。

伦敦发展署远没有 QDA 灵活。如果公共协方差矩阵的假设不正确,则 LDA 将具有高偏差,或者不代表现实。如果这个假设是正确的,那么使用 LDA 进行分类可能比使用 QDA 更好。

此外,特征的数量在模型选择中起着重要的作用。如果有很多预测器,使用 QDA 将比 LDA 的计算效率更低。这是因为在 QDA,你有更多的参数要估计,而且自然地,这在某种程度上是基于预测因子的数量而增长的。如果有很多训练观察,QDA 可能是更好的选择。

日内动量策略开发

好吧。现在我们已经回顾了 LDA 和 QDA,让我们为发展我们的日内动量策略制定一个框架。我们将使用 eMini 标准普尔 500 的日内数据,并将 RSI 作为我们的动量指标。我们的目标是构建我们的策略,评估其性能,然后通过使用二次判别分析来改进我们的策略的性能。

让我们导入一些我们常用的库。

*#data analysis and manipulation import numpy as np import pandas as pd #data visualization import matplotlib.pyplot as plt import seaborn as sns sns.set_style('whitegrid')* 

现在我们已经导入了初始库,让我们导入数据。我们将使用 pandas 读取 csv 文件格式的数据。

*#initializing our data variable as our eMini data data=pd.read_csv('ESPostData.csv')* 

现在我们有了数据,让我们对它进行一些探索性的数据分析。我们将从使用信息和描述方法以及检查数据头开始。

*data.info()* 
*<class 'pandas.core.frame.DataFrame'> RangeIndex: 28027 entries, 0 to 28026 Data columns (total 10 columns): Date 28027 non-null object Time 28027 non-null object Open 28027 non-null float64 High 28027 non-null float64 Low 28027 non-null float64 Close 28027 non-null float64 Volume 28027 non-null int64 NumberOfTrades 28027 non-null int64 BidVolume 28027 non-null int64 AskVolume 28027 non-null int64 dtypes: float64(4), int64(4), object(2) memory usage: 2.1+ MB* 

通过应用这种方法,我们可以看到数据帧中的数据类型以及列。现在让我们对我们的数据调用所描述的方法。

*data.describe()* 

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

这个方法给了我们一些关于数据的统计信息。我们现在可以检查数据的头部。

*data.head()* 

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

我们将创建一个基于动力的战略。我们可以看到每隔 3 分钟就有一次数据。买入和卖出的交易量可以提供一些短期动力的信息。让我们创建一个 delta 柱,我们的出价量减去我们的要价量,并将其与收盘价进行比较,看看是否有一些关系。我们将首先复制我们的数据,然后添加我们的 delta 列。

*#making copy of our data es=data.copy() #creating delta column es['Delta']=es[' BidVolume']-es[' AskVolume']* 

现在让我们重新检查我们的数据头部,并创建一个回归图。

*es.head()* 

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

*#creating regression plot sns.lmplot('Delta',' Close',data=es) plt.title('ES Regression Delta to Close')* 
*<matplotlib.text.Text at 0x16b7bae3080>* 

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

现在我们已经了解了我们的 delta 和收盘价之间的关系,让我们画一个 delta 的分布图。

*#creating distribution of delta sns.distplot(es['Delta']) plt.title('ES Delta Distribution')* 
*<matplotlib.text.Text at 0x16b7bbb3550>* 

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

现在,我们将向数据中添加一个范围列,并查看每个条形的范围与增量之间的关系。

*#adding our range column es['Range']=es[' High']-es[' Low']* 
*#rechecking the head of our data es.head()* 

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

现在我们可以创建一个 delta 和数据范围的散点图。

*sns.jointplot(es['Delta'], es['Range'])* 
*<seaborn.axisgrid.JointGrid at 0x16b7ee09470>* 

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

现在我们来看看每根棒线交易次数的分布。

*#creating number of trades distribution sns.distplot(es[' NumberOfTrades'],bins=100)* 
*<matplotlib.axes._subplots.AxesSubplot at 0x16b7ef2bc18>* 

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

现在我们已经从探索性数据分析中获得了一些数据,我们准备使用 RSI 指标创建我们的日内动量策略。我们将把我们的策略包装在一个类中,该类允许我们创建策略的不同实例,而不必重写相同的逻辑。

*class rsi_strategy(object): def __init__(self,data,n,data_name,start,end): self.data=data #the dataframe self.n=n #the moving average self.data_name=data_name #the name that will appear on plots self.start=start #the beginning date of the sample period self.end=end #the ending date of the sample period def generate_signals(self): delta=self.data[' Close'].diff() dUp,dDown=delta.copy(),delta.copy() dUp[dUp<0]=0 dDown[dDown>0]=0 RolUp=dUp.rolling(self.n).mean() RolDown=dDown.rolling(self.n).mean() #assigning indicator to the dataframe self.data['RSI']=np.where(RolDown!=0, RolUp/RolDown,1) self.data['RSI_Slow']=self.data['RSI'].rolling(self.n).mean() #creating signals self.data=self.data.assign(Signal=pd.Series(np.zeros(len(self.data))).values) self.data.loc[self.data['RSI']<self.data['RSI_Slow'],'Signal']=1 self.data.loc[self.data['RSI']>self.data['RSI_Slow'], 'Signal']=-1 return def plot_performance(self,allocation): #intializing a variable for initial allocation #to be used to create equity curve self.allocation=allocation #creating returns and portfolio value series self.data['Return']=np.log(self.data[' Close']/self.data[' Close'].shift(1)) self.data['S_Return']=self.data['Signal'].shift(1)*self.data['Return'] self.data['Market_Return']=self.data['Return'].expanding().sum() self.data['Strategy_Return']=self.data['S_Return'].expanding().sum() self.data['Portfolio Value']=((self.data['Strategy_Return']+1)*self.allocation) #creating metrics self.data['Wins']=np.where(self.data['S_Return'] > 0,1,0) self.data['Losses']=np.where(self.data['S_Return']<0,1,0) self.data['Total Wins']=self.data['Wins'].sum() self.data['Total Losses']=self.data['Losses'].sum() self.data['Total Trades']=self.data['Total Wins'][0]+self.data['Total Losses'][0] self.data['Hit Ratio']=round(self.data['Total Wins']/self.data['Total Losses'],2) self.data['Win Pct']=round(self.data['Total Wins']/self.data['Total Trades'],2) self.data['Loss Pct']=round(self.data['Total Losses']/self.data['Total Trades'],2) #Plotting the Performance of the RSI Strategy plt.plot(self.data['Market_Return'],color='black', label='Market Returns') plt.plot(self.data['Strategy_Return'],color='blue', label= 'Strategy Returns') plt.title('%s RSI Strategy Backtest'%(self.data_name)) plt.legend(loc=0) plt.tight_layout() plt.show() plt.plot(self.data['Portfolio Value']) plt.title('%s Portfolio Value'%(self.data_name)) plt.show()* 

好吧。现在让我们试试我们的 rsi_strategy 类。

*#creating an instance of our strategy class strat1=rsi_strategy(es,10,'ES',es['Date'][0],es['Date'].iloc[-1])* 

既然我们有了 RSI 策略的实例,我们现在可以调用生成信号和绘制性能方法来查看我们的策略的执行情况。

*#generating signals strat1.generate_signals()* 
*#plotting performance of our strat1 strategy #passing in an allocation amount of $10,000 strat1.plot_performance(10000)* 

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

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

现在我们已经构建了策略,我们可以使用编码到策略类中的功能来检查它的一些指标。我们将检查我们的命中率、胜率和失败率。

*#checking our Hit Ratio strat1.data['Hit Ratio'][0]* 
*0.000005* 

这个命中率告诉我们,我们的策略目前的胜败比不到 1 比 1。现在让我们检查我们的赢输百分比。

*#checking our win percentage print('Strategy Win Percentage') strat1.data['Win Pct'][0]* 
*Strategy Win Percentage 0.* 
*#checking our loss percentage print('Strategy Loss Percentage') strat1.data['Loss Pct'][0]* 
*Strategy Loss Percentage 0.000002* 

我们还可以检查我们的总盈亏数,以及我们的策略的总交易数。

*#checking total number of wins strat1.data['Total Wins'][0]* 
*10818* 
*#checking total number of losses strat1.data['Total Losses'][0]* 
*11613* 
*#checking total number of trades strat1.data['Total Trades'][0]* 
*22431* 

在这一点上,我们已经对我们的数据进行了探索性的数据分析,创建了我们的日内动量策略,并查看了我们策略的指标。我们的策略目前的命中率不到 1。我们的胜率约为 48%,亏损率为 52%。从表面上看,这并不令人印象深刻。

我们如何改进我们的战略,以便我们能够从中获利?

即使我们输的比赢的稍微多一点,如果我们能有效地消除一些亏损的交易,我们就能反过来重新调整我们的盈亏百分比和命中率。换句话说,我们的成功交易不是问题。实际上,赢得 48%的时间比赢得少于 48%的金额要好。问题是,考虑到我们总交易的分布,我们赢的不够多。如果我们几乎消除了所有亏损的交易,会怎么样?我们的交易会少很多,但我们的胜率会飙升,这样我们就可以交易策略获利。

正确识别问题或任务是任何机器学习应用程序的关键技能。我们将利用 QDA 来改进我们现有的战略。我们的目标是能够预测我们的策略何时可能在亏损交易发生之前进行亏损交易,以便我们能够消除亏损交易,从而重新平衡我们的盈亏百分比。听起来很有趣!我们开始吧!

使用 QDA 优化日内动量策略

现在我们将使用 QDA 作为改进我们日内动量策略的一种手段。我们先从 sklearn 导入必要的库开始。

*from sklearn.discriminant_analysis import QuadraticDiscriminantAnalysis from sklearn.metrics import confusion_matrix, classification_report* 

我们需要一种方法来确定我们什么时候可能进行亏损交易。嗯……我们给数据添加一个分类返回列怎么样。然后我们可以做一点特征工程并使用我们的 QDA 分类器来预测分类返回值。一旦我们完成了这个,我们就可以通过把我们的预测反馈给我们的策略来测试我们的想法,看看这是否能提高我们策略的性能。

我们将从复制我们的战略数据框架开始。回想一下,这是我们构建战略的初始实施时创建的数据框架。

*df=strat1.data* 

让我们检查一下数据帧的头部。

*df.head()* 

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

现在让我们添加我们的分类返回列。

*#adding column to hold the direction of returns df['Return Direction']=np.where(df['Strategy_Return']>0,'Up',np.where(df['Strategy_Return']<0,'Down',"Flat"))* 

让我们在返回方向列上调用我们的 head 和 tail 方法。

*df['Return Direction'].head()* 
*0 Flat 1 Flat 2 Flat 3 Flat 4 Flat Name: Return Direction, dtype: object* 
*df['Return Direction'].tail()* 
*28022 Down 28023 Down 28024 Down 28025 Down 28026 Down Name: Return Direction, dtype: object* 

现在我们已经添加了返回方向列,我们可以开始考虑我们应该使用什么特征来预测我们的策略亏损的概率。我们可以利用标的的波动性,因为它应该对我们的策略有一些影响。我们还可以使用不同的波动滞后来捕捉动量的演变。我们也可以使用我们的 RSI 指标。好吧。让我们把这些加到我们的数据框里。

你可能想知道为什么我们不用我们的信号发生器。我们希望以一种可以应用于任何市场环境的方式来训练我们的模型。在任何给定的时间,在各种市场条件下,我们的多头和空头可能会有不同的分布。例如,如果我们在牛市中,我们更有可能得到做多信号而不是做空信号。与我们的短期交易相比,我们的长期交易也更有可能获得更大程度的盈利。如果我们训练我们的模型来预测我们的信号发生器在此期间的亏损交易,它会将长信号与收益递增相关联,将短信号与收益递减相关联。虽然目前这可能是真的,但将来当我们进入熊市时,这个模型会有很大的偏差,不能预测我们亏损的交易。

*#adding our features #creating volatility strat1.data['Vol']=strat1.data[' Close'].rolling(window=5).std() #creating lags of volatility strat1.data['Vol Lag 3']=strat1.data['Vol'].shift(3) strat1.data['Vol Lag 4']=strat1.data['Vol'].shift(4) strat1.data['Vol Lag 5']=strat1.data['Vol'].shift(5)* 

好吧,让我们暂停一下,确保我们明白这里发生了什么。我们首先对日内数据进行了一些探索性的数据分析。我们的目标是使用 RSI 指标创建一个日内交易策略。我们创建了一个类,允许我们创建动量策略的实例。我们对我们战略的表现并不感到兴奋,但我们确实认识到它有一些潜力。

我们的策略目前的赢亏比不到 1。它目前赢了 48%的时间,输了 52%的时间。我们的前提是,如果我们可以消除一些亏损的交易,从而减少一些交易,我们就可以将我们的策略盈利的可能性转变为对我们有利。事实上,我们只赢了 48%的时间不是真正的问题。如果我们只进行这些交易,同时将总交易量减半,我们就有了一个完美的(理论上的)策略。换句话说,我们需要一种定量的方法来改进我们的策略,以便它可以实际用于生产。

为了实现我们的目标,我们必须能够预测何时我们的策略可能会进行可能会亏损的交易。因此,我们创建了回报方向栏来跟踪我们的交易是赢了还是输了。我们需要可以在我们的训练模型中使用的特征,这些特征可以提供一些亏损交易概率的指示。我们选择了波动性滞后和我们的 RSI,在上面的代码块中,我们添加了波动性及其滞后。请注意,我们是在“ strat1.data ”而不是“ es ”数据帧上做的。strat1.data 是我们在制作动量策略的 strat1 实例时创建的数据框架。我们简单地将在我们的类中创建的“数据”数据帧命名为 dataframe,并将我们的特征存储在其中。这样做的目的是因为我们正在优化保持我们回报的战略 1 动量策略。回想一下,我们的 es 数据框架只保存我们传递到策略中的数据。

一旦我们创建了 QDA 模型,我们可以将其预测存储在 es 数据框架的副本中,然后创建第二个动量策略实例并比较结果。我们需要稍微改变一下我们的类,这样它就可以在交易之前读取我们的预测。所以本质上,只有当我们的 QDA 模型预测交易不太可能是亏损交易时,我们的策略才会交易。

现在我们有了我们的特性,我们可以初始化我们的 X 和 y 变量,并进行我们的训练测试分割。让我们复制我们的 strat1.data 数据帧并检查它的头。

*#copying our strategy dataframe df=strat1.data.copy()* 
*#checking the head of our df dataframe df.head()* 

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

为了确保我们使用所有适当的列,让我们在 dataframe 上调用 info 方法。

*df.info()* 
*<class 'pandas.core.frame.DataFrame'> RangeIndex: 28027 entries, 0 to 28026 Data columns (total 33 columns): Date 28027 non-null object Time 28027 non-null object Open 28027 non-null float64 High 28027 non-null float64 Low 28027 non-null float64 Close 28027 non-null float64 Volume 28027 non-null int64 NumberOfTrades 28027 non-null int64 BidVolume 28027 non-null int64 AskVolume 28027 non-null int64 Delta 28027 non-null int64 Range 28027 non-null float64 RSI 28017 non-null float64 RSI_Slow 28008 non-null float64 Signal 28027 non-null float64 Return 28026 non-null float64 S_Return 28026 non-null float64 Market_Return 28026 non-null float64 Strategy_Return 28026 non-null float64 Portfolio Value 28026 non-null float64 Wins 28027 non-null int32 Losses 28027 non-null int32 Total Wins 28027 non-null int64 Total Losses 28027 non-null int64 Total Trades 28027 non-null int64 Hit Ratio 28027 non-null float64 Win Pct 28027 non-null float64 Loss Pct 28027 non-null float64 Return Direction 28027 non-null object Vol 28023 non-null float64 Vol Lag 3 28020 non-null float64 Vol Lag 4 28019 non-null float64 Vol Lag 5 28018 non-null float64 dtypes: float64(20), int32(2), int64(8), object(3) memory usage: 6.8+ MB* 

现在,我们可以清楚地看到我们所有的列。我们的 X 或特征将是我们的波动和 RSI 的滞后,我们的 y 或响应将是我们的回报方向柱。我们现在可以初始化变量了。

*#initializing features X=df[['Vol Lag 3','Vol Lag 4','Vol Lag 5', 'RSI']]* 
*#initialing our response y=df['Return Direction']* 
*#checking the head of our features X.head()* 

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

我们现在可以将数据分成训练集和测试集。我们将从 sklearn 导入训练测试分割来做这件事。

*from sklearn.model_selection import train_test_split* 

现在我们准备使用我们的训练测试分割方法。

*#initializing training and testing variables X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2)* 

既然我们已经将我们的数据分割成 80/20 的训练测试分割,我们可以初始化我们的 QDA 模型并使其适合我们的数据。

*model=QuadraticDiscriminantAnalysis()* 

在拟合训练数据之前,我们需要填充空值。

*#fitting model to our training data #and filling null values with 0 model.fit(X_train.fillna(0),y_train)* 
*QuadraticDiscriminantAnalysis(priors=None, reg_param=0.0, store_covariances=False, tol=0.0001)* 

现在我们已经拟合了我们的模型,我们可以通过传递我们的 X 测试数据来使用它进行预测。这些数据是我们的模型还没有看到的特征。然后,我们可以将我们的模型做出的预测与 y 测试数据,或者我们反应的实际值进行比较。

*#creating predictions predictions=model.predict(X_test.fillna(0))* 

现在,我们将使用混淆矩阵和分类报告来评估我们的模型表现如何。

*#initializing confusion matrix print('Confusion Matrix:') print(confusion_matrix(y_test,predictions))* 
*Confusion Matrix: [[4902 6 242] [ 2 0 0] [ 399 0 55]]* 
*#initializing classification report print('Classification Report') print(classification_report(y_test,predictions))* 
*Classification Report precision recall f1-score support Down 0.92 0.95 0.94 5150 Flat 0.00 0.00 0.00 2 Up 0.19 0.12 0.15 454 avg / total 0.86 0.88 0.87 5606* 

哇!我们的模型能够以 92%的准确率预测亏损交易。

我们现在可以将我们的预测添加回我们的 es 数据帧,然后将其传递回我们的 rsi_strategy 类,以创建一个 strat2 实例,并将我们的指标与我们的 strat1 指标进行比较。

在将我们的预测添加到我们的 es 数据框架之前,让我们重新检查一下。我们将在数据帧上调用 head 方法。

*#rechecking the head of our es data es.head()* 

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

现在让我们把我们的预测添加到我们的 es 数据框架中。

回想一下,为了构建我们的 QDA 模型,我们必须进行 80-20 列车测试划分。这意味着我们在 80%的 es 数据上训练我们的模型,并在 20%上测试它。这也意味着我们只对 20%的数据进行了预测,因此我们预测的长度与 es 数据帧的长度不匹配。

假设我们从分类报告和混淆矩阵中知道我们的模型是有效的,我们要做的是使我们的模型适合我们所有的 es 数据,这样我们就可以得到对另外 80%数据的预测,并能够将它们添加到我们的 es 数据框架中。

我们将初始化第二个预测变量,并将整个 X 传递给我们的模型。

*#initializing second predictions variable for es dataframe predictions_2=model.predict(X.fillna(0))* 

现在,我们准备将我们的预测添加到 es 数据框架中,以便将其传递到我们的 rsi_strategy 中。

*#adding our QDA model's predictions to our es dataframe es['Predictions']=predictions_2* 

好了,现在我们已经把我们的预测存储在我们的 es 数据框架中了。现在我们可以重新调整我们的策略,这样如果我们预测“下跌”,或者换句话说,如果我们的模型预测亏损,我们就不交易。让我们将这个额外的逻辑添加到我们的类中。

*class optimized_rsi(object): def __init__(self,data,n,data_name,start,end): self.data=data #the dataframe self.n=n #the moving average self.data_name=data_name #the name that will appear on plots self.start=start #the beginning date of the sample period self.end=end #the ending date of the sample period def generate_signals(self): delta=self.data[' Close'].diff() dUp,dDown=delta.copy(),delta.copy() dUp[dUp<0]=0 dDown[dDown>0]=0 RolUp=dUp.rolling(self.n).mean() RolDown=dDown.rolling(self.n).mean() #assigning indicator to the dataframe self.data['RSI']=np.where(RolDown!=0, RolUp/RolDown,1) self.data['RSI_Slow']=self.data['RSI'].rolling(self.n).mean() #creating signals; #altering the signal generator by going through our predictions #and reinitializing signals to 0 whose prediction is down self.data=self.data.assign(Signal=pd.Series(np.zeros(len(self.data))).values) self.data['QDA Signal']=np.zeros(len(self.data)) self.data.loc[self.data['RSI']<self.data['RSI_Slow'],'Signal']=1 self.data.loc[self.data['RSI']>self.data['RSI_Slow'], 'Signal']=-1 self.data['QDA Signal']=np.where(self.data['Predictions']=="Down",0,self.data['Signal']) return def plot_performance(self,allocation): #intializing a variable for initial allocation #to be used to create equity curve self.allocation=allocation #creating returns and portfolio value series self.data['Return']=np.log(self.data[' Close']/self.data[' Close'].shift(1)) #using our signal 2 column to calcuate returns instead of signal 1 column self.data['S_Return']=self.data['QDA Signal'].shift(1)*self.data['Return'] self.data['Market_Return']=self.data['Return'].expanding().sum() self.data['Strategy_Return']=self.data['S_Return'].expanding().sum() self.data['Portfolio Value']=((self.data['Strategy_Return']+1)*self.allocation) #creating metrics self.data['Wins']=np.where(self.data['S_Return'] > 0,1,0) self.data['Losses']=np.where(self.data['S_Return']<0,1,0) self.data['Total Wins']=self.data['Wins'].sum() self.data['Total Losses']=self.data['Losses'].sum() self.data['Total Trades']=self.data['Total Wins'][0]+self.data['Total Losses'][0] self.data['Hit Ratio']=round(self.data['Total Wins']/self.data['Total Losses'],2) self.data['Win Pct']=round(self.data['Total Wins']/self.data['Total Trades'],2) self.data['Loss Pct']=round(self.data['Total Losses']/self.data['Total Trades'],2) #Plotting the Performance of the RSI Strategy plt.plot(self.data['Market_Return'],color='black', label='Market Returns') plt.plot(self.data['Strategy_Return'],color='blue', label= 'Strategy Returns') plt.title('%s RSI Strategy Backtest'%(self.data_name)) plt.legend(loc=0) plt.tight_layout() plt.show() plt.plot(self.data['Portfolio Value']) plt.title('%s Portfolio Value'%(self.data_name)) plt.show()* 

既然我们已经改变了我们的信号发生器来解释我们的 QDA 模型的预测,让我们初始化我们的 strat2 对象,并将我们的性能与我们的 strat1 策略进行比较。

*#initializing our strat2 strategy strat2=optimized_rsi(es,10,'ES',es.iloc[0]['Date'],es.iloc[-1]['Date'])* 
*#generating signals strat2.generate_signals()* 

既然我们有了基于 QDA 模型预测的信号,我们可以调用 plot_performance 方法来创建我们的权益曲线,然后比较我们两个策略实施的指标。

*#plotting performance strat2.plot_performance(10000)* 

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

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

现在,我们已经创建了动量策略的第二个实例,我们可以计算我们的指标并比较我们的 strat1 策略。

*#generating metrics strat2_trades=strat2.data['Total Trades'][0] strat2_hit_ratio=strat2.data['Hit Ratio'][0] strat2_win_pct=strat2.data['Win Pct'][0] strat2_loss_pct=strat2.data['Loss Pct'][0]* 
*#printing strat2 metrics print('Strat 2 Hit Ratio:',strat2_hit_ratio) print('Strat 2 Win Percentage:',strat2_win_pct) print('Strat 2 Loss Percentage:',strat2_loss_pct) print('Strat 2 Total Trades:',strat2_trades)* 
*Strat 2 Hit Ratio: 0.97 Strat 2 Win Percentage: 0.49 Strat 2 Loss Percentage: 0.51 Strat 2 Total Trades: 1323* 

让我们回顾一下我们的战略 1 指标。

*#getting strat1 metrics strat1_trades=strat1.data['Total Trades'][0] strat1_hit_ratio=strat1.data['Hit Ratio'][0] strat1_win_pct=strat1.data['Win Pct'][0] strat1_loss_pct=strat1.data['Loss Pct'][0]* 
*#printing our strat1 metrics print('Strat 1 Hit Ratio:',strat1_hit_ratio) print('Strat 1 Win Percentage:',strat1_win_pct) print('Strat 1 Loss Percentage:',strat1_loss_pct) print('Strat 1 Total Trades:',strat1_trades)* 
*Strat 1 Hit Ratio: 0.93 Strat 1 Win Percentage: 0.48 Strat 1 Loss Percentage: 0.52 Strat 1 Total Trades: 22431* 

好吧,有趣的事情发生了。回想一下,我之前说过,我们只赢了 48%的概率并不是问题,问题是转移概率,限制我们的亏损交易。这就是我们建立 QDA 模型的原因,这样我们就可以很有把握地预测什么时候我们可能会进行亏损的交易。

请注意,我们的指标略有变化。

  • 我们的 strat2 命中率确实有所提高,从 strat1 的. 93 提高到了. 97。
  • 我们的战略 2 的盈利百分比从战略 1 的 0.48 增加到了 0.49,这也相当于战略 2 的亏损百分比为 0.51,战略 1 的亏损百分比为 0.52。

注意我们交易数量的显著差异。与我们的 strat2 实例相比,我们在 strat1 实例中进行了更多的交易。

这直接影响到我们的策略成功生产的可能性。我们使用 QDA 模型有效地消除了许多对我们的策略构成问题的交易。另外,看看我们的 strat1 和 strat2 实例的权益曲线。

  • 我们的 strat1 实例结束时的投资组合价值约为 9600。
  • 我们的 strat2 实例在期末的投资组合价值为 10,200 英镑,这低于它的启动阶段,但仍然是对 strat1 实例的重大改进。

考虑到我们的盈利和亏损百分比的微小变化,这是很重要的,并表明还有其他因素在交易策略的盈利能力中发挥着重要作用。如果你仔细观察这一时期的末期,你可以看到我们的 QDA 模型的真实效果。在我们的 strat1 实例中,接近期末时,我们只是直线抛售。但是看一下我们在同一时间段的 strat2 实例,我们实际上显著改进了我们的交易。

当然,相对于这一策略,在我们所学的基础上还可以做更多的事情。但是,这个实验已经证明,这里提出的框架是一个可行的优化日内交易策略。不可否认,这篇文章中提出的策略被设计成有缺陷,以测试使用 QDA 进行优化的想法。换句话说,我并没有试图优化这个策略,只是想要一个显示出一些潜力的策略,就像你现在正在做的一样。所以想象一下,你可以用这个框架和一个你实际上正在尝试投入生产的策略做些什么。

回顾

我们在这篇文章中已经介绍了很多,希望你能从中获得一些有助于你制定战略的见解。

我们首先了解了什么是 QDA,并研究了模型背后的一些数学原理。我们回顾了之前在 LDA 上的 帖子中所学到的内容,并与 QDA 的帖子进行了比较。我们导入了一些 eMini S & P 500 的日内数据,目的是创建一个日内动量策略,并使用 QDA 来改进我们的策略。在构建我们的策略之前,我们做了一些探索性的数据分析,以更多地了解我们的数据集。

我们使用面向对象编程来设计我们的 RSI 策略,这种方式允许我们重用我们的代码并创建多个策略实例。在创建了我们的第一个策略实例之后,我们发现我们的策略还没有准备好投入生产,但是显示出了一些潜在的迹象。然后,我们的目标是建立一个 QDA 模型来预测我们可能在什么时候进行亏损交易,以努力将我们的策略转化为对我们有利的策略。

我们在数据中增加了一个分类栏“回报方向”,并设计了波动率的特征“滞后 3”、“滞后 4”、“滞后 5 ”,以及用于 QDA 模型的相对强弱指数。我们的 QDA 模型显示,预测亏损交易的准确率为 92%。然后,我们将预测应用到数据中,并创建了一个 strat2 实例。虽然我们的盈利和亏损百分比变化不大,但我们的回报增加了 600 美,而且我们的 strat2 实例,与我们的 strat1 实例不同,实际上是正的。

我们的研究表明,我们的日间机器学习优化框架对于增加我们的策略投入生产的可能性是可行的。我们还可以做更多的事情来改进这一策略,但我们已经传达了总体想法。

挑战:在 Twitter 上给我们发一张你的股票曲线快照

*See if you can further build upon the framework presented in this post. Play with the code to see how you might improve this model. Be sure to download the data used in this post via the CSV file below.As a bonus, review the post "Using Linear Discriminant Analysis For Quantitative Portfolio Management" and see if you can incorporate that framework into what was covered in this post.*We’d love to see what you create. Tweet us a snapshot of your strategy’s equity curve at @QuantInsti on Twitter. Be sure and use the hashtag #QDA.

接下来的步骤

*If you’re interested in learning more about Machine Learning for Trading, Quantinsti offers both a self-paced option, via our Quantra Online Learning Portal, and a comprehensive quantitative trading regimen, the Executive Program in Algorithmic Trading (EPAT).The EPAT program is administered over the course of 6months and covers topics such as Statistics and Econometrics, Quantitative Trading Strategies, Programming in Python and R, as well as Machine Learning. The faculty of the program are current quants with different backgrounds and thus ensures participants that the content will be relevant to the current market and industry environment. If you would like to learn more you may visit us here.*If you prefer to learn on your own time and at your own pace, Quantra is a good learning option for you. Through Quantra you’ll can lifetime access to courses such as Introduction to Machine Learning for Trading, Trading with Machine Learning: Classification and SVM, and more. To learn more you can visit us here.

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

下载数据文件

  • 数据 CSV 文件

算法交易行业最优秀的人应该具备的 5 个品质

原文:https://blog.quantinsti.com/qualities-best-people-algorithmic-trading/

由查尼卡·塔卡

算法交易行业充满了坚定、上进和热情的人。除了这些性格特征,算法交易行业最优秀的人还有以下 5 种品质:

  1. 优秀的观察者和倾听者
  2. 现实主义
  3. 乐观但有自知之明
  4. [勇敢而执着](#courageous and persistent)
  5. [终身学习者](#lifelong learner)

优秀的观察者和倾听者

在算法交易行业,最成功的是那些对金融市场哪怕是最微小的变化都保持警惕的人。在专注的态度和观察技巧的帮助下,交易者能够加强他们的交易策略。因此,交易者能够更好地最大化他们的回报。金融市场受到经济中发生的微小细节的影响。世界政治,经济趋势,甚至天气都有改变市场趋势的力量。通过了解金融市场过去和现在的情况,交易者为面对未来的波动做好了最好的准备(因为计划内和计划外的情况)。


现实主义者

作为一个算法交易者,你需要成为一个现实主义者,这样你才不会做出错误的决定。例如,在上涨趋势下兴奋地过度交易,害怕错过赚更多钱的机会,或者对过去损失资金的内疚。

下面,你可以看到一个过度自信和过度交易的例子:

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

来源:雅虎!

在上图中,可以清楚地看到交易者从一只股票跳到另一只股票的速度太快了。由于不稳定,改变交易想法不仅风险太大,还会导致大量交易成本和佣金支出。在算法交易中,交易者的情绪会导致这种高风险的策略产生。因此,成为一个现实主义者是极其重要的。


乐观但有自我意识

交易时,过度自信有风险,乐观和自我意识才是真正的宝石。一个成功的算法交易者保持平衡的情绪,对下一步保持积极的态度。交易时,算法交易者承担计算好的风险,并相信他/她有能力在适当的回溯测试后制定交易策略。

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

你可以从上图中看到,通过保持平衡乐观的方法,成功的算法交易者总是明智的。有点幽默的是,这张图片显示了专业交易者的宠物知道如何评估风险和回报,并且相信自己的决定!

虽然承担合理的风险非常重要,但当市场走势与预期相反时,通常会出现对风险的识别、评估和缓解的需求。因此,在对市场进行彻底分析的基础上,在预测所有风险之后,设定你的预期是非常重要的。

让我们看一下这张表,它是一个例子,说明承担计算好的风险是多么重要,因为每多损失 5%,你需要弥补损失的收益百分比就会增加。这仅仅意味着损失越大,就越难恢复:

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

来源:培养基

在这里,投资组合优化是一个重要的过程,涉及分析不同投资比例的投资组合。这个优化过程是通过计算每个投资组合的风险和回报,并选择实现预期风险回报的投资组合来完成的。

推荐阅读:

投资组合&风险管理


勇敢而执着

算法交易者总是愿意承担计算好的风险,并且有足够的勇气去做决定。坚持的态度是算法交易者的另一个最好的朋友,因为它帮助交易者在真实市场中学习。虽然纸上交易开始时要好得多,但交易者学会了在现实市场中交易的实际方法。

这也意味着人们应该避免在金融市场预期表现不佳时做出交易决定。算法交易者不会因为做决定而内疚或害怕,会坚持不懈。

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

来源:股市行情


终身学习者

不断地研究一个想法,并改进它,最终使它发挥作用,这是在任何领域取得成功的关键。作为算法交易者,你必须尽可能多地学习算法交易。有一些免费资源可以让学习继续下去,还有一些关于算法交易的必备书籍(免费和付费)。


上面提到的是算法交易者的 5 个品质,下面你可以看到算法交易者保持的其他一些关键的性格特征或纪律:

  • 他们不断研究金融市场以获得最佳经验
  • 他们至少知道一种编程语言
  • 他们有定量技能
  • 他们获得数据管理能力

他们不断跟踪金融市场,以获得最佳经验

金融市场是交易发生的各种平台。

  • 交易所——是交易所平稳地运行着购买、出售和交易工具的整个过程
  • 监管当局——监管委员会或机构是监管交易所活动的当局。与证券市场相关的监管机构包括:
  • 美国证券交易委员会(SEC) -监管美国证券交易所/市场
  • 印度证券交易委员会(SEBI) -监管印度证券交易所/市场
  • 分析-分析有三种类型,目标是找出特定证券的正确价值。这些是基本的、技术的和定量的分析。

基本面分析包括现金流、盈利能力、资产负债表规模等因素。

技术分析使用图表软件来可视化价格模式、交易量和运动。

定量分析包括通过数学和统计模型对金融事件的研究。使用统计技术识别交易机会。

  • 交易量——交易量是某一特定时期内某一证券交易的股票或合约总数。而平均交易量是每单位时间的交易量。一只股票的交易量越大,它在市场上的流动性就越高。
  • OHLC——是开盘、盘高、盘低和收盘(OHLC)的缩写。它指的是股票价格的数据集,其中每个数据点有四个价格。例如,有一个特定股票从 2019 年到 2020 年的每日价格数据集,每个数据点(每天)将有四个价格,分别指开盘价、最高价、最低价和收盘价。
  • 趋势-趋势是基于证券价格的市场运动方向。如果价格向上移动,这就是所谓的上升趋势,反之,如果价格向下移动,这就是下降趋势。
  • 订单——订单是投资者向经纪人或经纪公司发出的或直接在交易场所买卖股票、债券或衍生品等证券的指令。可以通过电话或在线手动/通过算法下订单。
  • 价差——在金融学中,价差可以定义为任意两个价格之间的差异。它也被定义为给定证券的当前出价和当前要价之间的差额(买卖价差)。
  • 流动性——流动性是指资产转换为现金而不会在很大程度上影响市场上当前资产价格的能力和难易程度。市场流动性是指市场允许股票、债券或衍生产品等资产在无需支付巨大买卖差价的情况下进行买卖的程度。与其他资产相比,现金是流动性最强的资产。

你应该如何跟随股市?

为了跟踪股票市场的表现,最好的网站是谷歌和经济时报市场。你也可以在经济时报市场的帮助下学习如何跟踪股市。


他们至少精通一门编程语言

虽然有很多编程语言,但算法交易中最优秀的人至少熟悉其中一种。如果你的目标是在算法交易领域获得风险经理或投资/资产经理的职位,那么可以跳过编程,这是不正确的想法。编程语言在算法交易领域非常重要,因为你需要从验证策略假设到回溯测试和执行策略的编程技能。

流行编程语言

你可以学习很多计算机编程语言。然而有一些流行的语言是:Python、C、C++、Java 和 HTML。学习任何一种流行的编程语言都有助于算法交易。

学习编程语言的方法

学习编程语言的最好方法是通过在线课程。网上有各种各样的课程,你可以找到最适合你知识水平的课程。

推荐课程:

  • Python for Trading:基础(免费课程)
  • 用于交易的 Python!(付费课程)

众所周知,Python 是程序员/开发者开发交易策略的首选语言,因为它提供了以下优势:

  • Python 有一些用于机器学习和数据科学的 API 和库,与其他语言相比,这些 API 和库使得分析更加流畅。
  • 它帮助交易者快速简单地编码,以图形的形式导入数据和可视化数据。
  • 大多数量化交易者更喜欢 Python,因为它可以帮助他们建立自己的数据连接器、执行机制、回溯测试、风险和订单管理、前向分析和优化测试模块。
  • Python 交易库的首次更新在开发人员社区中经常出现。

他们有定量技能

什么是量化技能?

定量技能包括统计学知识、数学模型和统计研究方法。此外,你的定量技能使你能够有效地找到合适的模型来定义随机性,计算资产价格的变动,并检查市场数据的统计特性等。

如何习得这些命令式量化技能?

为了获得定量技能,有一些简短的在线课程是自定进度和互动的。此外,你可以选择一些知名平台提供的你想学习的具体方面。

在算法交易行业,你需要所有工作角色的量化技能。算法交易中的工作角色包括量化分析师量化开发员风险分析师等。通过掌握量化技能,你可以在算法交易领域的每一个工作角色中脱颖而出。Quantra 提供的一些课程有:

用机器学习进行交易:回归

本课程非常适合使用机器学习算法创建您的第一个交易策略。循序渐进地学习:获取数据,预处理数据,训练和测试机器学习回归模型,预测股票价格。提供实际操作的编码帮助。

用机器学习进行交易:分类和 SVM(支持向量机)

学习在金融市场数据上使用 SVM,并创建自己的预测算法。课程涵盖分类算法、机器学习中的性能测量、超参数调整和监督分类器的构建。

神经网络交易

本课程强烈推荐程序员和 quants 在金融市场实现神经网络和深度学习。由欧内斯特陈博士提供,学习使用先进的技术,如 LSTM,RNN 在现场交易。

交易中的决策树

通过这门课程,你将学会使用人工智能技术预测市场和寻找交易机会。此外,你将能够训练算法通过数百个技术指标来决定哪个指标在预测正确的市场趋势方面表现最好。进一步,优化这些 AI 模型,学习如何在实盘交易中使用。

执行方案

有了高管课程,你可以从各种专业人士、行业中坚分子那里学到行业的实际方面。

其中一个项目是算法交易管理项目( EPAT ),这是一个为期 6 个月的综合虚拟课堂项目,涵盖了算法交易的基本模块,例如:

  • 市场微观结构
  • 金融工具
  • 统计数字
  • 数据分析
  • 证券管理
  • Python/Matlab/Excel 编码基础
  • 机器学习的使用
  • 交易、技术、基础设施和运营
  • 实时交易策略构建

该课程通过专注于衍生品、量化交易、电子做市或交易相关技术和风险管理,激励传统交易者走向成功的算法交易生涯。


他们获得数据管理能力

什么是数据管理?

数据管理通常是为了清理直接从源中提取的原始数据,这些数据可能包含多个问题,如重复、非平稳性等。干净和可用的数据是指在交易中随时可用于各种目的的数据,例如回测、分析和预测交易等。数据管理并没有就此结束,它需要确保数据中没有进一步的错误,它是容易访问和可靠的。

数据管理是怎么做的?

数据管理通常由算法交易行业的数据工程师来完成。数据工程师有三种类型:

  • 多面手-他们完成创建数据管道的全部工作,例如从数据源检索数据,对其进行处理并进行最终分析。这一过程占用了数据科学家的全部技能,并且是没有太多专业人员的小公司或团队所需要的。
  • 以管道为中心——中型公司需要它们,这些公司有复杂的数据需求,需要数据团队进行大量需要分布式系统和计算机科学背景的工作。
  • 以数据库为中心——它们通常出现在大型公司中,数据分布在各个数据库中。这些公司中有各种数据分析师,数据工程师需要将信息从数据库的主应用程序中提取到分析数据库中。

结论

尽管算法交易行业最优秀的人不断用先进的知识和专业技能让自己变得更好,这些品质将有助于你的职业发展…这将有助于你在算法交易行业获得最好的工作角色和职位。

希望你喜欢这篇文章,它很好地服务于它的目的!我们想知道你对此的想法,请在下面分享你的评论。

你也可以通过算法交易(EPAT) 的高管课程来开始你升级算法交易知识的探索——这是一门综合课程,涵盖的主题从统计学&计量经济学到金融计算&技术,包括机器学习等等。立即注册!


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

使用 QuantInsti 构建 SGX -印度股票和货币衍生品的量化策略技术

原文:https://blog.quantinsti.com/quant-strategy-building-techniques-for-sgx-india-equity-currency-derivatives-with-quantinsti/


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


日期:2020 年 10 月 22 日星期四美国东部时间早上 6:30-7:30


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


专业量化策略开发框架的演练,以及构思、设计和回溯测试股票和货币衍生品市场端到端策略的实践方法。

了解量化交易中的最佳风险管理实践。如果你想开始你的量化交易或者给你的策略发展过程添加一个框架,这个研讨会对你来说是完美的。


演讲人:AVP 伊山沙阿,内容&在 QuantInsti 调研


主办新加坡交易所


QuantInsti 提供 EPAT 课程,该课程被广泛认为是印度、新加坡和全球最好的交易课程之一。联系课程顾问以了解更多相关信息。

什么会影响量化策略?[小组讨论]

原文:https://blog.quantinsti.com/quant-strategy-panel-discussion-24-september-2020/


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


本次网络研讨会已经结束。

2020 年 9 月 24 日星期四

东部时间上午 8:30 | IST 时间下午 6:00 |新加坡时间晚上 8:30


10 岁生日

正如人们所说,知识是人生最大的礼物。在庆祝我们成立 10 周年之际,我们策划了这个系列来感谢我们的社区。我们从心底里感谢你,感谢你多年来在我们的旅途中给予我们的爱和支持!


关于会议

与老派交易者/投资者的自由选择相比,量化交易表面上是基于更客观的标准。它们在系统上比传统的更好吗?我们如何评估何时部署一个策略,何时该放弃它?本次活动中,我们的小组成员将详细讨论其中的一些问题,并为评估量化策略的有效性提供有价值的见解。


面板

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

Vivek Krishnamoorthy

(内容负责人&QuantInsti 研究)

Vivek 领导 QuantInsti 的内容和研究部门。他曾在新加坡和印度的 ICICI 银行担任企业和机构银行信贷分析师。Vivek 还在加拿大麦克马斯特大学为本科生和研究生教授经济学和金融学课程。

他曾在瑞士瑞信银行 Larsen & Toubro 公司和其他机构为中高层管理人员举办过多次公司金融、金融建模和投资组合理论方面的培训。Vivek 在金融和学术界的丰富专业经验使他成为市场微观结构、量化金融编程和量化交易中使用的统计技术的熟练讲师。

尼古拉斯·拉伯纳

(创始人& CEO FactorResearch)

尼古拉斯·拉伯纳是 FactorResearch 的创始人兼首席执行官。此前,他创建了屡获殊荣的量化对冲基金 Jackdaw Capital,并在伦敦和纽约的 GIC(新加坡政府投资公司)和花旗集团工作。

Nicolas 拥有 HHL 莱比锡管理研究生院的金融硕士学位,是 CAIA 特许持有人,喜欢耐力运动(100 公里超级马拉松)。

Laurent Bernut

(创始人& CEO ASC)

Laurent Bernut 曾在 Fidelity Investments、Rockhampton 和 Ward Ferry 的另类投资领域工作。在富达,他作为专职卖空者的使命是跑输现代史上持续时间最长的熊市:日本股市。

劳伦特在另类空间创造阿尔法的研究是建立在他对普遍测试的系统交易过程的专业知识之上的。

Radovan 的贴身男仆

(量子百科首席执行官)

拉多万·沃伊特科是 Quantpedia 的首席执行官兼研究主管。他是前量化投资组合经理,在五年多的时间里管理了数只量化基金的 3 亿多欧。这些基金专注于多资产管理期货和趋势跟踪策略、市场时机和波动性交易。


在能源行业工作了 25 年后,学会了定量交易的方法——马克·伦德尔

原文:https://blog.quantinsti.com/quant-trading-25-years-energy-industry-mark/

对于一个有 30 多年工作经验的人来说,Mark Rendle 仍然有学习新事物的热情,并继续学习和成长。我们带来了他的故事。

以下是我们与马克的对话:

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

嗨,马克!你能给我们介绍一下你自己吗?

早上好,我是马克·伦德尔。我是英国/加拿大人,目前住在美国,为一家大型能源公司工作。

工作之外,我喜欢和家人在一起,我们喜欢旅游和山地运动,比如滑雪、滑板和骑自行车。我对市场交易也很感兴趣,并且非常享受这个复杂多变的舞台所带来的智力挑战。

我主要使用算法,因为它们可以对交易策略进行更明确的评估,减轻交易管理的机械负担。

你能告诉我们你的教育旅程标志吗?

那是一个有趣的问题。至少在最初,我采取了一条有些迂回的路线。我 16 岁离开学校,与一家化学品油轮运输公司签约,做了 4 年的海洋工程学徒,之后我又在游轮上做了 4 年工程师。

在这次不可思议的经历之后,我决定(在英国)攻读机械工程学位。此后,我在一家能源公司找到了一份工作,至今仍在这家公司工作。我也有 MBA 学位,现在正在考虑攻读定量金融学硕士学位。

这不是传统的方法,但事后看来,它提供了一个不可思议的基础。

25 年以上的石油工作经验&能源!了解一下你的旅程会很棒。

我有幸在世界各地工作,到处旅行,与令人难以置信的人一起工作,并受到有趣机会的挑战。我最喜欢的地方是北极,那是一个非常特别的地方。我的贡献通常集中在项目的早期阶段,在那里我们评估投资潜力。

你一直在交易自己。你能分享一下你的经历吗?

我在上世纪 90 年代末来到美国,当时市场正处于令人难以置信的牛市,每个人都在谈论市场,交易自己的账户——所以很难不被卷入其中。

我开了一个交易账户,投资了一些我卖房子赚来的钱。我的账户规模增长很快,我觉得我有市场诀窍(和其他人一样)。然后在 2000 年 3 月,市场剧烈波动,我的账户规模迅速逆转。我意识到我没有完全理解市场动态,我没有优势,我不能管理风险,我还有很多要学。

交易在财务上是危险的,需要你做好充分的准备。所以,在 2003 年,我开了一个贸易站账户,开始写代码。这让我能够测试想法,开发策略,并证明它们在市场周期中是稳健可行的。

这就是开始,从那时起,我就把 algo 交易作为一种爱好。

人们对创建自己的算法的想法并不完全开放。你对此有什么看法?

我认为有几个方面。

不要抱有幻想,长期成功交易是非常困难的,这就是为什么 80%的职业基金经理不能战胜市场指数的原因。想想看——80%的人把他们的教育和职业生涯都献给了专业的市场交易,如果他们购买了指数基金,他们会得到更好的服务。

复杂性:学习如何编码,然后部署该代码来自动交易市场是复杂的,需要付出巨大的努力来确保它按照预期执行并提供预期的优势。发展做好这项工作的技能和能力是一项重要的任务。

竞争:如果我们考虑对冲基金和其他投资公司,它们吸引了大量才华横溢的智力人才。正是这些人经常在我们的交易中采取相反的做法——我们真的认为我们能比他们更聪明吗?

计算能力:鉴于上述情况,要取得成功需要难以置信的承诺和奉献。然而,人们不得不担心,算法交易和计算机能力的快速扩张将永久改变市场动态,消除机会的存在,或者至少使机会更难找到。

时间是一种有限的资源,所以这些是我在决定投资时间于市场还是其他我喜欢的东西时考虑的一些背景问题/想法。

也就是说,如果你真的想交易,即使是作为全权交易者,你也需要一套算法——一套明确规定如何管理头寸的规则。如果没有,那么就没有办法论证一个边的存在。

此外,自动化算法将确保你交易的一致性,避免有时困扰自主交易者的纪律崩溃,并把你的时间花在制定成功的策略上,而不是手动执行交易。

学习在几岁停止?

学习应该是一生的事业,没有理由停止——在任何年龄。

学习 Python 是一件有趣的事情,既令人沮丧又收获颇丰。最初,什么都不工作,错误代码毫无意义,它是一个黑洞,消耗你的空闲时间(沮丧),然后逐渐地它开始凝聚,你用 Python 思考并执行复杂的代码(回报)。

对我来说,这很有见地,强调了坚持不懈和专注于目标的必要性。

你对技术有什么看法,你会如何描述你的交易风格?

利用技术是交易的一个非常有趣的方面。

远程服务器之间支持复杂数学分析和订单生成的实时数据传输非常强大。编写代码来实现这一点是非常值得的。

我的交易方法结合了基本面和技术面的素。

我会交易一个由多头和空头候选人组成的大型投资组合(以平滑业绩),然后在投资组合中交易一些策略。

你是如何与 QuantInsti 建立联系的?

真的是偶然。如上所述,我使用 Tradestation,这是一个很好的算法交易平台,但是,它只提供对美国证券的访问,如果你想管理一个更加国际化的投资组合,这是一个限制。因此,我开始寻找一种方法,通过提供国际访问的交互式经纪人来部署我的贸易站算法。

最初,我只是想找一门关于 Python 的课程,但无意中发现了 QuantInsti 在 EPAT 开设的课程,并发现该课程非常吸引人。我的想法是“如果我要与对冲基金竞争,那么我需要很好地了解这些材料”。所以,我很快就报名了。

QuantInsti 建立了一个后 EPAT 学习和联系校友的社区,这很好。我当然对利用这种资源感兴趣。

就交易而言,你的下一步是什么?

我现在正在完成代码,以通过交互式经纪人平台实施我的策略,并执行一些非常复杂的投资组合分析,所以这是第一步。

然后,我将重温在 EPAT 期间教授的许多概念,并将可行的特征整合到我当前的策略中。此后,我们将看到这一旅程如何继续。

你愿意为那些想进入算法交易的人分享一些东西吗?

正如我前面提到的,如果你的目标只是赚钱,而你并没有完全被市场吸引,那么你最好买一只指数基金(比如蜘蛛)。为自己节省时间、金钱和挫折,做一些对你更有意义的事情。

然而,如果你对市场充满热情,那么算法交易有可能加速你的学习,更清楚地展示你的优势,完善你的执行。对我个人来说,这是一项非常有益的终身事业。

你在 EPAT 的学习经历如何?

EPAT 项目是一次难以置信的学习经历。课程高度相关,讲座和相关材料非常出色,支持一流,在线学习环境非常有效。

这个课程虽然不便宜,但却体现了令人难以置信的物有所值,任何认真对待自身发展的交易者都会从 EPAT 的课程中受益。我要感谢 QuantInsti,并亲自感谢所有相关人员的出色工作。谢谢大家!


非常感谢你抽出时间,马克!和你谈话是我的荣幸。我们祝你在交易生涯中取得更大的成功,学到更多知识,拥有一个美好的旅程。我们非常感谢你对 EPAT 和 Quantinsti 的赞誉。

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

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

定量交易策略——基本面分析和定量分析

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

作者:安基特·阿胡佳

在这篇博客中,我们将制定一个交易策略,其中我们将对这些公司的基本面数据进行定量分析,并创建一个基本面强劲的公司的投资组合,并分析该投资组合的表现。

本博客涵盖的主题:

  1. 什么是基本面分析?
  2. 什么是定量分析?
  3. 为什么要利用基本面数据制定交易策略?
  4. 如何制定量化策略?
  5. 回测结果
  6. 对比纳斯达克的策略绩效

什么是基本面分析?

在会计和金融中,基本面分析被定义为对公司财务报表的分析,即资产负债表、损益表和现金流量表。

这种分析背后的动机是指出债务和其他可能导致公司垮台的危险信号。这种分析有助于判断公司未来几年/几个季度的整体表现和健康状况。

该分析使用各种财务比率,例如:

价格收益比(市盈率)

市盈率的计算方法是将股票价格除以每股收益。该比率用于了解公司相对于同行或市场的估值。

市净率

该比率的计算方法是将股票价格除以权益的账面价值,或者换句话说,股票价格除以其账面价值。这个比例特别有助于判断公司的价值,是低估还是高估。

企业价值与销售额比率(EV/销售额比率)

该比率的计算方法是将企业价值除以公司的销售额或收入。这个特定的比率有助于根据销售额来评估一家公司的价值,同时考虑债务和权益。

债务权益比率

债务权益比率或杠杆比率是一个特别有助于分析公司债务水平的比率。无论公司是否过度举债。换句话说,公司有多少资金是由债权人和银行提供的。

净债务对 EBITDA 比率

这个比率也就是杠杆率,用来计算公司的杠杆率。它描述了公司偿还债务的能力,或者我们可以说,一个公司必须在多长时间内管理其当前的运营以偿还其当前的债务。通常要求较低的价值,因为它显示了公司产生现金和支付债务的能力。

债务与资产比率

资产负债率是通过将债务除以公司的总资产来计算的,这个比率用来了解公司有多少资产是由债权人提供的。较低的比率表明公司能够为未来可能出现的新机会自筹资金。

基本面分析也被用来计算公司的内在价值。这有助于投资者和交易者识别低估或高估的公司。所以,他们可以据此做出决定。


什么是定量分析?

当各种统计技术和其他数学模型被用于执行某种分析或过滤时,这种分析被称为定量分析。它可以用来识别满足特定条件的股票。这些条件可以是一些数学等式或过滤器。

最终目标是将可用的信息量化成数值,以便于决策。在这种分析中,人们使用各种财务比率,并将它们输入到一个模型中,该模型具有预先定义的步骤,利用统计技术或数学公式,并给出期望的输出。


为什么要用基本面数据做交易策略?

纳斯达克跟踪了各行业的 3300 多只股票。但这里的问题是:

投资哪里,如何挑选表现最好的股票和好公司?

根据 Fama 和法国教授撰写的一篇关于要素投资的论文,我们知道,从长期来看,价值公司的表现比其他公司更稳定。但与此同时,一个问题也出现在公司的基本实力上。

公司是基本面强大,相对被低估还是因为基本面薄弱而被低估?

所以问题是,

难道不能考虑以上两种说法,制定一个策略吗?

这种策略能够让我们看到一系列公司,与前几个季度相比表现更好,但与同行相比也相对被低估。

正如我们所知,在新冠肺炎疫情事件后,一些公司在没有任何进一步通知的情况下,一夜之间就停止了运作。因此,我们需要选择有大量基本面支持的公司,如现金储备和强劲的利润率,以应对市场的这种起伏。


如何制定量化策略?

该配方分为两部分:

  • 对照同行评估一家公司。
  • 用自己评价公司过去的业绩。

对照同行对公司的评估

  1. 纳斯达克 14 大科技股是由市值选出的。
  2. 下面列出的比率用于评估公司与其他公司的对比。
  • 市盈率(P/E 比率)。
  • 市净率。
  • 企业价值与销售额比率(EV/销售额比率)。
  • 债务权益比率(D/E 比率)。
  • 净债务与 EBITDA 比率。
  • 债务与资产比率。

为了得出公司的价值因素,我们取这些比率的倒数。

在取这些比率的倒数后,我们将取这些比率的 Z 值。Z 分数背后的基本原理是使比率正常化并消除任何偏差,然后将使用评分算法来计算公司的最终分数。

分数越高,相对于它的同辈,它就越被低估。

评分算法:编写了惩罚算法,参考了“ S & P 值 bse 因子指标论文”,其中如果 Z 值大于 0。然后在分数上加 1,当分数为 0 时,用 1 代替。在小于 1 的地方,罚函数是 1/(1-z)。

我们使用了基本面分析包的函数“key_metrics ”,因为它也返回前一年的比率。列出的代码片段显示了比率的检索。

注意:你必须通过访问金融建模准备网站获得你自己的免费 api 密匙。

量化新闻分析:盈利能力与陷阱

原文:https://blog.quantinsti.com/quantified-news-analytics-profitability-pitfalls/

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

随着新闻来源和数量的增加,收集、提取、汇总和分类的技术也在发展。重要的新闻会带来巨大的正面或负面回报。然而,由于许多新闻来源,我们需要问一个基本问题:新闻分析是在每种情况下都有利可图,还是有一些陷阱需要避免?

新闻分析中的信息流

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

来源:新闻分析在金融中的应用:回顾,OptiRisk Systems

定量新闻分析的盈利途径

小型公司
  • 与中型或大型股相比,小型股对新闻情绪的反应更为强烈。
  • 大盘股吸引了更多分析师的关注,媒体也给予了大量报道。
  • 小盘股仍然难以捉摸,因此有关它们的消息会对市场情绪产生更大影响
贝塔系数低的股票
  • beta 的股票在大盘指数变动时波动不大。
  • 由于波动性较低,受市场影响较小,它们对情绪波动非常敏感
低 VIX
  • VIX 作为一个动态指标,反映了市场的波动或“恐惧”。
  • 当市场相对被动,VIX 较低时,突发事件会刺激情绪指标。
  • 在波动性更大的市场中,人们对正面消息的反应不那么强烈,而对负面消息的反应更强烈。
软新闻对硬新闻
  • 与基于事实的硬新闻相比,基于观点的软新闻的短期反应要弱得多。
  • 负面新闻有能力使股票价格暴跌。

量化新闻分析的陷阱

双重否定
  • 如果标题和正文有双重否定,新闻分析有时会失败。
  • 例如,2012 年奥萨马·本·拉登被击毙时,新闻机器人将此视为负面消息,并抛售股票
  • “本拉登”和“被击毙”双重负面消息的出现引发了交易信号
陈旧的新闻
  • 关于一个事件或一家公司的陈旧新闻会触发情绪指标。
  • 例如,2002 年一则关于联合航空公司破产的旧新闻,被谷歌 2008 搜索到
  • 这导致投资者的财富大规模消失,因为联合航空的股票立即暴跌。
恶作剧/假新闻
  • 一般来说,基于新闻的交易者依赖可信的新闻机构。
  • 然而,在帐户被黑的情况下,新闻可能被证明是假的。
  • 例如,美联社(AFP)的推特账户在 2013 年遭到黑客攻击,并在推特上发布了白宫发生爆炸的虚假消息。立刻,
  • 道琼斯指数下跌 0.8%,随后反弹。

信息图表

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

后续步骤

如果你有兴趣了解更多关于量化新闻分析如何工作以及如何基于此设计交易策略的信息,请看这个网络研讨会。此外,看看我们的旗舰课程“算法交易高管课程”,接受培训,开始自己的算法交易。

QuantCon 2017:亚洲的算法交易机会

原文:https://blog.quantinsti.com/quantinsti-at-quantcon-2017/

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

QuantCon 2017 由 Quantopian 主办,于 4 月 28 日至 30 日在纽约市举行。会议的特色是专家研讨会和讲座,讨论如何克服算法交易、量化金融和机器学习的障碍。

QuantCon 的 Rajib Ranjan Borah

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

我们的主任 Rajib 是 QuantCon 大会上众多著名演讲者之一。他谈到了亚洲的算法交易机会-法规,技术,竞争格局,机会。

美国的高频和算法交易市场竞争非常激烈。明白了这一点后,Rajib 解释道,对于那些已经积累了专业知识的公司来说,关注亚洲的新兴市场已经变得越来越谨慎。在亚洲使用类似的努力和专业知识可能会产生更高的利润,并为一些新市场提供先发优势。

然而,这条道路充满了独特的障碍,对挑战和可能性的内在洞察力是至关重要的。QuantCon 上的这次演讲有望消除一些困惑,并为算法交易业务在亚洲的扩展提供更多的线索。

总之,对于 QuantInsti 来说,这确实是一个与 QuantCon 合作并为算法交易、量化金融和机器学习领域做出贡献的绝佳机会。

下面是我们图库中 QuantCon 演讲者的照片:

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

QuantInsti 是 2015 年 Finbridge Expo 的知识合作伙伴

原文:https://blog.quantinsti.com/quantinsti-finbridge-expo-2015/

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

金融服务和技术展 FINBRIDGE 于 2015 年 3 月 14-15 日在孟买的孟买展览中心举行。

日期-2015 年 3 月 14 日-15 日

地点- 孟买展览中心- NESCO,Goregaon(东部),孟买-

事件概述

在这个为期两天的大型活动中,展示了电子交易、风险管理、后台办公、银行和其他金融市场解决方案的全部技术,包括股票经纪、商品交易、高频交易软件(算法交易)。

QuantInsti 被邀请成为其知识合作伙伴,并为与会者举办关于算法和高频交易的各种主题的研讨会,以便他们可以获得关于自动化交易如何帮助他们的业务的信息。有了这个工作坊,更多的实物交易者现在有了使用算法进行交易的知识。

算法交易工作坊 节目

  1. 算法交易中的技术优势-提高交易利润的工具和创新-same er KumarTime:15.25-16.05,2015 年 3 月 14 日
  2. 量化交易策略的盈利能力分析和资金管理- Shaurya Chandra 时间:2015 年 3 月 14 日 16:15–17.00
  3. 下一代交易策略:通过量化新闻进行自动化情绪分析- Rajib Ranjan Borah 时间:2015 年 3 月 15 日 15:00 - 15:45
  4. 利用大数据(使用开源工具)设计量化交易策略-实践演示-Anil YadavTime:2015 年 3 月 15 日 15:20 - 16:05

关于演讲者

  • Sameer Kumar: 伊拉克资本&总监(基础设施开发)——QuantInsti
  • Shaurya Chandra: 联合创始人兼董事- iRageCapital &联合创始人 QuantInsti
  • Rajib Ranjan Borah: 联合创始人兼董事- iRageCapital & QuantInsti
  • Anil Yadav: 负责人(交易策略绩效改进)&总监 QuantInsti

自动交易会议

要点
  1. 如何实现更低的延迟和连接
  2. 如何领先市场监管一步
  3. 如何跟上新的趋势和技术
  4. 如何提高执行力、风险控制程序和合规性
  5. 如何使用自动化策略来利用期货、期权、外汇和股票市场
  6. 围绕算法、自动化交易、高频交易的使用,以及买方关注的问题有哪些。
  7. 印度自动化交易的未来

时间:【2015 年 3 月 14 日 14:30 - 15:15

演讲者
  • Gaurav Raizada: 联合创始人兼董事- iRageCapital &联合创始人- QuantInsti

实时算法交易平台演示

在我们的展位上,除了我们的“算法交易执行程序”,我们还展示了一个实时算法交易台的演示。

这个演示有助于理解,

  • 算法交易系统架构
  • 各种算法交易方法和策略
  • 著名的算法交易软件和平台

想了解更多关于“算法交易工作坊”的信息,请随时联系我们或致电 +91-22-6169-1400

QuantInsti &高盛资产管理研讨会

原文:https://blog.quantinsti.com/quantinsti-goldman-sachs-asset-management-seminar/

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

日期:2015 年 5 月 15 日

地点:BKC 孟买索菲特酒店

发言者 : Rajib Ranjan Borah、Gaurav Raizada、Radhakrishna Pendyala 和 Sameer Desai

活动日程

  • 量化自动交易的消息 -晚上 7:15 到 7:45
  • ETF 中的机会 -晚上 7:45 至 8:15
  • 高频市场微观结构 -晚上 8:15 到 8:45
  • 晚餐&网络——晚上 8:45 到 10:30

扬声器

quantin STI 量化学习有限公司的雄辩演讲者:

Rajib Ranjan Borah 是 irage capital Advisory Pvt Ltd .&quantin STI Quantitative Learning Pvt Ltd .的联合创始人&董事。他在 上就自动化交易的量化新闻进行了发言和讨论。

Gaurav Raizada 是 iRageCapital Advisory Private Ltd .的董事,负责该公司在印度的系统、性能和战略咨询业务,他还就高频市场微观结构发表了演讲。

来自高盛资产管理的雄辩演讲者:

Radhakrishna Pendyala 是高盛资产管理投资团队印度 ETF 业务的一员,在设计新投资产品和开展研究相关活动方面拥有丰富的经验。他在 Fidelity Investments、Modelytics 和 NumberPlus India Private Limited 拥有超过 12 年的行业经验。Radhakrishna 之前完成了 IIT 马德拉斯大学的毕业,以及印多尔 IIM 大学的研究生毕业。他还获得了纽约城市大学的金融工程硕士学位。

Sameer Desai 在资本市场拥有约 24 年的经验,涉足的领域包括机构股权销售、私人财富管理、独立财务顾问(IFA)集团、ETF 和指数化。他是高盛资产管理(印度)私人有限公司的执行董事,负责垂直股票经纪业务,其产品主要是 ETF。在收购 Benchmark Asset management India PVT . ltd .后,他加入了高盛印度资产管理公司。在加入 Benchmark Asset Management 之前,他曾担任 JM 金融服务私人有限公司和 Prabhudas Liladhar 私人有限公司的副总裁,这两家公司都是印度领先的金融服务集团。他在基准资产管理公司(Benchmark Asset Management)就指数化和 ETF 在印度各地做了无数次演讲。他来自印度孟买,专攻化学工程的聚合物技术分支,也从事管理研究。

事件焦点

该活动的重点是利用新闻和市场微观结构在交易者、投资者和财富管理人员中传播关于交易技术和策略新发展的意识。它还关注了交易所交易基金中的机会。

QuantInsti 在艾哈迈达巴德 IIM 的算法交易会议

原文:https://blog.quantinsti.com/quantinsti-iim-ahmedabad-2018/

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

概述

QuantInsti 在艾哈迈达巴德的印度管理学院主持了一个关于算法交易的会议。这是一场由 Nitesh Khandelwal(quanti STI 联合创始人兼首席执行官)和 Prodipta Ghosh(quanti STI 副总裁)代表 quanti STI 为 IIM 艾哈迈达巴德的学生举办的有趣会议。

很高兴看到这么多聪明的初露头角的经理对算法交易和量化交易感兴趣!

关于演讲者

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

Nitesh Khan delwal(QuantInsti 联合创始人兼首席执行官)

Nitesh Khandelwal 毕业于 IIT 坎普尔大学电气工程专业,并获得了 IIM 勒克瑙大学的管理学研究生学位,他的职业生涯始于财政部的银行部门。在一家自营交易公司短暂担任领导后,他在孟买共同创立了 iRage。如今,iRage 是印度算法交易领域的领先企业。后来,当 Nitesh 搬到新加坡时,他成立了一家贸易公司,在全球交易所进行交易。

2016 年,他将重心转移到 QuantInsti 担任其 CEO。QuantInsti 继续致力于将面向科学&技术的贸易知识和途径带给全球大众,并且已经帮助来自 130 多个国家的用户实现了同样的目标。

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

Prodipta Ghosh(QuantInsti 副总裁)

Prodipta 是一位经验丰富的 quant,目前作为副总裁领导 QuantInsti 的 Fin-tech 产品和平台开发。

他在银行业工作了十多年,在孟买和伦敦的德意志银行的交易和结构部门担任过各种职务,并在渣打银行担任企业银行家。在此之前,Prodipta 作为科学家在印度国防 R&D 组织(DRDO)工作。

QuantInsti 为 NSE 的 NCFM 认证设计了算法交易模块

原文:https://blog.quantinsti.com/quantinsti-nse-ncfm-module/

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

国家证券交易所(NSE)是覆盖全国多个城市的最大证券交易所之一。领先的机构采取主动,建立了 NSE,以提供一个现代化的全自动屏幕交易系统,覆盖全国。众所周知,NSE 带来了无与伦比的透明度、速度以及效率、市场完整性和安全性。就市场微观结构、市场惯例和交易量而言,NSE 在印度证券改革中发挥了催化作用。

金融部门有一个非常重要的方面,那就是开发一个人力资源库,在该行业的每个领域都拥有合适的技能和专业知识。为了拥有这样的熟练和专业的人员,需要向在该行业中工作的人员分配高质量的中介:

  1. 遵循通常通过规章实现的行为准则
  2. 拥有通过测试和认证系统获得的必要技能和知识

认证的必要性

随着算法交易的出现,仅在 NSE 中,算法交易就以指数级增长,占平台交易的 46%。自 2008 年 4 月 SEBI 开始允许直接市场准入以来,交易技术发展的趋势一直保持不变。

着眼于保护投资者&考虑国际经验;为了最大限度地降低因对市场缺乏了解而产生的风险,NSE 引入了认证和测试。近年来,随着市场经历了彻底的转变,出现了各种需要不同专业化和定位水平和性质的新功能。

关于 NCFM

NSE 在金融市场的认证;俗称 NCFM 是一个在线测试和认证计划。在金融市场运作所需的技能和实践知识受到考验。

认证考试面向各行各业想要从事算法交易或拥有算法交易平台的人。跨城市的 VSAT/租用线路网络技术允许灵活的日期、时间安排,并为候选人提供方便。

NCFM 有各种模块,涵盖广泛的垂直交易领域,即。共同基金、股票衍生品、商业银行、证券市场、银行基本面和资本市场基本面

然而,这还不够!考虑到市场和技术的指数变化,NSE 推出了另一个独特的模块,即算法交易模块

由于 QuantInsti 是亚洲算法交易教育的先驱机构,NSE 邀请 QuantInsti 开发其 NCFM 认证的算法交易模块。QuantInsti 开发的 NCFM 工作手册已经发布;其轮廓可以在这里获得。

有鉴于此,QuantInsti 第二次与 NSE 一起成功开展了关于算法交易的管理发展项目 (MDP)。在 2014 年举行的首届 MDP 中,我们的教员展示了各种自动化交易策略、工具、绩效评估技术、投资组合管理技术、规则和法规。

QuantInsti 参加价格展望会议和展览

原文:https://blog.quantinsti.com/quantinsti-price-outlook-conference-exhibition-2015/

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

关于事件

著名的棕榈油和月桂油价格展望会议和展览(POC)每年在马来西亚吉隆坡举行,吸引了来自 50 多个国家的油脂行业的国际参与者的参与。

这次旗舰会议是由马来西亚证券交易所衍生品组织的,该交易所经营着世界基准的原油棕榈油期货合约或 FCPO。这项活动被全球食用油玩家指定为一项必须参加的年度活动。它为来自世界不同地区和价值链流程的代表提供了交流思想的完美网络平台。

QuantInsti at POC2015

QuantInsti 受邀为与会者提供期货和期权方面的教育,以便他们能够获得衍生品如何帮助其业务的信息。有了这个工作坊,更多的实物交易者现在有了使用衍生品进行交易和风险管理的知识。

日期-2015 年 3 月 2 日至 4 日

地点 -马来西亚吉隆坡香格里拉酒店

节目

poco2015 马来西亚证券交易所衍生品研讨会

2015 年 3 月 2 日:上午 8 时 30 分至下午 1 时

| 时间 | 项目 |
| 上午 8:30 | 注册开始 |
| 上午 9 点 | 开场白 |
| 上午 9 点 15 分 | 研讨会论文 1:贸易期货&领先于市场 Nitesh Khandelwal 衍生产品培训部门主管&QuantInsti 跨市场研究 |
| 上午 10 点 15 分 | 茶歇 |
| 上午 10 点 35 分 | 研讨会论文 2:贸易选择&领先于市场Rajib ran Jan Borah QuantInsti 联合创始人&董事 |
| 上午 11 时 35 分 | 问&答 |
| 中午 12 点 | 午餐 |
| 下午 1 点 | BMD 研讨会结束 |

关于演讲者

Nitesh Khandelwal 先生,QuantInsti&市场间研究衍生品培训部主任。

Rajib Ranjan Borah ,QuantInsti 高级教师,期权概念&交易策略和做市。

QuantInsti 受邀参加 2015 年芝加哥贸易展

原文:https://blog.quantinsti.com/quantinsti-the-trading-show-chicago-2015/

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

2015 年 5 月 26 日邀请帖:

日期:2015 年 6 月 3 日-4 日

地点:美国伊利诺伊州芝加哥海军码头,邮编 60611

事件概述

QuantInsti 联合创始人兼董事 Rajib Ranjan Borah 受邀参加 2015 年 6 月 3 日和 4 日在芝加哥举办的“交易展”。芝加哥交易展是芝加哥(以及美国)交易行业的主要活动之一——结合了量化金融、自动化交易、交易所技术、大数据和衍生品。来自对冲基金、交易公司、道具店、银行、经纪人、交易场所、监管机构和金融服务提供商的 1000 多名代表参加了此次活动。

近 100 名行业专家受邀担任演讲嘉宾,包括来自交易技术公司、量化交易公司、交易所、美国财政部等政府机构的专家。

这次活动历时两天,包括 26 场个人会议(17 场研讨会和 9 场专题介绍)和 38 场圆桌小组讨论。此外,有 60 家参展商参加了此次活动。

QuantInsti 的 Rajib 受邀与 Bullet Hill Capital LLC 的创始人兼管理成员 Brett Schlapfer 共同主持圆桌讨论“情绪分析——使用计算语言学识别交易机会”(6 月 4 日上午 10:10)。

参加此次讨论的其他小组成员包括 Ernie Chan(QTS 资本管理公司负责人)、Roger Hunter(QTS 资本管理公司首席软件架构师)、Christian Rojas(加拿大皇家银行资本市场公司定量分析师)、Jeff svo Boda(Makk Trading 公司管理成员)。

当天 13:40,在一个圆桌小组会场——Rajib 也主持了一场“亚洲市场的算法交易”的公开讨论。

当天晚些时候,在 14:40,QI 的 Rajib 是本次活动的最后一位演讲者,他的主题是“亚洲市场的算法交易——监管、技术复杂性和竞争格局”。

芝加哥 2015 交易展图片

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

马来西亚证券交易所衍生品交易 BMD 会议

原文:https://blog.quantinsti.com/quantinsti-trading-bmd-bursa-malaysia-derivatives/

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

日期:9 月 26 日,周六

会议时间:IST 时间上午 10:30 到 IST 时间下午 1:30

午餐: 下午 1:30 到 2:30 IST

地点:QuantInsti Quantitative Learning Pvt Ltd,A-309,Boomerang,Chandivali Farm Road,Powai,Mumbai–400 072

为了让行业和证券交易所参与进来,分享他们在“算法交易管理课程”方面的知识和专业技能,并提供课程之外的持续学习,我们举办了一场由马来西亚主要交易所举办的专场会议,“马来西亚证券交易所衍生品(BMD)T1”。

BMD 是马来西亚首屈一指的股票和期货交易所,提供多样化的期货和期权,涵盖利率、商品、股票指数和单一股票期货产品。

我们为马来西亚证券交易所的“交易 BMD 开了一个非常成功的会议。本次会议由 QuantInsti 提供,由 CME Bursa Malaysia 的资深专家在 QI 报告厅主持。

会议涵盖以下主题:

  • BMD 的产品
  • 变化中的马来西亚衍生品市场
  • 治理结构
  • 期货交易的作用
  • BMD 中的传播和套利机会
  • BMD 棕榈油期货

未能参加活动的参与者在线加入了我们。

如需了解更多此类活动的信息,您可以通过contact@quantinsti.com联系我们

如何成为一名量化分析师?

原文:https://blog.quantinsti.com/quantitative-analyst/

由查尼卡·塔卡

作为一名需要综合运用数学、金融和计算机技能的定量分析师或定量分析师,你肯定能拿到高薪,而且会很受欢迎。此外,对于一个定量分析师的角色,你需要有一些关于这个角色的技能、教育和知识。我们已经在前面详细讨论了这些方面以及一些更像薪水、职责和角色的方面。

本文涵盖:

什么是量化分析师?

作为定量分析师,你需要扮演专业人士的角色,运用复杂的数学和金融知识对证券进行定价和交易。定量分析师需要增加收益,降低风险。记住,量化分析师的角色不同于风险分析师的角色。

也被称为定量分析师,量化分析师越来越受欢迎,他们直接与交易者合作。通常,投资银行和对冲基金非常需要定量分析师。

现在,让我们找出你应该成为定量分析师的理由。

为什么要成为量化分析师?

作为一名定量分析师,你的工作既有挑战性又有趣。看看这些为什么你应该成为定量分析师的理由:

  • 有益的工作
  • 是一项刺激的工作
  • 行业内的高需求

有益的工作

作为一名定量分析师,你的专业和财务成长依赖于你通过最大化收益来做好你的角色的能力。薪资如此优惠的主要原因是这份工作的挑战性。这就是为什么它是许多专业人士梦寐以求的工作。

是一项刺激的工作

作为一名定量分析师,你需要通过研究、开发和实现数学模型以及金融和计算机知识来解决复杂的问题。这种参与使工作相当刺激,你的工作需要最少的监督,同时承受着相当大的工作压力。面对这样一份竞争激烈、要求苛刻的工作,这成了一件极其刺激的事情。

行业内的高需求

由于定量分析师的工作性质相当复杂,因此该行业的需求量很大。随着对冲基金对定量分析师的需求不断上升,对工作概况的要求也出现了积极的转变。此外,风险管理行业是另一个需要定量分析师担任风险管理官的行业。

让我们找出定量分析师或量化分析师的工作职责/期望。

Quant 的工作职责/期望

据《经济时报》报道,到 2022 年,印度的数据消费量预计将增长 72.6%,达到 .93 亿 MB。随着如此大规模的数据生成,公司将需要能够发现模式和趋势、建立模型、预测、预报和解释这些数据结果的专业人员。

因此,有了所有的数据和技术来分析和建立算法模型,作为一名定量分析师或定量分析师,你一定会为自己开辟出一条不同寻常的道路。

我们已经讨论过定量分析师的工作是至关重要的。由于涉及到计算机、数学和金融等学科的知识,一般来说,定量分析师需要履行以下职责:

  • 帮助进行交易的交易架构
  • 评估贸易理念
  • 降低交易成本
  • 帮助减少市场影响,如经济衰退
  • 降低投资组合风险
  • 回溯测试和执行新策略
  • 利用数据分析市场和设计算法模型来解决复杂的金融问题

我们在这里提到的一家知名公司 iRage 的不同类型的“分析师”工作有不同的工作职责:

初级分析师

作为初级定量分析师,你将从微观和宏观两个角度参与分析市场。具体来说:

  • 分析来自交易所的数据,建立交易策略
  • 在微秒时间框架内分析市场参与者的活动,以确定可以成功交易的微观行为模式
  • 同时,分析更长时间范围内的信息(以及来自其他金融工具、基本面数据)以建立宏观交易策略
  • 目标是自动化上面建立的所有交易策略
  • 构建工程解决方案来管理复杂性
  • 评估各种时间范围内各种金融资产的各种交易信号的盈利能力
  • 与公司的高级交易员合作执行分析功能(盈利能力分析、市场趋势分析等)。)并相应地准备报告

所需技能:

  • 良好的 Python 编程(最好是 C++)
  • 对金融市场和基本面的基本认识
  • 很强的逻辑和数量能力
  • 强大的教育背景
  • 热衷于使用大数据集

定量分析师

作为定量分析师,以下是工作职责:

  • 将与全球顶级对冲基金和资产管理公司的首席信息官、项目经理、分析师和交易员密切合作
  • 能够理解客户的投资流程,发现效率低下的地方,开发独特、直观、有洞察力的工具,帮助客户做出更好的投资决策
  • 分析和解释来自各种来源的大量财务和统计数据,更好地理解所涉及的挑战并设计优化的解决方案
  • 识别瓶颈,使代码更精简、更快速,创造性地使用技术技能来解决现实世界的问题
  • 能够在快节奏的环境中进行多任务处理并取得成功,创新,解决方案驱动的工作方法

所需技能:

  • 精通 R 和/或 Python
  • 对金融市场的知识和热情
  • 个人交易帐户,你可以说话是一个加号

定量研究分析师

对于这种情况,你需要牢牢掌握数学和计量经济学,同时具备理解和交易市场的能力,同时在设计稳健的交易系统和完善程序方面拥有良好的实践经验,以有效管理各种类型的金融市场数据,促进量化投资研究。

以下是工作职责:

  • 实施统计方法,利用 PyTorch 和张量流解决具体的业务问题
  • 直接参与自动预测系统的设计和开发
  • 与研究人员、软件开发人员和企业领导合作,定义产品需求,提供分析支持,并交流反馈
  • 以一种可立即用于回答有关预测系统的输入和输出问题的格式呈现关键数据,并提高其性能
  • 使用深度学习等前沿概念来识别金融市场数据中的模式/趋势

所需技能:

  • 应该能够熟练地将高级数学/统计学概念应用于大型数据集
  • 优秀的分析和解决问题的技能
  • 必须具备求知欲,并主动积极
  • 具有 Python、Pytorch 和 Tensor Flow 的工作经验和亲和力
  • 对机器学习等现代概念和定量金融理论着迷并感兴趣
  • 研究和分析各种大型数据集,以开发和实施信号
  • 与他人广泛合作,分析业绩,优化交易策略,并继续推进团队的研究成果
  • 使用深度学习等前沿概念来识别金融市场数据中的模式/趋势

高级定量分析师

作为一名高级定量分析师,您的职责包括:

  • 设计、回测和实施交易策略,并作为研究团队的一部分工作
  • 对历史市场数据进行研究
  • 开发新的或改进现有的指标和交易模型
  • 各种交易策略的编码
  • 监控实时交易策略并保持最佳表现
  • 分析大型金融数据集以识别交易机会
  • 提供实时分析支持
  • 研究、设计、金融工程和测试跨资产类别的证券、指数及其衍生品交易的量化模型。这个人需要了解定量金融的研究
  • 创建和审查战略代码,最好是 R 和 MS-Excel,但其他语言也可接受,取决于具体的候选人概况。
  • 作为策略团队的一员,决定在什么情况下使用什么信号和交易策略

所需技能:

  • 熟练使用 R 和 Excel 进行统计/数据分析
  • 机器学习和时间序列模型的实用知识
  • 强烈的职业道德
  • 对股票市场和金融数据的兴趣
  • 良好的解决问题、批判性思维和分析能力
  • 了解 R Shiny、Markdown/ Latex 和 Python
  • 熟悉印度股票市场

还有,你可以用 quant 面试题准备的一整个课程来练习 Quant 面试题。

接下来,我们将看看成为定量分析师所需的教育要求/技能。

成为定量分析师的教育要求

由于定量分析师需要完成我们刚刚讨论过的各种功能,所以了解成为定量分析师的教育要求是很重要的。

下面,我们提到了一系列在线课程、学位以及证书课程,你可以从中选择,成为一名定量分析师:

金融工程硕士

由于金融工程硕士为你提供了从评估统计数据到计量经济学建模的深入知识,这是一门在现实世界中帮助你的工程课程。由各种大学提供,你可以在全球任何一个角落注册这个学位。

当你获得定量分析的专业知识时,你就可以自信地完成这篇文章。在学习本课程的过程中,您将在以下重要主题的背景下获得全面的金融知识:

  • 统计数字
  • 数学
  • 计算机科学

总之,在这样一个快节奏的世界里,这门课程将使你具备在需要特殊工作的专业环境中取得成功的正确知识。

数据科学硕士

在这个学位课程中,你将学习所有关于数据科学的知识,它基本上帮助你将统计学、数据分析、机器学习联系起来。所有著名的大学都提供这个学位。一旦你掌握了所有这些领域和相关的概念,你就可以将所学学科的复杂性用于实际应用。这个学位课程涵盖了数学、统计学、计算机科学和信息科学等各个领域的广泛知识,为你提供了一系列重要的技术。这是一门非常有用的学科,其数据知识来自:

  • 几个来源
  • 规模
  • 类型
  • 结构

随着技术的进步,上述领域被用于数据科学,为其提供适当的方法。

金融硕士

来到金融硕士,这个学位课程为你提供了获得金融专业知识所需的所有知识,是几所大学提供的一个非常常见的学位。具体来说,对于定量分析师来说,金融学位将为你提供数学、计量经济学和编程工具的组合。这些知识帮助一个有抱负的分析师成为一个专业的量化分析师。

完成该领域的学位课程后,您将能够:

  • 将金融相关理论应用于真实的金融市场
  • 将数学应用于金融问题,如预测股票价格
  • 运用经济计量理论分析投资决策

因此,通过选择这一学位课程,你将获得在现实金融世界中重要工具的实际应用的知识。这将有助于培养你在金融市场取得巨大成功的技能。

短期在线课程

有一些简短的在线课程是自定进度和交互式的。此外,你可以选择一些知名平台提供的你想学习的具体方面。Quantra 提供的一些课程有:

交易机器学习入门

一个免费的课程,让你开始学习机器交易。了解不同的机器学习算法如何在金融市场数据上实现。浏览并理解该领域的不同研究。获得这个利基领域的全面概述。

用机器学习交易:回归

本课程非常适合使用机器学习算法创建您的第一个交易策略。循序渐进地学习:获取数据,预处理数据,训练和测试机器学习回归模型,预测股票价格。提供实际操作的编码帮助。

【交易与机器学习:分类与 SVM】

学习在金融市场数据上使用 SVM,并创建自己的预测算法。该课程涵盖分类算法、机器学习中的性能测量、超参数和监督分类器的构建。

神经网络交易中的

本课程强烈推荐程序员和 quants 在金融市场实现神经网络和深度学习。由欧内斯特陈博士提供,学习使用先进的技术,如 LSTM,RNN 在现场交易。

决策树交易中的

通过这门课程,你将学会使用人工智能技术预测市场和寻找交易机会。此外,你将能够训练算法通过数百个技术指标来决定哪个指标在预测正确的市场趋势方面表现最好。进一步,优化这些 AI 模型,学习如何在实盘交易中使用。

执行方案

有了高管课程,你可以从各种专业人士、行业中坚分子那里学到行业的实际方面。

一个这样的高管项目是 EPAT ,这是一个为期 6 个月的综合虚拟课堂项目,涵盖算法交易的基本模块,例如:

  • 市场微观结构
  • 金融工具
  • 统计数字
  • 数据分析
  • 证券管理
  • Python/Matlab/Excel 编码基础
  • 机器学习的使用
  • 交易、技术、基础设施和运营
  • 实时交易策略构建

它通过专注于衍生品、量化交易、电子做市或交易相关技术和风险管理,激励传统交易者走向成功的算法交易生涯。

接下来,我们将看到一个量化分析师的工资/薪酬。

工资/报酬

定量分析师的薪水/报酬是相当丰厚的,因为这份工作的激励性质和要求涉及计算机、金融和数学等学科。

下面,我以表格形式列出了每个国家的平均基本工资:

| 国家 | 平均基本工资 |
|
美国 |
$117,000 |
|
印度 |
卢比 1,427,000 |
|
英国 |
£67,698 |
|
加拿大 |
大约 87,000 美 |
| 新加坡 | 12 万新 |
|
香港 |
75 万港 |
|
澳大利亚 |
10.5 万美 |

来源:玻璃门

你可以阅读更多关于 quant 的平均工资。

结论

成为定量分析师或定量分析师需要奉献和努力。有了这些知识,定量分析师就能在对冲基金或投资银行获得成功,因为这些公司对定量分析师的需求很高。此外,定量分析师的职业生涯是相当刺激和有益的。

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

今天的文章 Quantinsti 博客中文翻译(三十四)分享到此就结束了,感谢您的阅读。
编程小号
上一篇 2025-01-01 21:27
下一篇 2025-01-01 21:21

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/98473.html