算法交易中的Python - 页 15

 

使用 Python 下载、转换数据并将其写入 Excel ||使用 Python 进行股票分析第 6 部分



使用 Python 下载、转换数据并将其写入 Excel ||使用 Python 进行股票分析第 6 部分

欢迎来到我的 Python 股票分析系列的第六部分。在视频说明中,您将找到前五个视频的链接,以及包含代码的 GitHub 存储库的链接。

在上一部分中,我们探索了绘制选定股票收盘价的不同方法。现在,在第六部分中,我们将采用不同的方法来获取数据并使用 Excel 文件。我们将创建一个名为“get_return_data”的函数,该函数至少接受一个股票代码作为输入(多个股票代码可以用逗号分隔或存储在 Python 集合对象中)。此外,该功能允许用户指定日期并在收盘价或调整收盘价之间进行选择。数据将保存到 Excel 文件中,也可以存储在变量中。

首先,我们需要设置 API 客户端。和以前一样,我们将使用“日终历史数据”API。您需要将“key”变量替换为您自己的 API 密钥。

接下来,我们创建一个临时 DataFrame 来存储下载的数据。我们循环传递给函数的代码,并使用 try- except 块来处理任何潜在的错误。根据用户是否想要调整收盘价或收盘价,我们将 API 调用结果中的相应列附加到 DataFrame 中的股票行情列中。

下载并存储数据后,我们就可以执行任何所需的转换。在本例中,我们使用 NumPy 计算瞬时收益率并删除第一行。我们还使用内置方法计算常规百分比变化。

最后,我们使用上下文管理器中的 pandas Excel 写入对象将数据写入 Excel 文件。此步骤需要提供文件名和可选的日期格式。每个变量都被插入到“returns”文件中,并打印一条消息来指示任务的完成。该函数返回收盘价,并且可以扩展以返回其他数据。

使用四个代码测试该函数,我们可以看到生成的文件包含下载的数据。该文件可以在 Excel 中打开以查看数据。

本系列的第六部分到此结束。在第七部分中,我们将探讨如何在一张图中绘制多只股票的表现。

Download, Transform and Write Data to Excel with Python || Stock Analysis with Python Part 6
Download, Transform and Write Data to Excel with Python || Stock Analysis with Python Part 6
  • 2022.06.23
  • www.youtube.com
​ @Matt Macarty #dataanalytics #pythonprogramming #stockmarket Python and Excel - Learn how to use Data API to download, transform and export data to...
 

用于股票分析的 Python:使用 matplotlib 绘制多种证券的表现网格 ||第7部分



用于股票分析的 Python:使用 matplotlib 绘制多种证券的表现网格 ||第7部分

欢迎来到我的关于使用 Python 进行股票分析的系列的第七部分。在视频说明中,您将找到前六个视频的链接以及包含代码的 GitHub 存储库。

在第六部分中,我们开发了一个函数来下载数据、执行转换并将其保存到 Excel 文件。现在,在第七部分中,我们将重点关注将多只股票的相对表现绘制到一张图表上。

首先,我们将读取特定文件夹中的所有文件。在本例中,我们将查找“energy”文件夹。我们将跳过任何以零开头的文件。

使用 matplotlib 库,我们将创建一个子图对象。行数将由文件长度的上限除以四来确定,因为我们希望每行显示四个图表。我们将使图形变大以容纳可能的许多图形。

接下来,我们将跟踪添加的图形数量,并使用嵌套的 for 循环来迭代图形的行和列。如果我们到达最后一行并且它未满,我们将通过增加计数来处理异常。

在循环中,我们将从每个文件中读取收盘价并将数据转换为相对表现。我们将在相应轴上绘制相对性能,并在 0 处添加一条水平线。为了将数据格式化为百分比,我们将从 matplotlib 导入股票代码模块。

在异常块中,我们不会采取任何操作,因为我们知道我们已经用完了要绘制的数据。我们将简单地传递并增加计数以移至下一个文件。

绘制完所有数据后,我们将显示图表。

使用“energy”文件夹中的文件测试代码,我们可以看到生成的图表显示 21 种证券在大约一年内的相对表现。

本系列的第七部分到此结束。在下一个视频中,我们将探讨日终历史数据 API 中的其他数据削减。
Python for Stock Analysis: Plotting Performance Grid of Multiple Securities w\matplotlib || Part 7
Python for Stock Analysis: Plotting Performance Grid of Multiple Securities w\matplotlib || Part 7
  • 2022.06.27
  • www.youtube.com
​ @Matt Macarty #dataanalytics #pythonprogramming #stockmarket ✅ Please SUBSCRIBE:https://www.youtube.com/subscription_center?add_user=mjmacartyVid...
 

下载即将公布收益或股息的股票列表 ||使用 Python 进行股票分析第 8 部分



下载即将公布收益或股息的股票列表 ||使用 Python 进行股票分析第 8 部分

欢迎阅读我的使用 Python 进行股票分析系列的第八部分。在本视频中,我们将深入研究日终历史数据 API,并探索除检索价格之外的其他功能。该 API 很全面,虽然我们不会涵盖所有内容,但我将向您展示一些可能对您有用的示例。 API 提供的文档内容丰富,可以指导您探索不同的数据集。

首先,我们将重点关注获取本周报告的公司的盈利数据。首先,我们将通过传入 API 密钥(将其替换为您自己的密钥)来初始化 API 客户端。然后我们将下载数据并将其存储在 DataFrame 中。

我们将用于此任务的函数不需要任何参数。获得 DataFrame 后,我们将提取本周报告收益的公司的符号并将其存储在列表中。

为了过滤特定交易所(例如美国)的数据,我们将循环遍历 DataFrame 中的每一行,并检查符号是否以“us”结尾。股票代码在日终历史数据中被称为代码,其结尾与其所属交易所相对应。我们会将相关符号添加到我们的列表中,不包括交易所信息。

循环遍历所有行后,我们将打印本周报告收益的公司数量,并返回符号列表以供进一步分析。

接下来,让我们探讨如何获取特定除息日的股息。我们将从今天的日期开始。功能设置与前一个类似,我们创建一个 API 客户端并将数据下载到 DataFrame 中。

这次我们将使用的函数称为 get_bulk_market。通过此功能,您可以获得各种数据点,包括整个市场的收盘价。对于股息,我们将感兴趣的数据指定为“股息”。

进行调用后,我们将返回结果 DataFrame。

测试这个函数,我们将检索今天除息日的股息。该代码将打印股息,假设美国市场和今天的日期的默认值。

生成的 DataFrame 将显示股息及其各自的比率。由于我们关注的是美国市场,股息将以美元计算。此外,DataFrame 还提供有关股息支付频率的信息。

第八部分到此结束。在第九部分中,我们将通过构建一个简单的筛选器来结束第一部分。
Download List of Stocks About to Announce Earnings or Dividends || Stock Analysis with Python Part 8
Download List of Stocks About to Announce Earnings or Dividends || Stock Analysis with Python Part 8
  • 2022.07.05
  • www.youtube.com
​ @Matt Macarty #dataanalytics #pythonprogramming #stockmarket Use API to Download List of Stocks that will announce earnings or dividends for a spec...
 

如何使用 API 创建股票筛选器 ||使用 Python 进行股票分析第 9 部分



如何使用 API 创建股票筛选器 ||使用 Python 进行股票分析第 9 部分

这是我们使用 Python 进行股票分析系列的第 9 部分。您可以在说明中找到之前视频的链接以及 GitHub 上的代码。

在第 1 节的最后一部分中,我们将探讨股票筛选器的示例。目标是创建一个简单的筛选器,分析多种证券的 52 周高点、当前价格和市盈率。这将帮助我们识别证券以进行进一步分析。

为了实现这一目标,我们将使用日终历史数据基本面源。让我们首先检查通过调用此提要获得的数据。我们将创建一个客户端对象并检索特定证券的基本数据,例如 Apple。这将为我们提供一个包含各种信息的大型数据框架,包括财务、资产负债表等。我们可以通过使用索引位置来探索特定部分。

接下来,我们将重点关注指数的技术,并使用日终历史数据帮助程序库和端点来批量下载最近一天的收盘价。我们将数据存储在数据框中并重置索引。此调用获取美国证券交易所所有证券的收盘价。然后我们可以过滤数据以仅包含我们感兴趣的证券。

为了构建我们的股票筛选器,我们将创建一个客户端并循环遍历我们想要分析的代码。我们将用每种证券的 52 周最高价填充字典。如果证券没有可用的此信息,我们将跳过它并继续循环。

获得必要的数据后,我们将合并收盘价、52周高点,并计算市盈率。我们将返回包含证券、收盘价、最高价和比率的结果数据帧。

为了测试我们的筛选器,我们将使用 get_sp 函数从 S&P 500 检索符号并打印结果。这将显示标准普尔 500 指数中前 10 只证券的收盘价、52 周高点和比率。

在第 10 部分中,当我们开始为此目的构建一个类时,我们将深入分析个别证券。加入我们的下一部分,了解有关个人层面证券分析的更多信息。

How to Create a Stock Screener Using an API || Stock Analysis with Python Part 9
How to Create a Stock Screener Using an API || Stock Analysis with Python Part 9
  • 2022.07.18
  • www.youtube.com
​ @Matt Macarty #dataanalytics #pythonprogramming #stockmarket Use API to create a stock screener✅ Please SUBSCRIBE:https://www.youtube.com/subscri...
 

股票分析 Python:如何使用 Python 自动分析股票 ||第10部分



股票分析 Python:如何使用 Python 自动分析股票 ||第10部分

这是我的 Python 股票分析系列文章的第 10 部分。您可以在下面的描述中找到之前视频的链接,以及包含所有代码的 GitHub 存储库的链接。在这一部分中,我们将开始关注个别证券,而不是整个证券交易所或大量股票代码。

首先,我已经包含了这部分所需的导入,例如 datetime、matplotlib、numpy、pandas 和 seaborn。我还定义了一个符号常量,表示大约一年前的日期,用户可以使用 ISO 格式的日期来更改该常量。

接下来,我将编写一个名为“Stock”的类来处理单个证券。该类将使用股票代码、API 密钥和日期(使用默认值)的参数进行初始化。此外,它还允许用户指定可以保存数据的文件夹,默认值为“无”。

在类中,我将定义一个名为“get_data”的方法来获取股票数据。它将首先通过将符号与可用文件进行比较来检查指定文件夹中的数据是否已可用。如果找到数据,它将被读入 DataFrame 并标准化。否则,它将使用 API 获取数据并将其作为 DataFrame 返回。

通过初始化 Stock 实例,代码、API 密钥、日期和数据将存储为实例变量。为了测试功能,我将创建一个 Stock 对象并打印出数据。

本系列第 10 部分到此结束。在第 11 部分中,我们将向 Stock 类添加更多数据转换。
Stock Analysis Python: How to Automatically Analyze Stocks with Python || Part 10
Stock Analysis Python: How to Automatically Analyze Stocks with Python || Part 10
  • 2022.07.21
  • www.youtube.com
​ @Matt Macarty #dataanalytics #pythonprogramming #stockmarket Create Stock class in Python to automate stock data analysis✅ Please SUBSCRIBE:https...
 

用于股票分析的 Python:自动计算并绘制股票收益和波动率图表 ||第11部分



用于股票分析的 Python:自动计算并绘制股票收益和波动率图表 ||第11部分

欢迎阅读我的 Python 股票分析系列的第 11 部分。您可以在下面的描述中找到之前视频和 GitHub 存储库的链接。

在第 10 部分中,我们创建了一个简单的类来初始化股票代码并从本地文件夹或通过 API 获取其数据。在这一部分中,我们将进一步深入研究数据转换并开始绘制数据。

首先,我将添加一个名为“calculate_volatility”的新方法,该方法将 DataFrame 作为输入。为了将此方法与“get_data”方法集成,我将对其进行相应修改。在“calculate_volatility”方法中,我将向 DataFrame 添加几列。第一列是回报,计算为收盘价的对数差,精确到四位小数。

接下来,我将计算滚动波动率,它表示 21 天期间回报的标准差。我将结果四舍五入到小数点后四位。此外,我将包括绝对变化、高低点差和预期变化列,并进行适当的舍入。

为了分析股票变动的幅度,我将计算一个名为“幅度”的列,该列表示实际变化除以预期变化,四舍五入到小数点后两位。最后,我将添加一个绝对值列以用于潜在的绘图目的。

我将删除包含计算结果的 NaN 值的初始行,然后在“get_data”方法中调用“calculate_volatility”方法。

让我们通过初始化 Stock 实例并打印 DataFrame 来测试代码。

现在,让我们通过创建直方图来绘制回报分布。我将确定开始日期和结束日期,然后绘制包含 20 个容器和边缘颜色的直方图。为了增强标题,我将使用包含两行的超级标题,指定日期范围。最后,我将展示情节。

让我们运行代码并检查直方图,它提供了过去一年股票回报分布的概述。

第 11 部分到此结束。在第 12 部分中,我们将继续处理其他图,然后再进行其他数据转换。
Python for Stock Analysis: Automatically Calculate & Graph Stock Returns & Volatility || Part 11
Python for Stock Analysis: Automatically Calculate & Graph Stock Returns & Volatility || Part 11
  • 2022.07.25
  • www.youtube.com
​ @Matt Macarty #dataanalytics #pythonprogramming #stockmarket Use API to create a stock screener✅ Please SUBSCRIBE:https://www.youtube.com/subscri...
 

如何计算和标准化预期股票回报 || Python 股票分析第 12 部分



如何计算和标准化预期股票回报 || Python 股票分析第 12 部分

欢迎阅读我的 Python 股票分析系列的第 12 部分。您可以在下面的描述中找到代码和其他视频的链接。

在第 11 部分中,我们通过向 DataFrame 添加列并绘制收益分布来在 Stock 类中执行基本数据转换。在本视频中,我们将继续提供更多可能对股票分析有用的绘图选项。

首先,让我们绘制股票的波动率。设置将与我们之前所做的类似,包括超级标题以及开始和结束日期。我们将创建一个散点图,其中 x 轴代表回报,y 轴代表标准差变化的绝对幅度。我们将添加水平线和垂直线以供参考。

让我们运行代码并检查波动性散点图。我们可以观察百分比变化的范围和标准差的数量。例如,在过去的一年里,没有任何超过三个半标准差的变化。

接下来,让我们绘制股票的表现。同样,大部分代码保持不变,因此我们可以复制它并进行一些调整。我们将创建线图来跟踪一段时间内的相对性能,而不是散点图。我们将收盘价除以第一天的收盘价,减去 1 以获得百分比变化,乘以 100,并将其格式化为 y 轴上的百分比。我们将保留水平线以供参考。

运行代码将显示股票表现的线图。通过将其与起始价格进行比较,我们可以看到股票在给定时间段内的表现如何。在这种情况下,我们可以观察到近几个月先出现积极趋势,然后出现下降。

您可以根据您的需要随意自定义图形大小并探索其他绘图选项。

第 12 部分到此结束。在第 13 部分中,我们将深入研究其他数据转换。
How to Calculate & Normalize Expected Stock Returns || Python Stock Analysis Part 12
How to Calculate & Normalize Expected Stock Returns || Python Stock Analysis Part 12
  • 2022.07.28
  • www.youtube.com
​ @Matt Macarty #dataanalytics #pythonprogramming #stockmarket Calculate and Normalize Stock Returns ✅ Please SUBSCRIBE:https://www.youtube.com/sub...
 

用于股票分析的 Python:按期权到期日和波动性过滤数据 ||第13部分



用于股票分析的 Python:按期权到期日和波动性过滤数据 ||第13部分

欢迎阅读我的 Python 股票分析系列的第 13 部分。您可以在下面的描述中找到代码和 GitHub 上其他视频的链接。

在第 12 部分中,我们探索了可用于股票分析的各种图表。在本视频中,我们将通过添加几个方法来检查不同的数据片段来扩展 Stock 类。

首先,让我们编写一个方法来识别期权到期的日期。这是每个月的第三个星期五。我们将此方法称为“option_expiration”。为了实现这一点,我们将使用 NumPy 的 np.where 函数创建一个掩码。我们将指定三个条件:数据索引应大于 14 号(最早可能的第三个星期五)、小于 21 号(最晚可能的第三个星期五),并且对应于星期五(星期几)。我们将返回应用此掩码的数据,从而生成仅包含到期日期的星期五的 DataFrame。

接下来,我们将编写最终方法,该方法确定自最后两个标准差移动以来低波动性持续了多长时间。我们将此方法称为“low_vol_duration”。为了实现这一点,我们将向数据添加一个名为“小于 2 个标准差的天数”的列,并将其初始化为零。然后,我们将迭代数据并检查每行的大小。如果幅度小于 2,我们将增加计数并更新“小于 2 个标准差的天数”列中的相应行。如果幅度为二或更大,我们会将计数重置为零。最后,我们将返回仅包含具有两个标准差移动的行的 DataFrame,显示每次移动之间的天数。

让我们运行代码并检查结果。我们可以看到期权到期日,即每月 15 日到 21 日之间。此外,我们还有低波动持续时间,表示自前两次标准差变动以来的天数。例如,大约一年前,距离前两次标准差移动已经过去了两天,随后是 32、41 等周期。

第 13 部分到此结束,第 2 部分结束。我鼓励您根据需要继续开发和扩展 Stock 类。在第 14 部分中,我们将探讨如何将函数打包到可以使用 pip 安装的 Python 包中。
Python for Stock Analysis: Filter Data by Option Expiration and Volatility || Part 13
Python for Stock Analysis: Filter Data by Option Expiration and Volatility || Part 13
  • 2022.08.15
  • www.youtube.com
​ @Matt Macarty #dataanalytics #pythonprogramming #stockmarket Calculate and Normalize Stock Returns ✅ Please SUBSCRIBE:https://www.youtube.com/sub...
 

Python 股票分析:在 VS Code 中使用 Pip 创建并发布您自己的自定义 Python 包


Python 股票分析:在 VS Code 中使用 Pip 创建并发布您自己的自定义 Python 包

在本视频中,我将指导您完成将 Python 代码打包到可以使用 pip 安装的库中的过程。这是我关于 Python 股票分析系列的最后一个视频,其中我们讨论了数据检索、数据转换、可视化和数据筛选等主题。您可以在下面的描述中找到之前视频的链接,以及 GitHub 存储库的链接。

打包我们的代码的目的是为了在具体的Python项目中更方便的使用和复用。尽管我将演示该过程,就好像我们将代码发布到 PyPI(Python 包索引)一样,但需要注意的是,代码可能无法立即为 PyPI 做好准备。我们将首先对其进行设置并在本地安装以了解该过程。但是,将来您可能会修改代码并创建一些您想要与更广泛的受众共享的内容。

打包过程可能会根据项目的复杂程度而有所不同。在我们的例子中,由于我们的代码由两个模块组成,因此该过程相对简单。以下是步骤概述:

  1. 创建一个父文件夹来存储源代码和其他文件。
  2. 在父文件夹中,创建一个“source”文件夹和一个“tests”文件夹。安装后,源文件夹将包含实际的包。
  3. 将前面片段中的两个代码文件复制到源文件夹中。
  4. 在源文件夹中创建一个双下划线“ init .py”文件以允许导入模块。
  5. 创建许可证文件以保护您的代码并最大程度地降低法律风险。
  6. 添加 README 文件以提供文档并用作 GitHub 或 PyPI 上的主页。
  7. 创建定义 Python 如何与代码交互的配置文件。
    • 为构建系统创建一个“pyproject.toml”文件并指定依赖项。
    • 创建“setup.cfg”文件以提供有关项目的元数据(名称、版本、描述、许可证等)并指定包依赖项。

设置文件夹和配置文件后,您可以使用 pip 在本地安装库。打开命令行,导航到父文件夹,然后运行命令“pip install .”。这将安装该库,使其可以从任何 Python 环境访问。

安装后,您可以通过启动 Python 并导入“analyze”模块来测试该库。您还可以使用“帮助”功能来查看有关包的元数据。

请记住,打包过程可能会随着时间的推移而演变,并且有多种方法可以打包安装代码。我在此处概述的步骤只是一个起点,当您的项目变得更加复杂时,您可以探索其他选项。

我希望本教程可以帮助您开始创建自己的 Python 包。

Python Stock Analysis: Create & Publish Your Own Custom Python Packages with Pip in VS Code
Python Stock Analysis: Create & Publish Your Own Custom Python Packages with Pip in VS Code
  • 2022.11.13
  • www.youtube.com
​ @Matt Macarty #python #trading #algotrading ✅ Please SUBSCRIBE:https://www.youtube.com/subscription_center?add_user=mjmacarty✅ Visit Lumiwealth ...
 

使用 Python 与盈透证券进行回测和实时交易。


使用 Python 与盈透证券进行回测和实时交易。

Julio 博士首先介绍了算法交易及其优点。他解释说,算法交易可以让交易者减轻持续监控市场的压力,最大限度地减少人为错误,并为其他活动创造更多的空闲时间。他强调了算法交易的四个主要组成部分,即经纪商、互联网、程序和计算机。

随后焦点转向盈透证券(IB),该公司被介绍为美国最大的电子交易平台。 Julio 博士解释说,IB 提供先进的 API 技术,使交易者能够使用程序进行交易,提供有竞争力的价格和进入全球市场的机会。他强调,Python 程序可用于通过算法与 IB 进行交易。

接下来,Julio博士介绍了一款名为Hybrid Fat Pack的Python软件,该软件允许交易者在本地或云端计算机上建立算法交易平台。他强调了该平台的主要优势,即无需在互联网上披露或上传任何信息即可保护知识产权。交易者还可以在一处执行回溯测试和实时交易、管理多个账户以及使用各种 Python 软件包(例如 TensorFlow 和 Scikit-learn)与不同经纪商进行交易。他提供了有关如何从 AI Bridge PI 网站下载和设置 Hybrid Fat Pack 平台的说明。

接下来,Julio 博士解释了使用 Python 设置用于盈透证券回测和实时交易工具所需的步骤。他建议用户下载并保存必要的工具,包括盈透证券、IP官方终端和Python。他还提供了教程、文档和社区论坛的链接以获取更多支持。 Julio博士演示了如何配置WS(工作站)和IB网关,并展示了如何使用Anaconda打开Python环境。他运行 Python 代码来展示设置过程,并提供有关组织窗口以提高工作效率的技巧。

演讲者接着解释了通过 Python 使用 Interactive Brokers 的初始步骤。他指示用户打开名为“Romina Eva”的文件并找到他们的帐户代码,该代码需要在文件中进行相应更新。演讲者演示了如何选择和运行 Python 代码、初始化交易者并显示账户余额、现金价值、投资组合价值和挂单。用户可以使用 Hybrid Fat Pack 交易股票、期权、期货和外汇等各种证券。发言人提到所下的订单不能被操纵,并且会与许可证 ID 一起列出。

演示了从盈透证券检索实时和历史价格数据的过程。通过注释/取消注释特定代码行,演讲者展示了如何检索实时或历史数据并以用户友好的格式打印它。解释了Python代码中的代码结构和三个基本函数,包括在开始时运行的“初始化”函数,以及默认每2秒做出并执行交易决策的“处理数据”函数。

Julio 博士解释了如何使用 Python 和盈透证券做出交易决策。用户可以配置代码以按照固定的时间表做出决策,无论是每秒、每小时、每天还是在特定时间。他介绍了创建交易决策的三个关键功能:初始化、处理数据和下订单。为了演示该过程,提供了示例代码来获取历史数据并打印 I Spears ETF 的要价。演讲者利用 Panda 的数据框架检索和打印历史数据,展示了如何利用 Python 进行交易决策。

演讲者讨论了使用全局变量和实时价格下订单,并提供了购买股票的示例。 Interactive Brokers用于搜索证券,应用美国主要市场和价格超过100美元等过滤器,并使用猫扫描结果功能来获取相关信息。解释了构建算法策略的步骤,包括合约识别、使用处理数据或计划函数进行交易决策的频率、请求历史数据以及选择订单类型。提供了每日收盘回归策略的示例,其中交易决策是根据前一天的收盘价做出的。调度函数被定义为每天在特定时间运行以触发决策过程和后续操作。

该视频介绍了 Python 交易策略的两个示例。第一个示例演示了基于连续两天收盘价的基本策略。如果今天收盘价高于昨天,则所有仓位均被抛售;否则,购买SPY。代码有解释,比较简单。然后,该视频介绍了回溯测试的概念,并展示了移动平均线交叉策略的更高级示例。讨论了将策略应用于历史数据并评估其性能的过程。该策略的代码已得到解释并且仍然简单明了。该视频还涵盖了检索和处理数据,以及分析测试结果和查看投资组合价值。

Julio 博士讨论了使用 Python 与盈透证券进行回测和实时交易的过程。他解释了出于测试目的每分钟运行处理数据函数的默认模式以及制定历史数据注入计划的重要性。他详细介绍了如何向代码提供每分钟和每日数据,以及如何指定盈透证券回测的时间范围和频率。演示了一个代码示例,展示了如何运行回测器、检索和管理帐户信息以及检查输出文件夹中的帐户余额和现金价值。

演讲者强调了提供用户提供的历史数据对于提高代码性能的好处。虽然出于调试目的需要来自盈透证券的精确模拟数据,但请求不必要的信息可能非常耗时。 Julio 博士建议仅提供一部分历史数据或使用随机数据,这可以显着提高代码性能。他演示了如何从本地 CSV 文件提供历史数据、指定所需的时间范围和数据类型,以及如何使用自定义时间列表和“渲染”数据提供程序更快、更高效地运行测试。

Julio 博士讨论了性能分析及其在评估算法交易策略性能方面的重要性。他解释了需要历史数据来测试和改进代码,以及性能分析图表如何计算夏普比率等变量来协助这一过程。一旦对回溯测试结果感到满意,演讲者建议切换到纸质账户,根据真实的市场条件运行该策略。他还演示了如何使用 iBridgePy 处理多个账户,这对于基金经理来说至关重要。

Julio 博士最后强调了 Hybrid Fat Pack 软件的灵活性和用户友好性,使其成为算法交易的强大工具。

  • 00:00:00 Julio 博士介绍了算法交易和盈透证券,随后解释了一种名为“每日平仓反转”的简单交易策略。他解释了如何使用 iBridgePy 实施该策略,并使用盈透证券或其他数据提供商提供的历史数据进行回溯测试。回测完成后,将分析潜在结果,如果策略表现良好,则使用 iBridgePy 实施实时交易策略,并将订单下达至 martillo 账户。 Julio 博士强调,这是对冲基金经理的一个基本特征。

  • 00:05:00 演讲者谈到了算法交易的好处,包括减少持续关注市场的压力、减少人为错误以及更多的空闲时间。算法交易的四个主要组成部分是经纪人、互联网、程序和计算机。演讲者接着讨论了盈透证券(IB),它是一家有限责任公司,也是美国最大的电子交易平台。 IB提供先进的API技术,使交易者能够使用程序进行交易,提供有竞争力的定价和全球市场准入。要通过 IB 进行算法交易,交易者可以使用 Python 程序并将其连接到 IB 来开始交易。

  • 00:10:00 演讲者介绍了一款名为 Hybrid Fat Pack 的 Python 软件,该软件允许交易者在本地或云计算机上建立算法交易平台。使用该平台的主要优点是交易者可以保护自己的知识产权,因为他们不需要像其他竞争对手那样在互联网上披露或上传任何信息。此外,交易者可以在一处进行回测和实时交易,管理多个账户,并使用任何 Python 包(包括 TensorFlow 和 Scikit-learn)与不同经纪商进行交易。演讲者还提供了如何设置平台的说明,可以从 AI Bridge PI 的网站下载。

  • 00:15:00 演讲者解释了使用 Python 设置回溯测试和盈透证券实时交易所需工具所需的步骤。第一步是下载并保存必要的工具,包括盈透证券、IP官方终端和Python。演讲者还提供了教程、文档和社区论坛的链接,为用户提供有用的信息。然后,演讲者演示了如何配置 WS 和 IB 网关,然后演示如何使用 Anaconda 打开 Python 环境并运行 Python 代码。本节最后提供了有关组织窗口以提高工作效率的提示。

  • 00:20:00 演讲者通过打开名为“Romina Eva”的文件解释了通过 Python 使用 Interactive Brokers 所需的初始步骤。用户需要找到自己的帐户代码,然后更改文件中的帐户代码以反映自己的帐户。演讲者演示了如何选择 Python 代码并运行它,然后演示如何初始化交易者并显示账户余额、现金价值、投资组合价值和挂单。用户可以使用混合路径交易股票、期权、期货、外汇和其他合约。如果用户下了订单,该订单无法被操纵,那么它将被列出并带有一个许可 ID。

  • 00:25:00 演示者演示了如何在Python和盈透证券之间运行桥梁来获取实时和历史价格数据。通过注释/注释特定代码行,演示者展示了如何检索实时或历史数据并以简单的方式将其打印出来。然后,演示者解释了代码结构和 Python 代码中使用的三个基本函数,包括在代码执行开始时运行的“初始化”函数,以及在其中做出交易决策并在每次运行时运行的“处理数据”函数。默认2秒。

  • 00:30:00 演讲者解释了如何使用 Python 与盈透证券做出交易决策。通过配置代码,用户可以设置固定的时间表,每秒、每小时、每天或在特定时间做出决策。此外,演讲者还介绍了创建交易决策所必需的三个基本功能,包括初始化功能、处理数据和下订单。为了演示该过程,演讲者提供了示例代码,用于获取历史数据并打印 I Spears ETF 的要价。使用Panda的数据框架,演讲者能够检索历史数据并打印出来,进一步演示了如何使用Python来做出交易决策。

  • 00:35:00 演讲者讨论了如何使用全局变量、实时价格下订单以及购买股票的示例。演讲者还介绍了如何使用Interactive Brokers搜索证券,添加美国主要市场、价格超过100美元等过滤器,并使用猫扫描结果功能获取相关信息。然后,他解释了构建算法策略的步骤,其中包括识别合约、使用句柄数据或计划函数进行交易决策的频率、请求历史数据以及选择订单类型。演示者提供了每日收盘回归策略的示例,该策略涉及根据前一天的收盘价做出交易决策。他还定义了一个计划函数,每天在特定时间运行,以触发做出决策和采取行动的日常函数。

  • 00:40:00 该视频介绍了两个 Python 交易策略示例。第一个例子使用基于两天收盘价的基本策略,如果今天的收盘价大于昨天,则卖出所有头寸,否则,买入 SPY。然后对代码进行了解释,并且非常简单。然后,视频转向回溯测试的概念,并详细介绍了移动平均线交叉策略的更高级示例。讨论了将策略应用于历史数据以了解其对贸易结果的估计程度的过程。这个策略的代码已经解释过了,而且还是很简单。该视频还解释了如何检索和处理这些数据,以及如何分析测试结果并在投资组合价值中查看它们。

  • 00:45:00 演讲者讨论了使用 Python 与盈透证券进行回测和实时交易的过程。他们首先解释了每分钟运行处理数据进行测试的默认模式以及历史数据注入计划的需要。然后,演讲者解释了如何向代码提供每分钟和每日数据。它们还介绍了如何告知盈透证券回测的时间范围和频率。演讲者演示了运行回测器、检索和管理帐户信息以及如何检查输出文件夹中的帐户余额和现金价值的代码示例。

  • 00:50:00 演讲者讨论了用户提供历史数据对提高代码性能的好处。演讲者解释说,出于调试目的,每次测试都需要来自盈透证券 (IB) 的精确模拟数据,但请求大量信息是不必要的,而且会浪费大量时间。有时,只需要一部分历史数据,提供随机数据就足够了。这可以极大地提高代码的性能。演讲者演示了如何从本地 CSV 文件提供历史数据以及如何指定所需的时间范围和所需数据类型。此外,演讲者还展示了如何通过指定自定义时间列表并使用“渲染”数据提供程序来更快、更高效地运行测试。

  • 00:55:00 演讲者讨论了性能分析以及如何使用它来分析算法交易策略的性能。首先,需要历史数据来测试和完善您的代码,演讲者解释了如何使用性能分析图表来计算夏普比率等变量来帮助完成此过程。一旦您对回溯测试的结果感到满意,您就可以切换到模拟账户,根据真实的市场条件运行您的策略。最后,演讲者演示了如何使用I Bridge PY处理多个账户,这对于基金经理来说是一个重要的功能。总体而言,平均值和软件灵活且易于使用,使其成为算法交易的强大工具。
Backtesting and live trading with Interactive Brokers using Python.
Backtesting and live trading with Interactive Brokers using Python.
  • 2019.11.15
  • www.youtube.com
This is your go-to guide to backtesting with Interactive Brokers and going live with your trading strategy. In this session, we have Dr Hui Liu (Faculty, EPA...