算法交易中的Python - 页 18

 

这个加密货币倒卖指标真的有效吗?



这个加密货币倒卖指标真的有效吗?

今天,我们将在比特币市场的回测中探索使用成交量加权平均价格(VWAP)的雕刻策略。我们将编写一个Python算法来实现这个策略并分析结果。

首先,让我们设置上下文。 VWAP 是算法交易的强大工具,因为它提供动态支撑和阻力值。它仍然独立于所使用的时间范围,这使得它有利于算法交易,因为它减少了要优化的参数数量。

在此策略中,我们将使用 15 分钟的时间框架来计算比特币-美元交易价格。我们将考虑两个指标:100 日移动平均线 (DMA) 和 VWAP。通过分析相对于这些指标的价格走势,我们可以确定市场趋势。当一定数量的蜡烛交易低于或高于 100 DMA 时,分别表明下降趋势或上升趋势。同样,如果蜡烛交易价格低于或高于 VWAP 曲线,则可以确认趋势方向。

在上升趋势中,我们只会寻找买入头寸,而在下降趋势中,我们将专注于卖出头寸。当价格与 VWAP 曲线的某个固定距离内时,我们的仓位入场点将被触发。

为了在 Python 中实现此策略,我们将使用 pandas_ta 包来计算 VWAP 和 100 DMA。然后,我们将在数据框中创建两个新列:EMA 信号和 VWAP 信号。 EMA 信号将计算低于或高于 EMA 曲线的反向蜡烛的数量,以确认下降趋势或上升趋势。同样,VWAP 信号将计算低于或高于 VWAP 曲线的反向蜡烛的数量。

我们将把这些信号合并到数据框中的总信号列中,这将作为我们买入和卖出头寸的触发器。对于买入头寸,我们将检查总信号是否等于 2 并且没有未平仓交易。我们还将验证价格是否足够接近 VWAP 曲线。同样,对于卖出头寸,我们将考虑总信号 1 并检查价格与 VWAP 曲线的距离。

我们可以在图表上可视化信号,绘制蜡烛以及买入(紫色)和卖出(绿色)信号。

为了回测该策略,我们将计算平均真实波动范围 (ATR) 作为波动率的衡量标准。止损距离将设置为当前 ATR 的 0.8 倍,止盈距离将设置为止损距离的两倍。有了这些参数,我们就可以触发买入和卖出头寸,同时考虑止损和止盈值。我们将从 100,000 美元的现金金额和 5 的杠杆开始。

运行回测,我们可以观察我们交易系统的结果。该算法显示出较高的回报率,三年后股本最终约为 1000 万美元。相比之下,买入并持有策略仅获得了 248% 的回报。然而,值得注意的是,该算法的性能会波动,并且在某些时期可能会遇到困难。这凸显了动态适应不断变化的市场条件的必要性。

为了评估股权的稳定性,我们可以绘制历年的股权曲线。该算法在两年内表现出色,但在去年面临挑战。这强调了该算法的被动性质,该算法依赖于固定参数,可能需要进行调整以适应市场变化。

这里展示的基于 VWAP 的策略是一项很好的注意力和时间投资。尽管存在一些局限性,但它在很长一段时间内表现出了可观的回报。可以探索进一步优化以及包含额外的过滤器和指标来增强。

Does this Crypto Scalping Indicator Actually Work!
Does this Crypto Scalping Indicator Actually Work!
  • 2022.06.02
  • www.youtube.com
This video describes a trading strategy using VWAP for Crypto such as the Bitcoin. The strategy algorithm is tested in Python and the code details are explai...
 

如何在标准普尔 500 指数上使用 Python 回测股票市场策略


如何在标准普尔 500 指数上使用 Python 回测股票市场策略

大家好,今天我们将使用标准普尔 500 指数的历史数据对一个简单的雕刻策略进行详细测试。我们将解释该策略的基础知识,并用 Python 编写代码用于回测。我们拥有三年的数据,这应该为我们提供足够的信息来评估该策略的绩效和结果。

与往常一样,该策略的代码可以通过下面描述中的链接下载。我们将使用 15 分钟的时间范围进行此测试,但如果需要,您可以尝试不同的时间范围。由于噪音和波动增加,较短的时间范围可能更难以控制。

该策略围绕识别吞噬模式,可以是看跌或看涨信号。我们将添加两个条件来细化信号。第一个条件是最小吞没高度,即前一根蜡烛的收盘价与吞没蜡烛的开盘价之间的差值。我们将为吞噬蜡烛的开盘价设定最小距离要求,以验证信号。换句话说,开盘价应该高于最低吞没高度。

第二个条件是最大烛尾长度,指的是烛尾或烛芯的长度。我们将为最大尾部长度设置一个限制,并确保它小于指定的参数。此条件有助于过滤掉某些模式。

为了增加整个交易时间内的信号数量,我们将引入正常吞没模式的变体。我们不会严格要求一根蜡烛吞没前一根蜡烛,而是允许两根或更多连续的蜡烛实现吞没,只要它们方向相反并且满足吞没条件。允许实现吞没的蜡烛数量将是代码中的一个变量,从而允许灵活性和实验性。

至此,我们就可以开始编写程序,并通过回测来测试结果了。我们将使用 Jupyter Notebook 文件进行此演示。首先,我们使用 read_csv 函数将历史数据加载到名为 df_spy 的 DataFrame 中。我们指定 15 分钟的时间范围和从 2019 年到 2022 年的日期范围。DataFrame 的索引设置为 GMT 时间列。

接下来,我们定义一个名为 is_engulfing 的函数,它接受两个参数:DataFrame 和当前蜡烛的索引。该函数测试蜡烛是否达到吞没形态。我们为实现吞噬形态所允许的最大蜡烛数量、吞噬差值和最大蜡烛尾部长度设置参数。该函数检查看跌和看涨吞没形态的各种条件,并返回 1 表示看跌信号和 2 表示看涨信号。

我们创建 DataFrame 的副本,过滤掉没有移动的蜡烛(最高价等于最低价)。此步骤删除周末和银行假日。我们将过滤后的数据存储在名为 df 的 DataFrame 中。我们还定义了一个名为 signal 的新列表来存储每行/蜡烛的信号。

对于 DataFrame df 中的每一行,我们使用 is_engulfing 函数以相应的索引和 DataFrame 作为参数来计算信号。我们将信号存储在信号列表中。最后,我们将信号列表添加为 DataFrame 中的新列。

为了可视化信号,我们使用绘图函数绘制蜡烛图,并在蜡烛下方或上方用点表示看涨或看跌信号。我们可以选择特定范围的蜡烛来绘制和观察信号。

为了便于可视化,我们将 DataFrame 的索引重置为整数索引,并删除日期/GMT 时间索引。然后我们选择一系列蜡烛来绘制并观察信号。

以下是使用烛台图回测交易策略所涉及的步骤的摘要:

  1. 数据准备:获取所需金融工具(例如股票、加密货币)的历史价格数据,包括每个时间段(例如分钟、小时、天)的开盘价、最高价、最低价和收盘价。确保数据采用易于分析的格式。

  2. 策略定义:根据烛台形态定义交易策略。例如,您可能会寻找看涨形态(如看涨吞没形态)或看跌形态(如流星)。根据这些模式确定进入和退出交易的规则。

  3. 信号生成:分析历史价格数据并根据定义的策略生成信号。识别满足进入或退出标准的特定烛台形态的出现。

  4. 投资组合模拟:通过跟踪假设的投资组合来模拟交易策略。从固定金额的资本开始,并根据生成的信号模拟交易。在整个回溯测试期间跟踪投资组合的价值和表现。

  5. 绩效评估:使用各种指标评估交易策略的绩效,例如盈利能力、风险调整回报、回撤和其他相关指标。将策略的绩效与基准或替代策略进行比较,以评估其有效性。

  6. 可视化:使用烛台图可视化回测结果。绘制历史价格数据并在图表上指示生成的信号(进入点和退出点)。这种可视化可以帮助了解策略的绩效并确定需要改进的领域。

通过执行这些步骤,您可以使用蜡烛图回测交易策略。值得注意的是,回溯测试提供的是历史表现,并不能保证未来的结果。此外,在制定和实施交易策略时,考虑交易成本、滑点和市场状况等其他因素也至关重要。

How to Backtest A Stock Market Strategy Using Python On The S&P 500
How to Backtest A Stock Market Strategy Using Python On The S&P 500
  • 2022.05.26
  • www.youtube.com
This is a high profit trading strategy coded and tested in python. The strategy is easy to use and suitable for beginners, it was tested on SP500 stock marke...
 

Python 算法交易的价格行为策略



Python 算法交易的价格行为策略

大家好!欢迎观看霍夫曼库存回撤栏的第三个视频。这个策略已经赢得了几次交易比赛,所以我想到尝试创建一个自动化版本,可以在几个月甚至更长的时间内提供正回报。为了使该视频简洁,我建议您观看之前的两个视频,其中我们详细解释了该策略。您可以在说明中找到这些视频的链接。

简而言之,该策略涉及识别回撤线并维持趋势定义的特定斜率。在上升趋势中,我们寻找特定的柱形形状,在下降趋势中,我们寻找回撤柱的反转形状。然而,在本视频中,我们将添加一个条件。我们要求回撤棒比之前和未来的棒更高(在上升趋势中)或更低(在下降趋势中)。本质上,我们正在寻找充当枢轴点的回撤线,表明卖方或买方试图扭转趋势的强烈反应。

将这个附加条件实施到算法交易策略中比解释这个概念更具挑战性。在所示的示例中,我们有一个上升趋势,并确定了一个充当高枢轴点的霍夫曼回撤线。此外,我们观察到突破该霍夫曼柱的高点,表明上升趋势可能会持续。我们将把所有这些条件纳入我们的 Python 算法中,并评估它们是否改善了之前视频中获得的结果。

为了提供简要概述,我们加载 2003 年至 2022 年一小时时间范围内 EUR/USD 货币对的历史数据。我们计算指数移动平均线 (EMA) 和平均真实波动范围 (ATR),这可能是对于设置止损和止盈值很有用。我们计算 EMA 的斜率,因为它是霍夫曼策略的条件之一。此外,我们引入了两个新参数:总信号返回蜡烛图(左和右),它确定与霍夫曼蜡烛图的最高点或最低点进行比较的蜡烛数。

该算法定义了识别上升趋势或下降趋势中的霍夫曼柱的条件。在本视频中,我们添加了一个额外的条件来检查霍夫曼条是否也充当枢轴点。我们将霍夫曼柱的低点(下降趋势)或高点(上升趋势)与指定范围内的先前和未来蜡烛进行比较。如果满足条件,我们为下降趋势指定值 1,为上升趋势指定值 2,并将信号存储在数据帧中名为“tot signal”的新列中。

为了确保算法正常工作,我们将信号绘制在图表上,可视化代表霍夫曼条的紫色点。我们可以确认算法根据柱的特征正确识别柱。

接下来,我们将 EMA 信号作为趋势方向的确认信号。我们还实现了霍夫曼突破信号函数,该函数检测霍夫曼柱上方或下方的突破并相应地分配信号。

为了回测该策略,我们设置了止损和止盈值,该值可能会根据所使用的具体条件和指标而有所不同。在本例中,我们使用 ATR 来定义止损和止盈/止损比率 1.5。我们以 10,000 美元的起始保证金、1:50 的保证金、一次一笔交易进行回测。

最初,结果并不理想,回报率为-70%,回撤也很大。然而,这并不一定意味着该策略或指标本质上是不好的。它强调了考虑其他因素的重要性,例如资金管理以及止损和止盈值的选择,这些因素可以显着影响策略的绩效。

为了提高策略的性能,我们可以优化参数并调整资金管理规则。在此示例中,我们将优化总信号返回蜡烛参数,该参数确定与霍夫曼柱的最高点或最低点进行比较的蜡烛数量。我们将测试 2 到 10 之间的不同值并评估结果。

优化参数后,我们获得了更好的性能,回报率为 187%,回撤也减少了。这证明了参数优化在算法交易策略中的重要性。

为了进一步增强该策略,我们可以考虑加入额外的过滤器或条件。例如,我们可以使用更高的时间范围(例如每日或每周图表)来实现趋势过滤器。这有助于确保仅按照总体趋势的方向进行交易。

我们还可以探索不同的退出策略,例如追踪止损或基于价格行为或波动性的动态止盈水平。可以测试这些附加组件并将其集成到算法中,以潜在地提高其性能。

值得注意的是,过去的表现并不能保证未来的结果。应使用历史数据和稳健的回测方法对该策略进行彻底的测试和验证。在实时交易环境中实施策略时,考虑交易成本、滑点和交易的其他实际方面也至关重要。

总之,霍夫曼的库存回撤线策略可以成为识别市场潜在枢轴点和趋势逆转的有用工具。通过合并附加条件和优化参数,我们可以提高策略的性能。然而,有必要进行彻底的测试并考虑资金管理和退出策略等其他因素,以开发全面有效的交易系统。

关于在 Python 中实施霍夫曼库存回撤条策略的视频到此结束。我希望您发现本系列内容丰富且对您的交易工作有帮助。如果您有任何问题或意见,请随时在下面留言。感谢您的观看,祝交易愉快!

Price Action Strategy For Algorithmic Trading In Python
Price Action Strategy For Algorithmic Trading In Python
  • 2022.05.12
  • www.youtube.com
This is a continuation of the previous videos, on price action trading strategy, about the Hoffman Inventory Retracement Bar indicator, and the previously in...
 

如何用 Python 编写回撤线交易策略代码



如何用 Python 编写回撤线交易策略代码

大家好,欢迎来到霍夫曼库存条回撤方法的延续。在上一个视频中,我们介绍了这种方法并解释了检测特定蜡烛形状和价格趋势的代码。如果您对代码感兴趣,可以从下面描述中提供的链接下载 Jupyter Notebook 文件。

在本视频中,我们将使用我们之前在交易策略中确定的霍夫曼柱线,回测系统并评估结果。该策略的重点是识别上升趋势或下降趋势中的特定蜡烛形状,并检查这些蜡烛的高点上方或低点下方的突破。

让我们考虑一个上升趋势的例子。我们检测到霍夫曼回撤线,其中上尾部至少占整个蜡烛交易量的 45%。这表明卖家正试图对抗上涨趋势。然而,在接下来的蜡烛中,我们观察到收盘价高于前一个霍夫曼蜡烛的高点。这表明市场上的买家依然强劲,并可能继续推高价格。

为了在 Python 中实现此策略,我们将迭代每个蜡烛的收盘价,并检查其之前的相邻蜡烛是否有任何形成霍夫曼回撤线。我们将定义一个名为“back_candles”的参数,它确定搜索霍夫曼柱时要考虑的蜡烛数量。可以调整此参数以尝试不同的值。

如果突破发生在霍夫曼蜡烛的高点之上或低点之下,我们将根据当前的价格趋势分别建立买入或卖出头寸。我们还可以设置止损和止盈值,该值可以基于平均真实范围 (ATR) 或之前蜡烛的最高/最低值,具体取决于价格趋势。

现在让我们用 Python 编写该策略,并使用几个月的历史数据对其进行回测以评估结果。 Jupyter Notebook 文件包含代码,该代码首先使用 yfinance 模块在 15 分钟的时间范围内加载 59 天的数据。我们计算指数移动平均线 (EMA)、ATR 和移动平均线的斜率。

接下来,我们根据移动平均线的斜率和蜡烛的形状来识别霍夫曼柱。我们在图表上可视化信号,然后定义一个名为“hofmann_break_signal”的新函数,它采用两个参数:当前蜡烛的索引和搜索霍夫曼蜡烛形态时要考虑的后蜡烛的数量。

在函数内部,我们迭代每根蜡烛并检查霍夫曼柱线和突破的条件是否满足。如果是这样,我们将返回上升趋势的买入信号或下降趋势的卖出信号。

我们将此函数应用于数据帧的每一行并将结果存储在一个系列中。最后,我们将信号可视化并检查霍夫曼蜡烛图是否被正确检测到。

验证蜡烛检测后,我们继续对策略进行回测。我们根据之前蜡烛中的最低价格设置止损,并使用相对于止损的比率获利。在此示例中,我们使用基于 ATR 的方法,止损率为 1.5。

我们通过三个月的数据测试该策略,并计算回报、获胜交易的百分比和净值曲线。在这次初步测试中,回报率为 51%,但权益曲线并未显示出稳定的增长。

我们还考虑了之前蜡烛的最高点或最低点,探索了设置止损和止盈水平的不同方法。然而,在这种情况下,回报率为负,为-4.8%,表明这种资金管理策略表现不佳。

请注意,该策略在本视频中尚未优化。它被快速开发以演示 Python 实现。如果您发现此策略有趣,请随意复制代码并通过添加其他技术指标来进一步自定义它。

感谢您观看此视频。敬请关注下一篇,安全交易,我们下次再见!

How to Code Retracement Bar Trading Strategy In Python
How to Code Retracement Bar Trading Strategy In Python
  • 2022.05.05
  • www.youtube.com
This video is a continuation of the previous one on the Hoffman Inventory Retracement Bar Automated In Python. This algorithmic trading strategy enabled Hoff...
 

用于算法交易的 Python 回撤条码编码


用于算法交易的 Python 回撤条码编码

您好,在本视频中,我们将介绍霍夫曼库存回撤条并演示如何在 Python 中自动检测它。如果您对代码感兴趣,可以从描述中提供的链接下载 Jupyter Notebook 文件。

该策略的第一条规则是通过检查 20 日移动平均线 (MA) 斜率是否与水平线形成 45 度角来检测价格趋势。请注意,这里以 20 日移动平均线为例,您可以尝试不同时期的移动平均线。如果您遵循下降趋势,则负斜率也应与水平线形成至少 45 度的角度。然而,值得一提的是,仅仅依靠这个 45 度角作为信号在数学上是没有意义的,因为不可能在交易图表上准确定义这个角度。算法交易为这个问题提供了一个解决方案,我们将在视频的后面部分进行探讨。

该策略的第二条规则涉及识别尾部至少占整个蜡烛长度 45% 的蜡烛。例如,在上升趋势中,我们寻找上尾大于蜡烛总走势 45% 的蜡烛。同样,在下降趋势中,我们寻找下尾大于蜡烛交易量 45% 的蜡烛。这种蜡烛形态表示卖家或买家试图抵制或扭转趋势的时刻。通过蜡烛形态了解市场动态,我们可以定义我们的定制策略。

在示例中,我们识别这些特定的蜡烛并等待市场突破高位。当蜡烛收盘价高于哈夫曼蜡烛的高点时,表明卖方无法抵抗买盘趋势,买方仍然占据上风。这表明上升趋势可能会持续,我们可以与买家建立多头头寸。分析这些假设的结果,我们发现在大多数情况下,价格符合我们的预期。

然而,为了确定该指标的长期结果,我们需要使用 Python 代码执行回测。在本视频中,我们重点介绍如何检测霍夫曼烛光并在出现时生成信号。在另一个视频中,我们将在完整的交易策略中使用该指标并执行适当的回测。

首先,我们使用 yfinance 模块下载数据。该示例下载 59 天的欧元/美元数据,时间范围为 15 分钟。如果需要更多数据,可以批量下载并拼接数据框。下载数据后,我们计算长度为20的指数移动平均线(EMA),并计算移动平均线的斜率。斜率值存储在数据框中名为slope_ema 的新列中。

接下来,我们通过迭代每一行来计算信号。如果当前蜡烛的斜率是负值并且超过斜率限制,表明存在下降趋势,我们检查蜡烛的下尾除以高低范围是否大于百分比限制。这表示霍夫曼蜡烛处于下降趋势,总信号设置为 1。类似地,如果斜率为正且超过斜率限制,则表示上升趋势,蜡烛的上尾除以高低范围为大于百分比限制,我们有一个处于上升趋势的霍夫曼蜡烛,并且总信号设置为 2。

一旦我们计算了信号并将结果存储在名为 signal 的列表中,我们将其作为名为 tot_signal 的新列添加到数据帧中。然后我们可以使用 Plotly 在图表上可视化信号。

以下是霍夫曼库存回撤线策略的分步说明(无代码):

  1. 下载价格数据:获取所需金融工具(例如股票或货币对)的历史价格数据。您可以使用 Python 中的 yfinance 等库来检索数据。

  2. 计算指数移动平均线 (EMA):使用特定时间段计算收盘价的 EMA。 EMA 是一种常用指标,有助于识别价格数据的趋势和潜在反转。

  3. 计算斜率:计算每个数据点处 EMA 线的斜率。斜率表示趋势的方向和强度。您可以使用梯度或回归等数学技术来计算斜率。

  4. 设置参数:定义信号检测的参数。在霍夫曼的库存回撤线策略中,您通常会设置斜率限制和尾部百分比限制。斜率限制确定潜在信号的最小斜率值,而尾部百分比限制设置蜡烛图范围的上尾部或下尾部应占的最小百分比。

  5. 识别信号:迭代数据并比较当前和之前的斜率。如果两个斜率均低于负斜率限制,请检查当前蜡烛的下尾部是否大于尾部百分比限制。如果是,则将其标记为看涨信号。同样,如果两个斜率均高于正斜率限制,则检查当前蜡烛的上尾部是否大于尾部百分比限制。如果是,则将其标记为看跌信号。

  6. 可视化信号:创建价格数据的图表或图形。在图表上绘制信号以可视化霍夫曼蜡烛图。您可以使用 Plotly 或 Matplotlib 等绘图库来创建图表并标记信号点。

请记住,该策略并不限于这些步骤,您可以根据您的要求和交易偏好对其进行自定义和完善。此外,实施风险管理技术(例如设置止损单或头寸规模)对于成功交易至关重要。

Retracement Bar Coded In Python For Algorithmic Trading
Retracement Bar Coded In Python For Algorithmic Trading
  • 2022.04.28
  • www.youtube.com
This video details the IRB or the inventory retracement bar as described and used by Hoffman and the algorithm that detects this bar in an automated method i...
 

如何在 Python 中自动化交易模式 |头肩形态



如何在 Python 中自动化交易模式 |头肩形态

为了在 Python 中自动检测头肩形态,我们可以遵循文本中概述的算法步骤。以下是每个步骤的详细说明:

  1. 检测枢轴点:

    • 此步骤涉及识别价格数据中高于或低于相邻蜡烛的高值和低值。
    • 检测到两种类型的枢轴点:强枢轴点和弱枢轴点。
    • 强枢轴点与大范围的相邻蜡烛进行比较,而弱枢轴点与较少数量的相邻蜡烛进行比较。
  2. 可视化枢轴点:

    • 检测到的强枢轴点和弱枢轴点绘制在烛台图上。
    • 强枢轴点由蜡烛上方的紫色点表示,而弱枢轴点由蜡烛下方的红色点表示。
  3. 检测头肩形态:

    • 为了检测头肩形态,我们迭代指定范围内的蜡烛 ID。
    • 对于每个蜡烛 ID,我们检查它是否是枢轴点(既不是强枢轴也不是弱枢轴)并进一步继续。
    • 如果找到强枢轴点,我们会记录枢轴两侧蜡烛窗口内的最大值和最小值的坐标。
    • 我们跟踪中心枢轴蜡烛之前和之后的最小值和最大值的计数。
    • 如果两侧的最小值和最大值的计数都小于一个,则不可能形成该模式,我们会跳到下一根蜡烛。
    • 如果最小值和最大值的计数满足条件,我们将线性回归线拟合到最小值并计算其斜率和截距。
    • 我们使用 argmax 函数找到最大值内头部的索引。
    • 最后,我们检查是否满足头肩形态的条件:
      • 头部索引的最大值与头部之前的最大值之间的差值应当大于阈值。
      • 头部索引的最大值与头部之后的最大值之间的差值也应该大于阈值。
      • 最小值的绝对斜率应小于或等于阈值。
    • 如果满足所有条件,我们就检测到了头肩形态。
调整风险管理技术,例如设置止损订单或调整头寸规模,对于成功交易至关重要。
How to Automate Trading Patterns In Python | Head And Shoulders Pattern
How to Automate Trading Patterns In Python | Head And Shoulders Pattern
  • 2022.04.21
  • www.youtube.com
This video details the head and shoulders candles or candlesticks pattern, and an algorithm is automated in Python language to detect this specific form of c...
 

Python 中的三角形价格模式检测 |算法交易指标



Python 中的三角形价格模式检测 |算法交易指标

在本视频中,我们将探索使用特定算法自动检测三角形图案。我们将提出一种简单的方法来检测不同形状的价格变动三角形,并编写 Python 代码来在外汇数据上进行测试。最后,我们将绘制发现的模式以可视化结果。如果您对编码部分感兴趣,可以从视频描述中提供的链接下载包含 Python 代码的 Jupyter Notebook 文件。

当三角形模式用于交易策略时,交易者会特别感兴趣。例如,一些交易者利用三角形的突破进行交易。在所示的示例中,价格遵循突破方向的未来趋势。在一个示例中,价格在下降趋势中突破了三角形边缘。在另一个例子中,价格在上升趋势中突破了三角形边缘。在这两种情况下,突破趋势都得到了延续。

该方法的步骤如下:

  1. 计算枢轴点:枢轴点是大于其邻居的价格值。对于枢轴低点,蜡烛的低点应低于其前后指定数量的蜡烛的低点。对于枢轴高点,蜡烛的高点应高于其前后指定数量的蜡烛的高点。

  2. 以线性斜率拟合最大值和最小值:对于最大值,比较高值并查找中央蜡烛,其最高点高于其前后指定的蜡烛数。对于最小值,比较低值并查找中央蜡烛,其最低价低于其前后指定的蜡烛数量。

  3. 检测三角形形式:根据所需的三角形形式,根据最大值和最小值的斜率识别模式。例如,当最大斜率为负且最小斜率为正时,可以检测到收敛三角形。当最大斜率为负并且最小斜率接近于零或水平线时,可以检测到下降三角形。

现在,让我们用Python编写代码来实现这个方法,看看它是如何工作的。 Jupyter Notebook 文件包含用于导入数据、清理数据、计算枢轴点、可视化枢轴蜡烛和检测三角形模式的代码。我们使用 Pandas、NumPy 和 Plotly 等库来处理数据操作和可视化任务。

导入必要的库和数据后,我们定义一个名为“pivot_id”的函数来根据指定数量的邻居来识别枢轴点。此函数向数据框中添加一个名为“枢轴”的新列,指示蜡烛是枢轴低点 (1) 还是枢轴高点 (2)。

然后,我们定义一个名为“points_position”的函数来绘制蜡烛图,并根据其枢轴状态在其上方和下方添加点。此函数使用“point_position”列来确定点的 y 坐标。

使用 Plotly 库,我们绘制蜡烛图和枢轴点以可视化结果。这使我们能够验证枢轴点是否已正确识别。

接下来,我们实现检测三角形图案的代码。我们选择一个特定的蜡烛并扫描它之前指定数量的蜡烛,以检查该区域是否存在三角形模式。我们迭代蜡烛并将最大值和最小值的坐标存储在单独的 NumPy 数组中。然后,我们使用线性回归将这些点拟合成线性斜率,并计算最大值和最小值的斜率。

我们绘制蜡烛图、枢轴点以及最大值和最小值的斜率来可视化三角形模式。通过检查为三角形形状定义的条件,例如相关因子(r_min 和 r_max),我们可以确定是否存在三角形图案。如果满足条件,我们将在绘图上标记三角形图案。

最后,我们迭代数据集中的所有蜡烛并重复检测三角形模式的过程。每次找到模式时,我们都会将三角形的坐标存储在单独的列表中以供以后可视化。

在代码的最后,我们使用 Plotly 绘制蜡烛图、枢轴点和检测到的三角形模式。这提供了价格数据中已识别三角形的直观表示。

通过运行代码并检查绘图,我们可以看到检测到的三角形图案并分析它们的形状。此信息对于想要将三角形模式纳入交易策略的交易者非常有用。

请记住,Jupyter Notebook 文件中提供的代码只是检测三角形模式的一种可能实现。有多种方法可以解决此问题,您可以探索不同的算法或修改现有代码以满足您的特定要求。

Triangle Price Pattern Detection In Python | Algorithmic Trading Indicator
Triangle Price Pattern Detection In Python | Algorithmic Trading Indicator
  • 2022.04.14
  • www.youtube.com
This video details the algorithm for triangle price pattern detection in python, this technical indicator can be programmed in python to detect all shapes of...
 

Python AlgoTrading 回测:使用 RSI 和 ADX 与移动平均线作为买入/卖出信号



Python AlgoTrading 回测:使用 RSI 和 ADX 与移动平均线作为买入/卖出信号

大家好!在本视频中,我们将根据平均方向指数 (ADX) 和相对强弱指标 (RSI) 以及其他确认指标对雕刻策略进行详细测试。这种策略被宣传为倒卖的一种有利可图的方法。我们将重点关注价格图表上红色箭头下方的紫色点,这些点是由我们将描述的算法自动生成的。

在这个具体示例中,紫色点代表卖出信号,值得注意的是,这些信号之后会出现价格下跌。这表明该策略有希望,因为这些信号已导致交易获胜。要深入研究编码方面,您可以从描述中提供的链接下载 Python 代码(Jupyter Notebook 文件)。

我们的目标是用 Python 开发一种自动雕刻策略,使我们能够设置交易、保持代码运行,并在我们睡觉时有可能获利。然而,重要的是要承认,取得成功可能并不像最初听起来那么简单。

我们将按照针对该特定策略的建议,开始在五分钟时间范围内进行测试。为了确定价格趋势,我们将利用 50 指数移动平均线 (EMA)。如果价格高于该曲线,则表明呈上升趋势,我们将只专注于买入头寸。相反,如果价格低于 50 EMA,则表明下跌趋势,我们将专门考虑卖出头寸。

此外,我们将周期为3的RSI纳入其中,触发水平设置为20和80。当RSI跌破20时,表明市场超卖,触发买入信号。相反,当RSI超过80时,表明市场处于超买状态,出现卖出信号。

我们的策略还结合了周期为 5 的平均方向指数 (ADX)。如果ADX超过30,则表明趋势强劲,可作为上升趋势和下降趋势的确认指标。在这两种情况下,我们都会搜索 30 以上的级别。

当满足所有这些条件时,就会生成信号的第一部分。为了进一步验证该信号,我们将采用蜡烛形态方法,专门寻找与趋势一致的吞噬蜡烛。如果趋势向上,我们将寻找看涨吞没蜡烛;如果趋势向下,我们将寻找看跌吞没蜡烛。

幸运的是,所有这些指标都可以在 Python 中自动化并根据历史数据进行测试。我们将使用的示例是从数据集中随机选择的。初步观察显示出积极的信号,因为卖出信号往往伴随着价格下跌,而买入信号往往伴随着价格上涨。

为了最终测试这个策略,我们将使用Python进行回测,并通过结果来确定其可行性。我们将导入 2019 年至 2022 年欧元/美元货币对的历史数据,特别是使用五分钟烛台。我们还将通过删除无交易活动的时段(例如周末和银行假日)来清理数据。

使用 Pandas TA(技术分析)包,我们将在数据框中添加四个附加列:50 EMA、周期为 3 的 RSI、周期为 5 的 ADX 以及平均真实波动幅度 (ATR)。后者将用于计算止损距离。 EMA 趋势信号将指示蜡烛是否在 50 EMA 曲线下方或上方交易,从而分别确定我们处于下降趋势还是上升趋势。

如果我们处于下降趋势,我们将检查 RSI 是否低于 20,表明超卖情况。如果下降趋势和超卖条件同时满足,我们将产生卖出信号。

同样,如果我们处于上升趋势,我们将检查 RSI 是否高于 80,表明超买状况。如果上升趋势和超买条件都满足,我们将产生买入信号。

为了进一步验证这些信号,我们将寻找与趋势一致的吞噬蜡烛形态。对于卖出信号,我们将搜索看跌吞没蜡烛,其中当前蜡烛的主体向下完全吞没前一个蜡烛的主体。对于买入信号,我们将寻找看涨吞没蜡烛,其中当前蜡烛的主体向上完全吞没前一个蜡烛的主体。

信号生成后,我们将使用平均真实波动范围 (ATR) 计算止损距离。 ATR提供了对指定时期内平均价格范围的估计,可以帮助我们确定合理的止损水平。

在回测阶段,我们将迭代历史数据并应用这些规则来生成和评估交易信号。对于每个信号,我们将模拟一次交易,假设我们在信号生成后下一个蜡烛的开盘价建仓。我们还将根据一定的回报风险比定义固定的止盈水平。

在模拟过程中,我们将跟踪每笔交易的利润或亏损,并计算关键绩效指标,例如总利润、总亏损、胜率和每笔交易的平均回报。这将帮助我们评估该策略的有效性并确定其盈利能力。

值得注意的是,历史数据的回测结果并不能保证未来的表现。市场条件可能会发生变化,过去行之有效的策略在未来可能不再有效。因此,根据实时市场状况不断评估和调整交易策略至关重要。

总之,我们概述了基于平均方向指数 (ADX)、相对强弱指标 (RSI) 和吞没蜡烛形态的雕刻策略。我们已经讨论了使用 Python 自动化该策略并对历史数据进行回溯测试的过程。回溯测试的结果将提供对该策略绩效的深入了解,并有助于评估其作为剥头皮盈利方法的可行性。

Python AlgoTrading Backtest: Using RSI and ADX with Moving Average for Buy/Sell Signals
Python AlgoTrading Backtest: Using RSI and ADX with Moving Average for Buy/Sell Signals
  • 2022.04.07
  • www.youtube.com
This is a backtested strategy using the ADX and the RSI, the algotrading code is built in python and the backtest is conducted using backtesting.py package. ...
 

如何在 Python 中使用成交量指标进行交易策略分析


如何在 Python 中使用成交量指标进行交易策略分析

今天,我们将开始一段激动人心的旅程,测试成交量交易策略。这种特殊的策略在每日时间范围内运行,并以其安全性而闻名,因为理论上它涉及的风险最小。由于其对成交量和其他技术指标的依赖,我将其恰当地命名为“成交量交易策略”。

我们的目标是开发一个代码,可以使用长达 18 年的历史数据自动测试该策略。通过这样做,我们可以全面了解该策略的绩效。对于那些对编码方面感兴趣的人,您可以在视频说明中找到 Jupyter Notebook Python 文件。有一个链接可供您下载我们将用于此测试的完整文件。

首先,我们将利用 200 天指数移动平均线 (EMA) 作为我们的第一个指标。如果价格低于该曲线,则表示下降趋势,而高于 200 EMA 则表示上升趋势。我们的第一条规则很简单:当我们确定下降趋势时,我们将只考虑卖出头寸,而在上升趋势的情况下,我们将只关注买入头寸。

现在,让我们深入研究我们策略的具体细节。我们将寻找与当前趋势相反的连续四根蜡烛,即价格回撤至更接近移动平均线。需要注意的是,蜡烛的数量可以根据用户的喜好进行调整。在我们的 Jupyter Notebook 中,我们提供了随时修改此参数的灵活性。现在,我们将坚持至少四根蜡烛。

接下来,我们检查下面的蜡烛,它应该与趋势的方向一致。例如,如果我们处于下降趋势,我们会寻找看跌蜡烛。在交易日结束时,一旦蜡烛关闭,我们就会检查其成交量。如果成交量超过前一根蜡烛的成交量,则可作为下降趋势中的卖出信号。相反,在上升趋势中,我们搜索至少四个连续的看跌蜡烛,然后是成交量高于前一个蜡烛的看涨蜡烛。这表示买入头寸。

现在是复杂的部分:确定止损和止盈水平。在本视频中,我们探索了两种不同的方法并评估了它们的结果。第一种方法涉及使用与平均真实波动幅度 (ATR) 相关的止损距离,例如我们卖出或买入头寸的 ATR 的两倍或三倍。第二种方法将前几根蜡烛中的最高点视为下降趋势和卖出头寸的止损。设置止损时要考虑的蜡烛数量是我们的 Python 程序中的一个变量,使我们能够实验和测试不同的场景。通常,我从四根蜡烛开始,类似于用于检查我们的交易信号的数量。对于上升趋势和买入头寸,我们寻找前几根蜡烛中的最低点。

现在,让我们检查一下代码,看看它们是如何协同工作的。在我们的 Jupyter Notebook 文件中,我们首先导入必要的库,包括 Pandas,我们将使用它来读取包含 2003 年至 2022 年每日欧元/美元汇率的 CSV 数据文件。此外,我们还加载其他资产的数据,例如亚马逊、eBay 和大众汽车的股票,因为我们也打算在股票市场上测试这一策略。由于我们处理的是日常数据,初始数据集由 6,858 行组成,在数据清理过程中将进一步减少。我们还确保列标题符合我们的要求,将其重命名为“时间”、“开盘价”、“高价”、“低价”、“收盘价”和“成交量”,以确保不同数据文件之间的一致性。

在图表上绘制信号后,我们继续定义止损和止盈水平。在此示例中,测试了两种方法。第一种方法涉及使用平均真实波动范围 (ATR) 来确定止损距离。止损设置为入场点 ATR 的一定倍数。第二种方法考虑指定数量的先前蜡烛中卖出头寸的最高点或买入头寸的最低点来确定止损水平。

一旦定义了止损和止盈水平,我们就会计算每笔交易的损益 (P&L)。我们检查总信号是买入信号还是卖出信号,并相应地计算损益。如果是买入信号,我们将盈亏计算为下一支蜡烛的收盘价与入场价之间的差额。如果是卖出信号,我们将盈亏计算为下一支蜡烛的入场价与收盘价之间的差额。

然后通过将各个交易的损益相加来计算累积损益。我们还根据正损益计算交易总数和获胜率(获胜交易的百分比)。

最后,我们打印结果,包括总盈亏、交易数量和胜率。

Jupyter Notebook 中提供的代码允许进一步定制和测试策略。您可以修改参数,例如确定趋势时要考虑的后面蜡烛的数量、用于生成价格信号的先前蜡烛的数量、用于计算止损的 ATR 倍数以及确定止损水平时要考虑的先前蜡烛的数量。

该代码实施基于 200 天指数移动平均线 (EMA)、交易量和价格变动等技术指标的交易量交易策略。它在指定时期的历史数据上测试策略并计算盈利能力和绩效指标。

How To Use The Volume Indicator For Trading Strategy Analysis In Python
How To Use The Volume Indicator For Trading Strategy Analysis In Python
  • 2022.03.24
  • www.youtube.com
Welcome to my video on how to use the volume indicator for trading strategy analysis in Python. In this video, I will be sharing a daily timeframe volume tra...
 

在 Python 中测试的自动 RSI 倒卖策略



在 Python 中测试的自动 RSI 倒卖策略

今天,我们将测试基于 RSI(相对强度指数)的倒卖策略。该策略包含两个指标:指数移动平均线 (EMA) 和 RSI。我们将使用Python代码进行回测,您可以从视频描述中提供的链接下载该代码。

对于回测,我们将根据不同的时间范围使用该策略的三种不同版本:一种用于一分钟蜡烛,另一种用于 15 分钟蜡烛,第三种用于一小时蜡烛。该视频的重点将放在 15 分钟的时间范围上,但我们将涵盖所有三个版本。

该策略遵循特定规则。首先,我们分析当前价格与 200 EMA 的关系。如果价格高于 200 EMA,我们认为这是一个上升趋势。相反,如果价格低于 200 EMA,我们认为这是下降趋势。在上升趋势中,我们只寻找买入头寸,而在下降趋势中,我们只寻找卖出头寸。

接下来,我们检查两个连续蜡烛的 RSI 值。最初,我们在一分钟时间范围内使用两根蜡烛的 RSI。然而,由于使用一分钟蜡烛进行几年的回溯测试会产生大量数据,因此我们将从 15 分钟的时间范围开始。在这种情况下,我们可以根据时间范围将 RSI 长度调整为三根或四根蜡烛。对于一分钟时间范围,我们将使用两根蜡烛的 RSI 并测试低于 10 和高于 90 的水平。

在上升趋势中,我们等待 RSI 跌破 10,然后再执行买入头寸。对于卖出头寸,我们等待 RSI 升至 90 以上。这些 RSI 水平作为我们交易的切入点。该视频提供了策略如何根据价格和 RSI 标准识别入场位置的直观示例。

下一步是确定交易的止损和止盈值。可以使用多种方法,例如固定距离止损、ATR 相关止损距离或追踪止损值。同样,止盈可以设置为固定距离,也可以与具有一定止盈/止损比率的止损距离相关。

为了评估该策略的有效性,我们编写了 Python 代码来对一到三年的数据进行回溯测试。此外,我们引入了一个步骤来检查策略的稳健性,方法是在新数据上进行测试,这些数据已保持独立以避免偏差。

该视频继续分析 Jupyter Notebook 中的代码。首先加载数据,通过删除零交易量条目(表示周末或银行假日)来清理数据,然后计算 200 EMA 和 RSI 值。还计算平均真实波动幅度 (ATR),以确定潜在的止损距离。

一旦计算出必要的信号,视频就会在图表上演示这些信号的可视化。绘制价格蜡烛、200 EMA 曲线和入场位置(买入和卖出)以直观地分析指标的行为。

在分析信号后,视频解释了在较长时间内对策略进行回溯测试以评估其盈利能力的重要性。最初,该策略在较短的时间内进行了测试,但结果各不相同。因此,较长时期的回测对于评估策略的整体有效性至关重要。

该视频强调了在相当长的一段时间内进行回溯测试和检查策略表现的必要性。通过检查回测的最终结果,我们可以确定该策略是否有利可图且稳健。

Automated RSI Scalping Strategy Tested In Python
Automated RSI Scalping Strategy Tested In Python
  • 2022.03.17
  • www.youtube.com
An Automated RSI Scalping Strategy is presented and backtested using python algorithmic trading over 3 years of data showing positive returns. The Test deta...