算法交易中的Python - 页 16

 

IBridgePy 的最新回测功能 作者:Hui Liu 博士 - 2019 年 8 月 9 日


IBridgePy 的最新回测功能 作者:Hui Liu 博士 - 2019 年 8 月 9 日

iBridgePy 的创建者 Hui Liu 博士详细概述了 iBridgePy 提供的最新回测特性和功能。他首先讨论 iBridgePy 的基础功能,并解释构建算法交易策略所涉及的基本步骤。

刘博士重点介绍了iBridgePy的回测系统,并给出了两个示例代码来演示其用法。第一个示例代码利用盈透证券的历史数据,而第二个示例代码说明了用户如何通过提供自己的历史数据来改善回测体验。他强调分析回测性能以确定未来改进领域的重要性。

在演讲中,刘博士介绍了 Hybrid Pie 功能,该功能允许用户交易顾问经纪人提供的各种证券或商品,并同时管理多个账户。他强调了投资顾问的好处,例如在回溯测试期间执行多种交易策略和运行咨询算法。

为了与经纪商联系并检索实时数据,刘博士演示了如何在 iBridgePy 内的不同文件之间切换,例如“示例显示头寸”、“示例实时价格”和“获取历史数据”。用户可以自定义帐户代码、文件名并访问帐户余额和挂单。 iBridgePy 中的初始化函数声明全局变量,用户可以利用代码框并通过报告混合包版本来寻求 iBridgePy 团队的帮助。刘博士还提供了关闭IBGateway和打开TWS交易工作站的指导。

演讲者涵盖了 iBridgePy 中的关键函数,从代码开头运行的初始化函数开始。做出交易决策的处理数据功能可以安排为每分钟运行一次或以可配置的时间间隔运行。用户可以利用调度功能来进行事件调度,而不需要处理数据。可以使用 show_real_time_price 函数访问特定证券的实时价格,而可以使用 request_historical_data 函数检索历史数据。要购买或出售证券,请使用 place_order 函数。刘博士提供了股票筛选功能的现场演示,展示了其功能。

刘博士讨论了 iBridgePy 中的股票筛选功能,该功能使用户能够根据社交媒体情绪和价格搜索股票。用户可以定义其搜索参数,例如仪器类型、位置代码和扫描代码。举例使用社交情绪网作为扫码,搜索价格在100美元以上的美国主要股票。演讲者演示了股票筛选器的实际操作,列出了最活跃的股票列表,并强调社交媒体情绪如何提供对股票受欢迎程度的洞察。他最后强调了在构建算法交易策略时选择合约和制定风险管理指南的重要性。

刘博士解释了使用 iBridgePy 构建算法交易策略的基本步骤。他讨论了股票的选择、确定交易决策的时间间隔、通过历史数据计算技术指标、选择订单类型以及处理异常。作为一个例子,他提出了一种简单的回归策略,该策略基于手动输入 SPY 合约并使用每日收盘价做出交易决策。示例代码包括计划函数和每日函数来做出交易决策。

刘博士深入研究了 iBridgePy 的回测功能,强调检索历史数据并利用 pandas 数据框架分析证券收盘价的能力。他演示了使用移动平均线交叉的趋势策略的示例代码,并解释了回测的基本原理。回测涉及实施基于历史数据的实践策略,以告知交易决策并根据历史数据测试其性能。他还强调了句柄数据函数的替代用途,用于控制函数执行的时间,为基于美国市场开盘和收盘时间的预定函数提供选项。

刘博士提供了对 iBridgePy 回测系统和所涉及流程的见解。他解释说,在使用 iBridgePy 的回溯测试模式中,所使用的时间胶囊或烛台与实时交易非常相似。每个烛台包含诸如开始时间、开盘价、最高价、最低价、收盘价和交易量等信息。然而,时间胶囊不包括卖价或买价,因为在回溯测试中无法准确建模价差。

刘博士提到,回测模式支持市价单、限价单和止损单,但目前不支持追踪单,因为追踪单可能无法提供有意义的结果。回测期间的交易详细信息存储在输出文件夹中,文件名包含回测开始的时间。

接下来,刘博士解释了在 iBridgePy 中设置回测期的基本流程。用户可以设置检索特定股票历史数据的时间范围,并指定时间点频率为一分钟、一小时或一天。可以使用 SPY 或 AAPL 等代码检索旧合约的历史数据。代码应在最晚的时间点专门运行,确保所需时间范围内的数据可用。默认情况下,现金从 10,000 美元起。刘博士继续演示如何使用演示来显示账户余额和仓位。

在演讲中,刘博士演示了如何使用 iBridgePy 的回测功能来模拟收盘价回归的演示代码。他展示了如何使用基于历史数据的实时价格以及如何运行目标以观察其性能。他还展示了如何更改间隔以每小时而不是每分钟运行代码。总的来说,该视频提供了如何利用 iBridgePy 的回测功能进行投资策略的有用演示。

刘博士接着讨论了使用 iBridgePy 改进回测过程的重要性。他建议避免重复运行相同的代码来获取完全相同的数据,因为这会浪费资源并违反 IB 间距规则。相反,他建议使用具有相同文件名的已定义计划来获取历史数据,从而减少需要执行的代码量。另一个建议是使用用户提供的历史数据,而不是从盈透证券获取数据,这可以使回测过程更加高效。

此外,刘博士还介绍了iBridgePy提供本地数据进行回测的功能。用户可以提供包含所有必要列的 CSV 文件,例如开盘价、最高价、收盘价、交易量等。iBridgePy 将从本地文件中提取数据并相应地模拟回测。如果该卷不可用,用户可以输入“-1”作为值。该功能保证了用户个人策略的准确结果并提高了模拟效率。

Liu 博士还重点介绍了 iBridgePy 中的其他回测功能,例如自定义时间生成器以及使用随机数测试代码的能力。他演示了如何使用 Python 包和自定义列表创建时间序列,以及如何使用随机数而不是实时价格来测试代码。他进一步讨论了性能分析的重要性,并介绍了使用日志文件来跟踪和分析回测性能。这些新功能提供了更快、更有效的方法来测试和分析 iBridgePy 中的代码。

此外,刘博士还讨论了 iBridgePy 回测的其他功能,包括余额日志(提供有关投资组合价值和现金的更多详细信息)以及交易日志。他演示了如何使用夏普比率等指标和 matplotlib 包创建图表来可视化和分析回测结果。刘博士指出,一旦用户对模拟账户的结果感到满意,他们就可以切换到真实账户进行真实交易。

在网络研讨会的问答环节中,刘博士回答了与会者关于 iBridgePy 最新功能的各种问题。其中一个问题涉及使用 iBridgePy 管理其他人的投资账户。刘博士解释说,个人可以成为投资组合顾问,并在盈透证券设立管理账户,以使用 iBridgePy 管理其他人的投资账户。

提出的另一个问题是关于下载特定策略的示例代码。刘博士建议与会者可以从 iBridgePy 网站或访问 iBridgePy 社区论坛获取必要的示例代码。此外,他还向与会者提供有关如何获取历史期权价格和希腊数据进行回溯测试的建议。刘博士提到,个人可以从盈透证券获取历史期权价格,并编写Python代码来利用希腊数据(如果他们可以访问的话)。

一位与会者询问 iBridgePy 是否支持 API 来检索监视列表。刘博士澄清,目前,iBridgePy 没有提供特定的 API 来获取监视列表。不过,他建议用户可以在盈透证券平台内手动创建观察列表。

最后,刘博士在结束网络研讨会时鼓励与会者在 iBridgePy 社区论坛上发布任何进一步的问题或向他发送电子邮件。他向与会者保证,将根据要求提供演示文稿的录音。刘博士还提醒用户访问iBridgePy网站下载该软件并访问API文档。他对参与者在整个网络研讨会上的出席和关注表示感谢。

  • 00:00:00 Hui Liu博士讨论了iBridgePy的最新回测功能,并提供了iBridgePy的快速概述。他回顾了 iBridgePy 的基础功能,并解释了构建交易策略算法的基本步骤。然后他重点介绍了iBridgePy回测系统,并提供了两个用于回测的示例代码。第一个示例使用盈透证券的历史数据,第二个示例讨论如何通过使用用户提供的历史数据来改善回测体验。刘博士最后谈到了分析回测性能对于未来改进的重要性。

  • 00:05:00 Hui Liu 博士讨论了 IBridgePy 的最新回测功能,包括交易顾问经纪商提供的任何证券或商品以及使用 Hybrid Pie 功能同时管理多个账户的能力。投资顾问还可以受益于 IBridgePy 执行多种交易策略并在回溯测试期间运行咨询算法的能力。准备 Hybrid Pie 功能的说明非常简单,包括下载 IBridgePy、通过盈透证券等经纪商创建纸质或真实账户、安装 IB 软件(轻量级 IB 网关或基于 GUI 的交易者工作站),并使用以下命令对其进行配置IBridgePy。

  • 00:10:00 刘辉博士演示了如何使用IBridgePy连接经纪商并通过在“示例显示持仓”、“示例实时价格”和“获取历史数据”等不同文件之间切换来获取实时数据”。用户可以更改帐户代码和文件名,并可以检查帐户余额和挂单。初始化函数在 IBridgePy 中声明全局变量,用户可以使用代码框并通过报告混合包版本向 IBridgePy 团队寻求帮助。最后,刘辉博士展示了如何关闭IBGateway并打开TWS交易工作站。

  • 00:15:00 演讲者快速介绍了如何连接到 TWS,然后解释了 iBridgePy 中的关键功能。初始化函数被声明为在代码开头运行,而处理数据函数是做出交易决策的地方,并且每分钟或以可配置的时间间隔运行。为了安排事件,用户可以使用调度功能而不是处理数据。可以使用 show_real_time_price 函数访问特定证券的实时价格,并使用 request_historical_data 函数检索历史数据。 place_order 函数用于买卖证券,演讲者还提供了股票筛选功能的现场演示。

  • 00:20:00 iBridgePy 的创建者 Hui Liu 博士演示了如何使用股票筛选功能根据社交媒体情绪和价格搜索股票。他解释说,用户可以通过指定仪器类型、位置代码和扫描码来定义扫描仪的搜索参数,并以使用社交情绪网作为扫描码来搜索价格在 100 美元以上的美国主要股票为例。随后,刘博士在现场市场上演示了股票筛选器,显示了最活跃股票的列表,以及社交媒体情绪如何深入了解某些股票的受欢迎程度。最后,他概述了构建算法交易策略的一些关键考虑因素,包括选择要交易的合约以及如何设置风险管理指南。

  • 00:25:00 Hui Liu 博士讨论了使用 iBridgePy 构建算法交易策略的基本步骤,然后是一个简单的回归策略示例。制定策略的步骤包括选择股票、确定交易决策的时间间隔、通过历史数据计算技术指标、选择订单类型以及处理异常。简单的回归策略涉及手动输入 SPY 合约并根据每日收盘价做出交易决策。该策略的示例代码包括计划函数和用于做出交易决策的每日函数。

  • 00:30:00 Hui Liu博士讨论了iBridgePy的最新回测功能,包括检索历史数据和使用pandas数据框分析证券收盘价的能力。他演示了使用移动平均线交叉的趋势策略的示例代码,并解释了回溯测试的基本原理,其中包括通过考虑过去的数据来为交易决策提供信息,然后根据历史数据对其进行测试以查看其是否产生成功的结果来实施实践策略。 Liu还指出,传统的处理数据功能可用于控制功能何时运行,为依赖美国市场开盘和收盘时间的预定功能提供了替代方案。

  • 00:35:00 Hui Liu博士解释说,在使用Ibridgepy的回溯测试模式中,所使用的时间胶囊或烛台与实时交易非常相似。每个烛台包含诸如开始时间、开盘价、最高价、最低价、收盘价和交易量等信息。然而,时间胶囊不包括卖价或买价,因为价差无法在回溯测试中很好地建模。数据可以由 IB 提供,或者用户可以以任何格式提供自己的数据源,只要 Python 可以读取它并将其转换为 pandas 数据框即可。回测模式目前支持市价单、限价单和止损单,但不支持追踪单,因为追踪单不准确且无法提供有意义的结果。最后,交易详细信息存储在输出文件夹中,文件名包含回测开始的时间。

  • 00:40:00 Hui Liu博士讲解了iBridgePy回测系统的基础知识。当模拟交易日开始时,系统计算投资组合价值并将其记录在余额日志中。然后,他演示了如何使用盈透证券的历史数据并回测一种称为“收盘价回归”的策略。为此,他选择文件名并修改一些参数,例如数据提供程序名称和运行模式。他还解释了历史数据摄取计划的概念,即用户告诉 iBridgePy 他们希望从盈透证券接收哪些数据以在其策略中使用。要运行回测,用户需要每日柱线历史数据和一分钟数据来检索市场收盘前一分钟的市场收盘价格信息。

  • 00:45:00 Hui Liu博士解释了在iBridgePy中设置回测期的过程。可以设置时间范围来检索特定股票的历史数据,时间点频率可以设置为一分钟、一小时或一天。可以使用 SPY 或 AAPL 代码检索旧合约的历史数据。代码应在最近的时间点特定地运行,并且应在适当的时间范围内提供数据。默认现金从 10,000 美元起,Hui 继续演示如何使用演示来显示账户余额和头寸。

  • 00:50:00 Hui Liu博士演示了如何使用IBridgePy的回测功能来模拟收盘价回归的演示代码。他展示了如何使用基于历史数据的实时价格以及如何运行目标以查看其性能。他还展示了如何更改每小时而不是每分钟运行代码的时间间隔。总的来说,该视频提供了如何使用 IBridgePy 的回测功能进行投资策略的有用演示。

  • 00:55:00 Hui Liu 博士讨论了使用 iBridgePy 改进回溯测试过程。第一个建议是避免重复运行相同的代码来获取完全相同的数据,这会浪费资源并违反 IB 间距规则。相反,历史数据是使用具有相同文件名的已定义计划来获取的,因此减少了需要运行的代码量。第二个建议是使用用户提供的历史数据,而不是从IB中获取数据,使得回测过程更加高效。

  • 01:00:00 刘辉博士讨论了IBridgePy中提供本地数据进行回测的功能。用户可以提供一个包含所有必要列的 CSV 文件,例如开盘价、最高价、收盘价、交易量等,而不是从 ID 服务器获取数据。IBridgePy 将从本地文件中提取数据并相应地模拟回测。但是,如果该卷不可用,用户可以输入“-1”作为值。此外,此功能还可以为用户的个人策略提供准确的结果,并可以实现高效的模拟。

  • 01:05:00 Hui Liu 博士讨论了 IBridgePy 的最新回测功能,例如自定义时间生成器和使用随机数测试代码的能力。他演示了如何使用 Python 包和自定义列表创建时间序列,以及如何使用随机数而不是实时价格来测试代码。他还讨论了使用日志文件来跟踪和分析回测性能的性能分析。总体而言,这些新功能提供了更快、更有效的方法来测试和分析 IBridgePy 中的代码。

  • 01:10:00 Hui Liu博士讨论了iBridgePy回测的其他功能,包括显示投资组合价值和现金更多详细信息的余额日志以及交易日志。他还演示了如何使用夏普比率和 matplotlab 包创建图表来可视化和分析回测结果。刘博士指出,一旦用户对纸质账户的结果感到满意,他们就可以切换到真实账户。

  • 01:15:00 刘辉博士回答了网络研讨会与会者关于 iBridgePy 最新功能的各种问题。他提到,个人在成为投资组合顾问并在 IB 设立管理账户后,可以通过 iBridgePy 管理其他人的投资账户。与会者还询问如何下载该策略的示例代码并获取历史期权价格和希腊数据以进行回溯测试。 Liu建议,个人可以从IB获取历史期权价格,并编写Python代码来使用希腊数据(如果有的话)。最后,他提到 iBridgePy 不支持获取观察列表的 API,但个人可以在 IB 中手动创建一个。

  • 01:20:00 Hui Liu 博士鼓励与会者在 iBridgePy 社区论坛上发布任何进一步的问题或给他发送电子邮件,从而结束了网络研讨会。他还提到,将根据要求提供演示文稿的录音,并且他将很快发布 iBridgePy 教程,与会者可以获得必要的代码。刘博士还提醒用户,可以访问iBridgePy网站下载该软件并查看API文档。他最后感谢与会者的出席和关注。
IBridgePy’s Latest Backtesting Features By Dr. Hui Liu - August 9, 2019
IBridgePy’s Latest Backtesting Features By Dr. Hui Liu - August 9, 2019
  • 2019.09.11
  • www.youtube.com
Session outline:- IBridgePy's cornerstone functions.- Basic steps to build a trading strategy.- Backtest strategies using IB's historical data.- Backtest str...
 

使用 Python 在印度市场进行程序化交易 |风筝连接 API |算法交易 Zerodha


使用 Python 在印度市场进行程序化交易 |风筝连接 API |算法交易 Zerodha

演讲者介绍了 Kite Connect,这是一个允许用户使用 Python 以编程方式访问其交易账户的平台。他们解释说,Kite Connect 背后的动机是为了应对提高印度市场参与度的挑战。他们引入了经纪即服务的概念,使初创公司能够使用 Kite Connect 的 API 为其客户构建定制的交易体验。反过来,这旨在吸引接下来的 10-2000 万印度人投资市场。演讲者还强调 Zerodha 是印度领先的经纪公司,拥有超过 175,000 名客户,对印度股市成交量做出了重大贡献。

演讲者深入探讨了 Kite Connect 的起源,该平台的开发目的是为印度数千名客户提供一个简单且价格实惠的在线交易平台。认识到印度大量软件工程师往往缺乏发挥其技能的机会,Kite Connect 为软件工程师提供了 API 来回测策略和管理职位。虽然该平台对 API 使用收取费用,但他们还为新注册的开发人员提供折扣代码。然后,演讲者介绍了一位同事,他继续演示使用 Kite Connect 构建自定义交易平台是多么容易。该演示的重点是下订单、检索持仓并最终制定交易策略。

演讲者提供了如何获取 Kite Connect API 的 API 密钥的分步指南,这对于使用 Python 在印度市场进行程序化交易至关重要。他们还解释了回发 URL 的概念,该 URL 用于通知用户订单和交易确认的状态。此外,演讲者还强调了安装 Kite Connect Python 库的重要性,该库只需几行代码即可简化 API 的使用。他们讨论了交易应用程序的基本功能、应用程序开发过程中请求响应和处理异常的重要性,以及安全身份验证对于任何交易应用程序的重要性。

接下来,演讲者解释了如何使用 Zerodha 的 Kite Connect API 将 Python 用于印度市场的程序化交易。该过程首先使用 API 密钥重定向到 Kite 平台并登录用户帐户。登录后,系统会发回请求令牌,然后使用该请求令牌对用户进行身份验证并获取访问令牌。演讲者提供了使用 Kite Connect API 的实践演示,包括导入库、存储 API 密钥和获取请求令牌等步骤。最后,将请求令牌与 API 密钥进行哈希处理以获得访问令牌。

该视频继续讨论如何使用 Python 和 Kite Connect API 在印度市场进行程序化交易。它逐步介绍了设置访问和公共令牌的过程,然后使用这些令牌与 Kite Connect API 建立连接以获取流式市场信息。视频介绍了如何下单,包括指定交易代码、数量、交易类型、订单类型和产品。它还介绍了如何检索订单详细信息、持仓和头寸。演讲者强调,除了视频中涵盖的内容之外,还有许多其他 API 调用,但 Kite Connect 网站上都有详细记录。

演讲者深入探讨了在印度市场使用 Kite Connect API 进行程序化交易时工具的重要性。工具用于处理各种股票代码和合约,它们需要唯一的工具 ID 来订阅或取消订阅流数据。演讲者解释说,仪器 ID 可以从综合 CSV 文件中获取,也可用于访问历史数据。讨论了WebSocket流式传输,包括不同的数据接收模式,例如LTP模式、代码模式和全文模式。演讲者提供了一个示例,说明流数据如何通过 WebSocket 工作以及如何使用回调来接收数据。此外,演讲者还解释了回发的使用及其实现所需的公共 URL。

演讲者介绍了如何使用历史数据实施交易策略,并强调使用 Kite Connect API 下订单的便捷性。他们讨论了初创公司如何拥有一个端点来接收来自 Kite 服务器的回发,从而启用成功或失败订单的通知等。演示了使用API获取历史数据的流程,重点是在请求数据之前订阅Kite的历史数据功能。最后,提出了一个基本的移动平均策略,以说明使用 Kite API 下订单的简单性。

演讲者分享了他们自己使用 Python 和 Kite Connect API 在印度市场进行程序化交易的策略。该策略涉及计算移动平均线并在出现交叉时进行交易。他们展示了下单功能,强调实际交易只需要一行代码。虽然承认他们的策略可能不是最好的,但他们强调其易于实施和针对不同交易符号和交易类型进行修改。演讲者提到 Kite Connect API 是开源的,允许在创建交易平台时进行定制和使用。他们还提到 Kite Connect 网站上提供了大量文档和活跃论坛,可以为用户解决任何疑问或问题提供支持。

量化学院(QuantInsti)的首席执行官介绍了他们的公司,该公司自2010年以来一直积极参与算法和量化交易。他们为全球数千名学生提供培训计划和活动。首席执行官表示同意在网络研讨会中讨论的交易策略中使用 Python 进行编程,并对无法回答所有问题表示歉意,但向观众保证他们的团队正在努力调查和解决所有问题。

演讲者讨论了 QuantInsti 的 EPAT 计划的影响,这是一个为期六个月的综合在线课程,专注于定量和算法交易。该计划涵盖广泛的主题,包括统计学、计量经济学、金融计算、Python、MATLAB、回测工具和各种交易策略范例。他们强调,该课程是由来自世界各地的一群经验丰富的从业者教授的。该项目的毕业生为进入劳动力市场做好了充分的准备,QuantInsti 为那些有兴趣建立自己的交易柜台的人提供职业服务和指导。该项目强调其全球影响力,校友遍布六大洲 30 多个国家。

演讲者邀请观众参加定于 2016 年 11 月 3 日下午 6:30(美国标准时间)即将举行的关于算法交易的信息会议。他们鼓励观众在 Facebook、Twitter、LinkedIn 和 YouTube 等社交媒体平台上关注该公司,在那里他们可以找到教育资源并参与讨论。他们主动向感兴趣的参与者发送链接,并邀请他们通过 Borninstorms 上提供的表格提交任何疑问。最后,演讲者最后表示他们现在将开始回答听众的问题。

  • 00:00:00 演讲者介绍了 Kite Connect 并解释了它如何使用户能够使用 Python 以编程方式访问其交易账户。 Kite Connect 背后的动机是为了解决提高印度市场参与度的挑战,并引入了经纪即服务的概念。初创公司可以使用 Kite Connect 的 API 为其客户打造利基用户体验,这将有助于吸引未来 10-2000 万印度人投资该市场。演讲者还提到 Zerodha 提供印度最好的平台,拥有超过 175,000 名客户,占印度股市成交量的很大一部分。
    |
  • 00:05:00 演讲者解释了 Kite Connect 的起源,该平台的开发目的是为印度成千上万的客户提供一个简单且价格实惠的在线交易平台。 Kite Connect 认识到印度拥有大量软件工程师,但他们往往没有机会使用自己的技能,因此向软件工程师提供了 API,以回测策略和管理职位。该平台对使用其 API 收取费用,但也向新注册的开发人员提供折扣代码。然后,演讲者交给另一位同事演示使用 Kite Connect 构建自定义交易平台是多么容易,其目的是下订单、持有头寸并最终制定策略。

  • 00:10:00 演讲者提供了如何获取 Kite Connect API 的 API 密钥的分步指南,这对于使用 Python 在印度市场进行程序化交易至关重要。演讲者还解释了回发 URL,该 URL 用于通知用户订单和交易确认的状态。此外,演讲者还强调了安装 Kite Connect Python 库的重要性,该库是 Kite Connect API 的包装器,旨在通过几行代码简化 API 的使用。演讲者还阐述了交易应用程序基本功能的细分以及交易应用程序开发过程中请求响应和异常的重要性。这里还解释了登录流程,强调了安全身份验证对于任何交易应用程序的重要性。

  • 00:15:00 演讲者解释了如何使用 Python 通过 Zerodha 的 Kite Connect API 在印度市场进行程序化交易。第一步是使用 API 密钥重定向到 Kite 平台并登录用户帐户。登录后,将发送回请求令牌,然后使用该请求令牌对用户进行身份验证并获取访问令牌。演讲者接着提供了使用 Kite Connect API 的实践演示,包括导入库、存储 API 密钥以及获取请求令牌。最后,请求令牌用于通过将其与 API 密钥进行散列来获取访问令牌。

  • 00:20:00 该视频讨论了如何使用 Python 和 Kite Connect API 在印度市场进行程序化交易。该视频演示了设置访问令牌和公共令牌,然后使用这些令牌与 Kite Connect API 建立连接以获取流信息的过程。该视频还解释了如何下订单,包括交易代码、数量、交易类型、订单类型和产品等必要组成部分。最后,视频介绍了如何检索订单详细信息以及持仓和头寸。该视频强调,除了视频中涵盖的内容之外,还有许多其他 API 调用,但它们在 Kite Connect 网站上都有详细记录。

  • 00:25:00 演讲者讨论了使用 Kite Connect API 通过 Python 在印度市场进行程序化交易时工具的重要性。工具用于处理各种股票代码和合约,它们需要唯一的工具 ID 来订阅或取消订阅流数据。演讲者解释说,仪器 ID 可以从巨大的 CSV 文件中获取,也可用于访问历史数据。演讲者还讨论了 WebSocket 流和接收数据的不同模式,例如 LTP 模式、代码模式和全文模式。演讲者提供了一个示例,说明流数据如何通过 WebSocket 工作以及如何使用回调来接收数据。最后,演讲者讨论了回发的使用以及实现它的公共 URL 的必要性。

  • 00:30:00 演讲者讨论了使用历史数据实施策略以及使用 Kite Connect API 下订单的便捷性。他解释了初创公司如何拥有一个端点来接收来自 Kite 服务器的回发,该端点可用于触发成功或失败订单的通知等。他还演示了如何使用API获取历史数据,并强调在请求历史数据之前需要订阅Kite的历史数据功能。最后,他提出了一个基本的移动平均线策略,以说明使用 Kite API 下订单是多么简单。

  • 00:35:00 演讲者解释了他们使用 Python 和 Kite Connect API 在印度市场进行程序化交易的策略。该策略涉及计算移动平均线并在出现交叉时进行交易。下单功能如图所示,一行代码即可实际交易。演讲者强调,虽然他们的策略不是最好的,但很容易针对不同的交易符号和交易类型进行实施和修改。 Kite Connect API 是开源的,允许在创建交易平台时进行修改和使用。演讲者还提到了 Kite Connect 网站上提供的大量文档和活跃论坛,可帮助解决任何疑问或问题。

  • 00:40:00 Quantity首席执行官介绍了他们的公司,该公司自2010年以来一直涉足算法和量化交易,并为全球数千名学生提供培训计划和活动。他们提到他们与网络研讨会中讨论的交易策略中 Python 的编程使用保持一致,并对无法回答所有问题表示歉意,但向观众保证他们的团队正在努力调查和解决所有问题。

  • 00:45:00 演讲者讨论了 QuantInsti 的 EPAT 计划的影响,该计划是一个为期六个月的在线课程,专注于定量和算法交易。该计划涵盖广泛的主题,包括统计学、计量经济学、金融计算、Python、MATLAB、回测工具和各种交易策略范例。该课程由十多名具有丰富行业经验的国际从业者教授。该项目的毕业生具备进入职场的充分条件,QuantInsti 提供各种职业服务,并为那些希望建立自己的交易柜台的人提供免费指导。该项目已覆盖全球,校友遍布六大洲 30 多个国家。

  • 00:50:00 演讲者邀请观众参加即将于 2016 年 11 月 3 日下午 6:30(美国标准时间)举行的关于算法交易的信息会议。他还鼓励他们在 Facebook、Twitter、LinkedIn 和 YouTube 等社交媒体平台上关注公司,在那里他们可以找到大量的教育资源并参与讨论。演讲者还主动向感兴趣的参与者发送链接,并邀请他们填写有关 Borninstorms 的任何查询表格。最后,他总结说,他们现在将开始回答观众的问题。
Algo Trading Zerodha | Algo Trading in Indian Markets with Python | Kite Connect API
Algo Trading Zerodha | Algo Trading in Indian Markets with Python | Kite Connect API
  • 2016.10.18
  • www.youtube.com
In this comprehensive tutorial on Algo Trading Zerodha in Indian markets, we explore the power of Zerodha's KiteConnect API and Python programming language t...
 

使用 Python 与盈透证券进行交易 |刘辉博士



使用 Python 与盈透证券进行交易 |刘辉博士

各位晚上好!欢迎参加由 Kuantan Ste. 主办的关于在线市场中实施算法交易策略的网络研讨会。我叫 Slow Me,是这里的高级项目经理。我们很高兴今天有来自世界各地的参与者加入我们,其中包括来自夏威夷的参与者,他们在一大早就设法加入我们。你们的热情确实令人鼓舞!

今天网络研讨会的尊敬的演讲者是 Hoyle Yu 博士,他是一位著名的作家和交易专家。于博士拥有令人印象深刻的背景,在美国股票和外汇市场拥有丰富的经验。他还开发了一个流行的Python交易平台,使交易者能够轻松实施他们的策略。于博士拥有弗吉尼亚大学博士学位和上海大学校友,为本次网络研讨会带来了丰富的知识。我们很荣幸他能和我们在一起。

在开始之前,让我简要概述一下今天的网络研讨会将介绍的内容。余博士将首先讨论使用盈透证券作为交易平台的优势。然后,他将深入研究使用 Python 进行交易的好处,并介绍他自己的工具 IBPY,该工具简化了盈透证券的交易。该网络研讨会将重点关注实时交易的关键方面,包括访问实时价格数据、检索历史数据和下订单。于博士还将介绍移动平均线交叉交易策略。

我们很高兴能有如此受人尊敬的演讲者和多元化的观众参加本次网络研讨会。我不再拖延,邀请 Hoyle Yu 博士发言并分享他使用 Python 和 IBPY 与盈透证券进行交易的专业知识。

今天,我将讨论使用 Python 与盈透证券进行交易,特别是利用我开发的工具 IBPY。在我们深入了解细节之前,让我们首先探讨一下盈透证券作为交易平台的优势。

盈透证券是一家总部位于美国的知名经纪公司。它提供了几个关键优势,使其成为交易者的热门选择。首先,盈透证券为自动交易提供了强大的 API,这将是我们今天的主要关注点。该 API 使交易者能够高效且有效地执行他们的策略。其次,盈透证券提供具有竞争力的交易成本,使其成为交易者经济高效的选择。您可以在他们的网站上轻松比较他们的交易成本。根据我的个人经验,他们提供低成本的交易选择。第三,盈透证券拥有广泛的全球影响力,可进入 24 个国家的 100 多个市场中心。这种全球影响力使交易者能够进入各种国际市场,实现多元化并扩大交易机会。最后,盈透证券支持股票、期权、期货、外汇等多种产品,满足交易者的多样化需求。这些优势使盈透证券成为许多交易者的首选。

现在,让我们探讨一下使用 Python 进行交易的好处。 Python 提供了许多优点,特别是对于初学者来说。与 Java 或 C++ 等其他编程语言相比,Python 相对容易学习。通过一些入门知识,人们可以快速掌握Python的基础知识并开始实施交易策略。此外,Python 是一种开源语言,提供对大量模块和库的访问。这些资源可以轻松下载并集成到您的交易系统中,为数据分析、可视化和算法交易提供强大的工具。 Python 广阔的生态系统使其成为交易者灵活且多功能的语言。

现在我们了解了盈透证券和Python的优势,让我们来探讨一下IBPY的功能。 IBPY 通过为 Python 开发人员提供用户友好的界面来简化与盈透证券的交易。它简化了访问实时价格数据、检索历史数据和下订单等任务。 IBPY 弥合了盈透证券 API 和 Python 之间的差距,使交易者能够更轻松地实施他们的策略,而无需处理复杂的代码。

IBPY 的主要功能之一是它能够访问实时价格数据。交易者可以直接在 Python 环境中检索实时市场数据,包括股票报价、期权链和期货价格。这些实时数据使交易者能够根据最新的市场信息做出明智的决策,从而提高成功的机会。

IBPY还允许交易者检索历史数据,这对于回测和分析交易策略至关重要。通过访问历史价格数据,交易者可以评估其策略在不同市场条件下的表现,并进行数据驱动的调整。 IBPY 提供了一个方便的界面来获取各种工具、时间范围和数据类型的历史数据,从而实现彻底的分析和策略细化。

下订单是算法交易的另一个重要方面,IBPY 简化了这个过程。交易者可以使用IBPY API提交各种类型的订单,包括市价单、限价单和止损单。他们可以指定数量、价格和订单类型等参数,IBPY 无缝处理执行。此功能允许交易者自动化他们的交易策略,节省时间并降低手动错误的风险。

除了这些功能之外,IBPY还支持一系列高级交易操作。交易者可以检索账户信息、管理头寸和投资组合、监控账户活动并接收实时交易通知。这套全面的功能使交易者能够完全控制他们的交易活动并及时做出决策。

现在,让我们简单讨论一下移动平均线交叉交易策略,余博士将在稍后的网络研讨会中详细介绍该策略。该策略基于广泛应用于技术分析中的移动平均线的概念。移动平均线交叉策略涉及监控不同时间段的两条移动平均线,通常是短期移动平均线和长期移动平均线。当短期移动平均线穿越长期移动平均线上方时,会产生买入信号,表明潜在的上升趋势。相反,当短期移动平均线低于长期移动平均线时,就会产生卖出信号,表明潜在的下降趋势。该策略旨在捕捉趋势并利用价格变动。

总之,今天的网络研讨会将提供有关使用 Python 和 IBPY 与盈透证券进行交易的宝贵见解。 Hoyle Yu博士凭借其丰富的知识和专业知识,将指导我们了解盈透证券的优势、使用Python进行交易的好处、IBPY的功能以及移动平均线交叉交易策略。我们希望您认为本次网络研讨会内容丰富且引人入胜。话不多说,我把它交给余博士开始他的演讲。感谢大家今天加入我们,祝您网络研讨会愉快!

Trading with Interactive Brokers using Python | By Dr. Hui Liu
Trading with Interactive Brokers using Python | By Dr. Hui Liu
  • 2016.09.29
  • www.youtube.com
Dr. Hui Liu speaks about implementing algorithmic trading strategies in live markets with Interactive Brokers using Python. This webinar is perfect for begin...
 

使用 Python 自动交易 | Yves J. Hilpisch 博士主持的网络研讨会



使用 Python 自动交易 | Yves J. Hilpisch 博士主持的网络研讨会

Yves J. Hilpisch 博士是 Python Course Group 的创始人和管理合伙人,该公司专注于金融行业的 Python 和开源技术,特别是计算金融和金融数据科学领域。他撰写了多本有关 Python 和金融的书籍,并开发了一个名为 DataPark 的平台,该平台使数据科学家能够直接在浏览器中处理结构化数据。 Hilpisch 博士提到,他将在今年晚些时候发布一本新书,并介绍了 TPQ,一个由 Python 宽客和公司组成的全球网络。

网络研讨会首先,Hilpisch 博士承认他收到了越来越多有关在金融领域使用 Python 的询问,特别是来自旨在吸引 Python 开发人员参与金融相关项目的初创企业的询问。他宣布了一项新功能,允许用户从 Comm 交易平台下载历史数据,并概述了网络研讨会将涵盖的三个主要主题:下载历史数据、编码和回测交易策略,以及使用流数据进行算法交易。他强调数据和回溯测试在制定明智交易策略中的重要性。

Hilpisch 博士继续演示如何使用 Python 检索历史数据,重点以德国 DAX 指数为例。他解释说,用户可以从 100 多种不同的工具中进行选择,包括货币对和黄金或白银等商品。通过分块检索数据并将其附加到 DataFrame 对象,用户可以将数据存储在磁盘上以便高效检索,而无需重复下载。他强调了数据在回测中的作用及其在评估交易策略中的重要性。

接下来,Hilpisch 博士展示了一个基于两条移动平均线的简单交易策略的示例:一条较短的移动平均线(5 分钟)和一条较长的移动平均线(15 分钟)。他解释说,当较短的趋势高于较长的趋势时,会产生买入信号,而当较短的趋势低于较长的趋势时,会产生卖出信号。他澄清说,这不是投资建议,而是演示了如何使用向量化方法在 Python 中实施该策略,使代码高效简洁。

Hilpisch 博士继续使用之前计算的对数收益来计算交易策略的绩效。他解释了交易者如何通过将头寸乘以已实现的回报来确定其策略的绩效。他用一个在市场上做多并等待有一天的例子来说明计算。他强调了测试交易策略以避免样本偏差的重要性,并警告说,一个时期的积极表现并不能保证其他时期的成功。

然后讨论转向比较市场投资策略和基于分钟区块的基于趋势的投资信号策略之间的回报标准差。 Hilpisch 博士证明,基于趋势的策略表现出较低的回报标准差。他强调在实施自动交易策略时需要使用流数据,并介绍了用于生成实时图表的 Plotly API。

Hilpisch 博士演示了如何使用假 API 来生成实时格式的数据。尽管当前的演示并不是真正的流式传输,但他提到,通过实例化其他对象并将其嵌入 Jupyter Notebook 中,可以通过一些额外的努力来实现流式传输。他提供了一个 for 循环示例,该循环从 API 收集数据并在交互式可视化区域中实时逐点显示数据。

然后讨论使用实时或流数据的自动交易。 Hilpisch 博士介绍了“买入”和“卖出”功能,即下达市价订单并要求交易的单位数量。他提出了“TrendTrader”类,该类基于趋势跟踪策略,继承自Wonder API的streamer类。他解释了该类的自定义属性,例如空数据框和最初设置为 0 的刻度数。该类允许将第一和第二趋势定义为参数。

Hilpisch 博士解释说,当从流 API 接收到新数据时,即使数据偶尔到达,也会调用“onsuccess”方法。数据被附加到先前实例化的数据帧并转换为欧洲时区。根据观察计算短期和长期趋势,并据此采取适当的交易行动。他澄清说,虽然提出的策略可能不明智,但他的重点是说明该过程。他还讨论了“onerror”方法,该方法处理流处理过程中可能发生的任何错误并断开与 API 的连接。

总之,Hilpisch 博士展示了使用 Python 实现自动交易策略。他演示了 Python 程序如何根据移动平均线的比较自动生成买卖订单。他强调,成功的算法交易需要金融和技术技能的结合、对市场的深刻理解、对大数据统计的熟练程度以及自动化交易流程的能力。该网络研讨会为有兴趣获得算法交易职业所需知识和技能的个人提供教育资源。

  • 00:00:00 Yves J. Hilpisch 博士进行了自我介绍并提供了一些有关其工作的背景信息。他是 Python Course Group 的创始人和管理合伙人,该集团专注于 Python 和金融行业使用的其他开源技术,特别是计算金融和金融数据科学领域。 Hilpisch 博士撰写了多本有关 Python 和金融的书籍,并开发了一个名为 DataPark 的平台,该平台允许数据科学家在浏览器中处理结构化数据。他简短地提到他的新书将于今年晚些时候出版,还提到了一个名为 TPQ 的 Python 宽客和公司全球网络的开始。

  • 00:05:00 Yves J. Hilpisch 博士在网络研讨会开始时讨论了他如何收到越来越多的询问,询问如何在金融领域最好地使用 Python,并强调许多初创企业都是希望吸引的特定受众人们为金融构建 Python。然后,Hilpisch 介绍了从 Comm 交易平台下载历史数据的新功能,并分享了网络研讨会将涵盖的三个主要主题,例如 1) 如何下载历史数据,2) 如何编码和回测交易策略,以及3)如何处理流数据——算法交易的关键要求。 Hilpisch 保持主题简单,并试图传达实现这些单个步骤所需的基本思想和步骤解释,并分享如何在没有数据和随后的回溯测试的情况下,您无法制定任何明智的交易策略。

  • 00:10:00 Yves Hilpisch 博士通过演示如何检索仪器的历史数据(特别是德国 DAX 指数)来讨论数据检索。用户可以从 100 多种不同的选项中选择一种工具,包括货币对和黄金或白银等商品。该命令生成一个包含两个观察值的 JSON 对象:开盘价、收盘价和出价。 Hilpisch 指出,由于每日两次观察不足以进行回溯测试,因此他将展示如何检索更长时间的数据。通过生成超过每日两次观察的数据集并将其存储在磁盘上,用户可以快速检索该信息,而无需花费时间重新检索它。

  • 00:15:00 Yves J. Hilpisch 博士演示了如何使用 Python 检索和存储金融市场数据。数据以块的形式检索并附加到 DataFrame 对象,然后以二进制格式存储。他强调了数据在回溯测试中的重要性以及数据如何帮助判断交易策略。此外,他还展示了一个基于两种不同趋势的简单交易策略的示例,以及如何计算对数收益作为后续业绩判断的基础。交易策略只是一个例子,他的演讲旨在演示可用于自动交易的 Python 工具和技术。

  • 00:20:00演讲者解释了一种简单的交易策略,该策略使用两条移动平均线(一条较短(5 分钟)和一条较长(15 分钟))来生成何时买入或卖出资产的信号。如果较短的趋势从下方穿越较长的趋势,则为买入信号;如果较短的趋势从上方穿越较长的趋势,则为卖出信号。演讲者警告说,这不是投资建议,并强调使用回测来了解该策略过去的表现。演讲者还展示了如何使用向量化方法在 Python 中实现该策略,使其高效且简洁。

  • 00:25:00 Yves J. Hilpisch 博士讨论了如何使用之前计算的收益来计算交易策略的绩效。通过将之前输入的头寸乘以已实现的回报,交易者可以确定其交易策略的表现。以在市场上投资多头并等待一天为例,交易者可以将其头寸乘以市场的每日回报。通过结合之前的头寸和当前的回报,交易者可以评估其交易策略在特定时间段内的表现,但要注意的是,积极的表现并不能保证每个时期都有效。他还对测试交易策略提出了警告,以避免样本内偏差以及该交易策略可能不是一个好的实施选择的可能性。

  • 00:30:00 Yves J. Hilpisch 博士讨论了市场投资策略与基于趋势的投资信号策略的回报标准差,两者均基于分钟区块。基于趋势的策略显示出较低的回报标准差,Hilpisch 博士强调了在实施自动交易策略时使用流数据的重要性。他演示了如何使用 Plotly API 生成实时图表,并讨论了对能够根据实时数据进行处理和做出交易决策的系统的需求。

  • 00:35:00 Yves J. Hilpisch 博士演示了如何使用假 API 实时生成与实际 API 格式相同的数据。数据被收集并显示在数据框对象中,可以使用交互式可视化区域对其进行可视化。虽然当前的演示并不是真正的流式传输,但 Hilpisch 博士指出,通过实例化其他对象并将其嵌入 Jupiter Notebook 中,可以付出更多努力来实现流式传输。他提供了一个 for 循环示例,该循环从 API 收集数据并在交互式可视化区域中实时逐点显示数据。

  • 00:40:00 Yves Hilpisch 博士讨论使用实时或流数据的自动交易。他介绍了两个函数“买入”和“卖出”,用于下达市价订单并需要交易的单位数量。用于交易的类是“TrendTrader”,它基于趋势跟踪策略。该类继承自Wonder API的streamer类,并包含自定义属性,例如空数据框对象和开始时设置为0的刻度数。第一和第二趋势也可以被定义为参数。

  • 00:45:00 Yves J. Hilpisch 博士讨论了当从流 API 接收到新数据时如何调用 onsuccess 方法,这些数据可能是零星出现的,而不是定期出现的。然后将数据附加到先前实例化的数据帧并转换为欧洲时区。两个趋势 t1 和 t2 是根据短期和长期观察计算的。如果短期趋势高于长期趋势并且交易者未投资,他们会购买指定数量的单位并将未投资标志设置为 false。相反,如果短期趋势低于或等于长期趋势并且交易者进行了投资,他们就会卖出。希尔皮什博士提到,虽然这种策略可能不明智,但他的重点是说明该过程是如何运作的。还讨论了 on error 方法,该方法捕获可能发生的任何错误并断开与 API 流的连接。

  • 00:50:00 Yves Hilpisch 展示了如何使用 Python 实施自动交易策略。他演示了 Python 程序如何根据 5 个和 15 个报价变动数据的平均值的比较自动生成买入和卖出订单。他强调,算法交易需要融合金融和技术技能、了解市场、大数据统计和自动化。该视频为对成功的算法交易职业所需的各种操作和技能感兴趣的人们提供了教育资源。
Automated Trading with Python | Webinar by Dr. Yves J. Hilpisch
Automated Trading with Python | Webinar by Dr. Yves J. Hilpisch
  • 2016.02.15
  • www.youtube.com
The video is a recording of the webinar "Automated Trading with Python" which was conducted on 10th February 2016. The webinar aimed at introducing the audie...
 

使用 Python 进行算法交易 - 简介



使用 Python 进行算法交易 - 简介

您好,欢迎回到关于交易的全新视频系列中的第一个视频。在本视频中,我们将探讨本世纪视频流的目的和内容。该视频系列的主要目标是让您全面了解算法交易。我们将涵盖从交易算法的基础知识到高级实施、测试和优化的所有内容。

该系列旨在帮助您在算法交易环境中学习和利用 Python 编程。我们将探讨各种主题,例如生成交易信号、实施策略、回溯测试以及在实时交易环境中部署算法。为了促进这一点,我们将向您介绍一个强大的算法交易平台,称为“联系平台”。

Contact Platform 是一个集成开发环境,使您能够创建、测试和部署交易算法。它提供了用户友好的界面并支持各种编程语言,包括我们将在本系列中广泛使用的 Python。您可以通过联系网站在线访问该平台或下载适用于 Windows 或 Mac 的软件。

为了配合该视频系列,我们创建了一个专门的 YouTube 页面,您可以在其中找到其他资源和代码示例。这些示例涵盖了一系列主题,包括集群技术、股票、债券、外汇、差价合约、期权等的脚本创建。无论您是初学者还是经验丰富的交易者,本系列都是深入研究算法交易的完美起点。

在将交易算法部署到实际交易场景之前,了解开发和测试交易算法的重要性至关重要。这是算法交易最耗时的方面之一。然而,我们通过提供欧洲股票期权和其他主要国际市场的免费历史市场数据以及高分辨率的分钟级数据,使您的工作变得更加轻松。这对于算法开发人员和研究人员来说将是宝贵的资源。

在整个系列中,我们将利用强大的库和工具进行机器学习、情绪分析和回溯测试。这些库,例如 Pandas 和 NumPy,在交易社区中广泛使用,对于我们的分析至关重要。通过利用这些库和联系平台,您将可以灵活地创建和测试各种交易策略。

在接下来的视频中,我们将逐步对交易算法进行编码。当我们讨论和实施不同的策略时,您将跟随我。此外,我将在我的 YouTube 频道和随附文章中分享补充材料,例如代码片段和视频。

在下一个视频中,我们将更深入地了解开发过程并探索交易算法的工作原理。请继续关注并加入我们进入算法交易世界的激动人心的旅程。

Algorithmic Trading Using Python - Introduction
Algorithmic Trading Using Python - Introduction
  • 2021.03.12
  • www.youtube.com
This is the first video of my algorithmic trading tutorial series in which you will learn everything you need to know to start writing your own trading bots ...
 

使用 Python 进行算法交易 #2



使用 Python 进行算法交易 #2

欢迎观看我们算法交易课程的第二个视频。在本视频中,我们将深入研究算法开发的过程,重点关注概念层面。我们将引导您完成从创意产生到实时部署的每一步,涵盖研究、实施、回溯测试和优化等基本方面。

算法开发过程从想法生成开始。我们将探索各种想法来源,包括市场观察、基本面分析、技术指标和定量模型。了解如何生成和完善交易想法对于开发成功的算法至关重要。

一旦我们有了一个有前途的想法,我们就会进入研究阶段。这包括收集相关数据、进行统计分析以及进行彻底的回测。我们将讨论数据质量的重要性以及它如何影响我们算法的可靠性。此外,我们将探索不同的绩效指标和风险衡量标准,以评估我们策略的有效性。

经过深入研究后,我们进入实施阶段。在这里,我们将交易想法转化为代码。我们将使用Python等编程语言编写可以分析数据、生成交易信号并自动执行交易的算法。您将了解编码最佳实践以及如何构建代码以实现可维护性和可扩展性。

一旦算法实现,我们就进入回测阶段。回测涉及使用历史数据模拟算法的性能。我们将讨论不同的回测方法,包括样本内和样本外测试,以验证算法的性能并评估其稳健性。

优化是算法开发的另一个关键步骤。我们将探索各种技术来微调我们的算法并优化其性能。这包括参数优化、敏感性分析和风险管理策略。通过优化我们的算法,我们的目标是提高他们的盈利能力并降低风险。

最后,我们将讨论算法的实时部署。我们将讨论实时交易环境中的市场数据连接、订单执行和风险管理等注意事项。了解实时部署的挑战和注意事项对于成功的算法交易至关重要。

在整个视频中,我们将提供见解和实用技巧来指导您完成算法开发过程。最后,您将全面了解如何有效地概念化、研究、实施、回测、优化和部署交易算法。

现在,让我们深入了解算法交易的迷人世界,并详细探索算法开发的过程。

Algorithmic Trading Using Python #2
Algorithmic Trading Using Python #2
  • 2021.03.19
  • www.youtube.com
In this 2nd video of this algorithmic trading course, you will learn all about the algorithm development process on a conceptual level. We will cover everyth...
 

如何使用支撑阻力位和 RSI 进行有利可图的货币交易




如何使用支撑阻力位和 RSI 进行有利可图的货币交易

在创建 RSI 交易策略时,发现识别超买和超卖区域的传统方法是无效的。相反,我们提出了一种更有效的方法,将支撑位和阻力位与 RSI 结合起来,以改善入场点。这种替代方法与经典交易教程中通常教授的内容相矛盾。然而,当使用 Python 进行测试时,结果更有希望。

要实施此策略,第一步是使用与相邻蜡烛相比表现出极高或极低值的分形或蜡烛来确定支撑位和阻力位。要比较的蜡烛数量是代码中的变量,允许比较范围的灵活性。此外,可以应用一个条件来考虑具有显着拒绝运动的蜡烛,由超过特定阈值的灯芯长度指示。

一旦检测到支撑位和阻力位,如果它们非常接近,则可能需要将它们合并。这可以通过计算级别之间的差异或距离来完成。如果距离低于指定阈值,则可以通过用平均值替换它们或消除重复的级别来合并级别。

获得关键水平后,可以根据三个假设计算反转信号。首先,蜡烛的烛芯应接近支撑位或阻力位,其主体包含在支撑位或阻力位内。如果是支撑位,则实体应位于该水平之上;如果是阻力,则实体应位于该水平下方。之前的蜡烛也应该包含在相同的支撑位或阻力位内。这确保了当前蜡烛的行为与周围蜡烛所指示的趋势一致。

测试历史数据时,可以将生成的信号绘制在图表上。看涨反转信号由蜡烛下方的紫色信号点表示,而看跌反转信号由蜡烛上方的紫色信号点表示。然而,并非图表上的所有信号都可以交易,因为有些信号可能比其他信号更有效。为了过滤信号,使用 RSI。如果 RSI 高于阈值,表明上升趋势动量,则仅考虑看涨信号。相反,如果 RSI 低于下限,表明下降趋势动量,则仅考虑看跌信号。这样,信号就会与趋势保持一致,而与趋势相反的信号就会被过滤掉。

要在 Python 中自动化指标并评估策略,可以使用 Jupyter Notebook 文件。使用 pandas 库加载 2003 年至 2023 年一小时时间范围内的欧元/美元烛台数据。对数据进行过滤,去除零成交量蜡烛和周末,并使用 pandas 技术分析库计算 RSI。使用将当前蜡烛与相邻蜡烛进行比较的函数来检测支撑位和阻力位,并使用附加函数来检查与该水平的接近程度。这些函数考虑蜡烛的主体和烛芯与水平的关系,以及前面的蜡烛。

一旦定义了所有必要的函数,就会创建一个名为“check_candle_signal”的函数来计算信号。该函数将当前蜡烛的索引、要考虑的左侧和右侧的蜡烛数量、要检查的后蜡烛数量以及数据框作为输入。它使用先前定义的函数来计算支撑位和阻力位,必要时合并它们,并根据定义的条件和 RSI 阈值生成信号。

然后对信号进行计数并打印以评估策略的性能。为了在图表上可视化信号,选择并绘制相应的蜡烛,信号由紫色点表示。该图允许对信号及其与已识别的支撑和阻力水平的对齐进行视觉评估。

加载烛台数据并执行必要的数据清理步骤(例如删除零成交量蜡烛和周末)后,下一步是计算相对强弱指数 (RSI)。

RSI 是一种流行的动量振荡器,用于识别市场中的超买和超卖状况。它衡量近期价格变化的幅度,以确定资产是否超买或超卖。 RSI 值范围从 0 到 100,其中高于 70 的值通常被视为超买,低于 30 的值被视为超卖。

要计算 RSI,您需要定义窗口大小,它表示计算指标时要考虑的先前蜡烛的数量。最常见的窗口大小是 14,但您可以根据您的要求和您正在分析的资产的特征进行调整。

RSI 计算涉及以下步骤:

  1. 计算每根蜡烛的价格变化。这是当前蜡烛和前一根蜡烛的收盘价之间的差异。

  2. 将价格变化分为两个独立的系列:收益和损失。收益代表正的价格变化,而损失代表负的价格变化。如果价格变化为正,则被视为收益。如果为负数,则视为亏损。

  3. 通过用零替换负值并用其绝对值替换正值来平滑增益和损失序列。

  4. 计算定义窗口大小的平均增益和平均损失。这通常使用简单移动平均线 (SMA) 方法来完成。

  5. 通过将平均收益除以平均损失来计算相对强度 (RS)。

  6. 应用以下公式计算 RSI:RSI = 100 - (100 / (1 + RS))

通过绘制随时间变化的 RSI 值,您可以直观地分析资产的超买和超卖情况。交易者经常使用 RSI 作为潜在趋势反转的信号或作为入场点和出场点的确认。

值得注意的是,RSI 只是金融分析中使用的众多技术指标之一。其有效性取决于各种因素,例如市场状况、所分析的资产以及所考虑的时间范围。

How to Use Support Resistance Levels and RSI for Profitable Currency Trading
How to Use Support Resistance Levels and RSI for Profitable Currency Trading
  • 2023.05.11
  • www.youtube.com
In this Python FOREX and currency trading tutorial, we will show you how to use the Relative Strength Index (RSI) and Support/Resistance Levels for profitabl...
 

Python 中的移动平均线和 VWAP 趋势策略回测


Python 中的移动平均线和 VWAP 趋势策略回测

您好,今天我们将比较用于交易和算法交易的 V-WAP(成交量加权平均价格)和移动平均线指标。我们将使用这两个指标来构建交易机器人,并使用比特币数据对其进行回测。

根据三年的数据,我们将在本视频中使用的策略的利润回报率从 200% 左右到高达 473% 不等。如果您对编码部分感兴趣,回测是使用Python语言完成的,您可以从描述中提供的链接下载Jupyter Notebook文件。

除了是我最喜欢的交易指标之外,V-WAP 很重要,因为它可以帮助交易者确定证券是否以公允价值进行交易。此信息至关重要,因为如果价格高于 V-WAP 曲线或远高于 V-WAP 曲线,则可能表明其估值过高。相反,如果当前价格低于 V-WAP 曲线,则可能表明该证券被低估。简而言之,我们总是期望价格在某个时候回到 V-WAP 水平。这可以在一个示例中观察到,在价格收敛回 V-WAP 水平并再次从黄色曲线反弹之前,价格蜡烛和黄色 V-WAP 曲线之间的差异增加。移动平均曲线和V-WAP黄色曲线有明显的区别。

为了计算 V-WAP,我们可以使用以下表达式:V-WAP = 累积均价 * 交易量 / 累积交易量。平均价格是最高价、最低价和收盘价之间的平均价格。累计部分是指自交易时段开盘以来的总金额。交易时段可以每天、每周或每月重置,具体取决于我们的目标时间范围。 V-WAP 计算不同于简单的移动平均线,因为它包含更多有关交易量的信息。

我们还可以使用 V-WAP 来确定交易的最佳进入点和退出点,因为它充当随价格变动的动态支撑位和阻力位。这就是我们在本视频所示策略中使用 V-WAP 的目的。

我们将使用的策略如下:首先,我们将查看一系列低于或高于 V-WAP 或移动平均曲线的蜡烛,具体取决于我们使用哪个指标进行比较。如果蜡烛位于曲线下方,我们正在寻找做空信号,当蜡烛足够接近曲线时,将确定入场点。如果蜡烛位于曲线上方,我们正在寻找多头信号,当蜡烛足够接近曲线时,将确定入场点。我们将应用相同的策略,使用移动平均曲线和 V-WAP 曲线进行比较。

在 Jupiter Notebook 文件中,我们加载 2019 年至 2022 年之间 15 分钟时间范围内的比特币美元烛台数据。我们清理数据格式并使用 pandas 技术分析模块来计算 V-WAP 和 EMA(指数移动平均线) )。然后,我们使用一定数量的反向蜡烛计算 EMA 和 V-WAP 的信号。信号值存储在数据帧的新列中。我们将信号点可视化以便更好地理解。

对于回测,我们可以使用不同的交易管理方法。在这种情况下,我们使用 ATR(平均真实波动范围)来设置止损和止盈水平。止盈水平根据止损距离设定,止盈止损比为2.5。止损按ATR的0.8倍计算。

在回测中,我们迭代数据框中的每根蜡烛,并根据 V-WAP 和移动平均指标生成的信号检查进入和退出条件。如果发起交易,我们会根据 ATR 计算止损和止盈水平。如果价格达到止损或止盈水平,我们就退出交易并记录利润或损失。

回测完成后,我们计算累计盈亏并生成绩效指标,例如总回报、年化回报、最大回撤和夏普比率。

回测结果显示了使用 V-WAP 和移动平均指标的交易策略的性能。通过比较结果,我们可以评估哪个指标在盈利能力和风险管理方面表现更好。

请注意,回测结果将取决于各种因素,例如使用的具体参数、所选时间段和市场状况。在将策略应用于实际交易之前,彻底分析该策略并进行可靠的测试非常重要。

Moving Average And VWAP Trend Strategies Backtest In Python
Moving Average And VWAP Trend Strategies Backtest In Python
  • 2023.04.20
  • www.youtube.com
In this video, we compare VWAP and Moving Average indicators for trading and Algorithmic trading. We use both indicators to build a trading bot, backtesting ...
 

使用 Python 掌握自动十字星和吞噬模式的价格行为交易


使用 Python 掌握自动十字星和吞噬模式的价格行为交易

今天,我们将比较两种蜡烛形态:十字星和吞没蜡烛。我们将使用与布林带相结合的简单策略,并使用过去一年的一小时时间范围内的历史数据对这些模式进行回溯测试。我们的目标是展示如何将价格行为模式与其他指标相结合成为纯技术交易的强大工具。

为了实现这一策略,我们提供了Python代码,可以从视频描述中的链接下载。如果您发现内容有帮助,请通过喜欢和关注来支持我们的频道。此外,如果您有任何想要探索的想法,我们可以在评论部分进行讨论。

为了演示的目的,我们将重点关注两组模式:十字星蜡烛,前面是看跌蜡烛,后面是上升趋势或看涨蜡烛,表明未来的上升趋势。第二种模式是吞没模式,其中一根蜡烛的开盘价和收盘价分别高于和低于前一根蜡烛。本质上,当前蜡烛吞噬了前一根蜡烛,决定了未来价格的预测趋势。我们将专门研究这两种模式的看涨设置示例。还值得考虑看跌设置,其中十字星后面跟着看跌蜡烛,或者在吞没形态的情况下,吞没蜡烛具有看跌方向。这些设置将表明未来的下降趋势。

现在,让我们深入研究如何在策略中使用这些模式。首先,我们等待价格蜡烛收盘于布林带线上方或下方。如果在布林线下轨下方形成看涨形态,我们将发出买入信号。另一方面,如果看跌蜡烛出现在布林带上线上方,我们会设置空头或卖出信号。简而言之,如果我们观察到布林带下方的看涨模式,我们预计价格将会上涨。相反,如果我们在布林带上方发现看跌模式,我们预计价格将会下跌。这是我们将使用Python 来探索的方面。

提供的 Jupyter Notebook 演示了该指标的回测。该代码分别使用 Y Finance 模块和 pandas 进行数据检索和分析。 2021年4月1日至2023年3月19日的欧元兑美元汇率数据按小时下载。

为了计算布林带,我们利用 pandas 技术分析模块,设置长度为 30,标准差为 1.5。可以调整这些参数以进行进一步的实验。

接下来,我们定义函数“布林十字星信号”,该函数获取包含开盘价、收盘价、最高价和最低价的数据帧以及布林带数据。我们检查第一个条件,它需要一个看涨信号。在这种情况下,我们寻找当前蜡烛的收盘价低于布林线下限。同时,当前收盘价应大于开盘价,表示在十字星蜡烛之前出现绿色或上升趋势蜡烛。此外,前面的蜡烛应该是看跌的,收盘价低于开盘价。这种组合代表了反转形态。如果满足这些条件并且该形态出现在布林线下轨下方,我们就会发出买入信号。相反,对于看跌信号,收盘价应高于布林带上线,并且当前蜡烛应为看跌,收盘价低于开盘价。在此之前,应该有一根收盘价高于开盘价的上升趋势或绿色蜡烛。

在这种情况下,该组合代表看跌反转模式,如果满足这些条件并且该模式出现在布林带上线之上,我们将设置卖出信号。

函数“Bollinger Doji Signal”根据上述条件计算信号,并返回一个包含原始数据的数据帧以及信号列,指示每个交易点是否买入 (1)、卖出 (-1) 或持有 (0)蜡烛。

然后,我们将此函数应用于历史数据,并将结果存储在名为“signals_df”的新数据框中。

为了评估我们策略的表现,我们通过将信号乘以收盘价的百分比变化并将它们累加求和来计算回报。我们还计算买入并持有策略的累积回报,在该策略中,我们只是在整个时期内持有资产。

最后,我们将两种策略的累积回报绘制在图表上以可视化性能。

通过分析回测结果,我们可以评估十字星和吞噬蜡烛形态与布林带指标相结合在生成交易信号方面的有效性。值得注意的是,这是一个简化的示例,不应被视为财务建议。此外,该策略及其参数可以根据个人偏好和风险承受能力进一步优化和定制。

要完全理解和复制代码,建议下载并运行提供的 Jupyter Notebook,其中包含完整的代码和说明。

请记住,在实际交易场景中实施交易策略之前,应该对其进行彻底的测试和验证。始终建议在做出任何投资决定之前咨询财务顾问或进行广泛的研究。

我们希望这个解释可以帮助您更好地理解十字星和吞没蜡烛形态与布林带指标在交易策略中的实施。
Master Price Action Trading with Automated Doji and Engulfing Patterns using Python
Master Price Action Trading with Automated Doji and Engulfing Patterns using Python
  • 2023.03.25
  • www.youtube.com
In this informative video, we will explore the power of price action patterns in combination with Bollinger Bands for trading strategy backtesting. Specifica...
 

Python中价格通道突破的策略回测



Python中价格通道突破的策略回测

您好,欢迎回到我的频道。在今天的视频中,我们将重点关注基于价格通道突破的策略的开发和回测。如果您是新来的,我建议您观看我们的上一集,其中我介绍并解释了基于 Python 的自定义价格通道指标的代码。我将在下面的描述中留下链接。现在,我们就进入今天的主题,进行回测部分。

在上一个视频中,我们介绍了检测价格通道的代码。回顾一下,我们检测分形,即蜡烛的高点和低点。分形是蜡烛上同时高于或低于所有相邻蜡烛的点。我们检测不同的分形,包括高点和低点,并使用回归将它们拟合到斜率中。这些斜率代表定义价格通道的通道。然后,假设价格将继续朝同一方向发展,我们会尝试在价格脱离该通道时检测突破。

从视觉上看,该指标似乎运行良好,但我们很好奇它在长期策略上的表现如何。这就是我们今天进行全面回溯测试的原因。我们将使用Python进行回测,您可以从描述中的链接下载代码。

首先,我们加载数据,获取从 2003 年到 2023 年 10 到 20 年的数据,这也是我们在上一个视频中使用的数据。我们将背面蜡烛的数量设置为 45,这是我们检测分形(高点和低点)并定义通道的窗口。

我们有一个名为 is_pivot 的函数,用于检测蜡烛是否是枢轴点或分形点。它有两个参数:蜡烛指数和窗口大小。它检查蜡烛是否高于或低于指定窗口内相邻蜡烛的所有高点或低点。它根据枢轴类型返回一个值:1 代表枢轴高位,2 代表枢轴低位,3 代表两者,0 代表其他情况。我们将此函数应用于数据框中的每个蜡烛,并将结果保存在名为“is_pivot”的新列中。

接下来,我们需要收集通道或检测通道。我们查看当前蜡烛之前的 45 根蜡烛,并检查高分形和低分形。如果我们至少有三个高点和三个低点,我们使用线性回归来拟合它们并返回斜率的参数。否则,我们返回零。我们使用指定的窗口大小将此函数应用于数据框,并将结果保存在名为“通道”的新列中。

我们还有一个名为 is_breakout 的函数,用于检测价格通道之外的突破。对于每根蜡烛,我们检查前一根蜡烛的高点是否在通道内,以及前一根蜡烛的收盘价是否低于通道的低点。如果两个条件都满足,并且当前蜡烛的开盘价和收盘价也在通道之外,我们将返回一个信号:1 表示下降趋势信号,2 表示上升趋势信号,0 表示其他情况。我们对所有蜡烛运行此函数,并将结果保存在名为“is_breakout”的新列中。

现在我们有了突破信号,我们可以继续进行回测。我们像往常一样使用回测库,初始手数为权益的 10%。我们定义止盈与止损比率,并根据信号设置止损和止盈水平。例如,如果信号为 2(上升趋势),并且没有未平仓交易,我们将止损设置为前一根蜡烛的低点,并将止盈设置为平均真实波动范围 (ATR) 的倍数。

我们迭代数据框中的每根蜡烛并检查是否存在突破信号。如果有信号并且当前没有交易,我们将根据该信号进入新交易。我们根据手数和可用净值计算交易规模。

一旦交易开始,我们就会跟踪其进展。当价格向有利于我们的方向变动时,我们会更新止损和止盈水平。如果价格触及止损或止盈水平,我们将关闭交易并记录结果。

最后,我们计算并打印整体绩效指标,包括交易总数、获胜交易的百分比、每笔交易的平均回报率以及总体股本回报率。

以下是价格通道突破策略的分步说明(无代码):

  1. 加载历史价格数据。
  2. 定义策略的参数,例如计算平均真实波动幅度 (ATR) 的周期和设置止盈水平的倍数。
  3. 迭代数据框中的每根蜡烛。
  4. 检查是否有突破信号。当价格超过通道上限或下限时,就会发生突破。
  5. 如果出现突破信号并且当前没有交易,则根据该信号进入新交易。对于看涨突破,买入资产,对于看跌突破,卖出资产。
  6. 根据可用权益计算交易规模。例如,您可以将交易规模设置为净值的百分比,例如 10%。
  7. 根据之前的通道边界设置止损水平。对于看涨突破,止损设置在通道下边界下方;对于看跌突破,止损设置在通道上边界上方。
  8. 根据当前价格和 ATR 设置止盈水平。将 ATR 乘以倍数(例如 2),然后将其添加到当前价格以形成看涨突破,或从当前价格中减去它以形成看跌突破。
  9. 跟踪交易进展。当价格朝着对您有利的方向变动时,更新止损和止盈水平。这可能涉及调整止损以锁定利润或追踪价格后面的止损。
  10. 如果价格触及止损或止盈水平,则关闭交易并记录结果(利润或损失)。
  11. 对每个突破信号重复步骤 5 至 10,并相应更新交易规模、止损和止盈水平。
  12. 计算并打印整体绩效指标,例如交易总数、获胜交易百分比、每笔交易的平均回报率以及总股本回报率。

在代码中实施此策略将允许您根据历史数据对其进行回测并分析其性能。前面提供的代码演示了使用 Python 中的 Backtesting 库实现该策略。

Strategy BackTest Of Price Channel Break Out In Python
Strategy BackTest Of Price Channel Break Out In Python
  • 2023.03.10
  • www.youtube.com
This is a continuation of the previously released video (https://youtu.be/Bnv7euL-FxM) on price channels break out. This is a full strategy backtest sample s...