用 Python 实现 RSI 指标线与股价的顶背离、底背离
Python中文社区 于 2021-09-12 09:20:00 发布 1205 收藏 17
当价格和您的指标向相反方向移动时,就会出现背离。例如,您使用 RSI 进行交易,它上次在 80 处达到峰值,现在在 70 处达到峰值。当 RSI 达到 80 时,您交易的标的证券价格为 14 美元,现在达到新的峰值 18 美元。这是一个背离。
由于峰值的趋势,交易者将价格称为“更高的高点”,将 RSI 称为“更低的高点”。技术交易者通过视觉跟踪但很难复制,因为并不总是清楚究竟是什么造就了“峰值”。我们提供了一种算法来检测交易的波峰和波谷,我们将在下面深入探讨构建 RSI 背离策略的细节时加以利用。
作为入场信号的背离
检测背离
argrelextrema 用于检测 SciPy 信号处理库中的峰值,而 deque 就像一个固定长度的列表,如果超过它的长度,它将删除最旧的条目并保留新条目。我们将使用第一个来发现数据中的极值,然后循环遍历它们并保留高于先前条目的点。
为了找出极值,我们需要传递一个名为 order 的参数。这定义了我们实际需要在峰的两侧有多少个点来标记峰。因此,当 order=5 时,我们需要一些东西成为左右 5 个数据点内的最高点。我们提供的另一个参数是 K ,它只是一个整数,用于确定我们想要识别多少个连续峰值以确定更高的高点趋势。
这将返回包含峰值索引的双端队列列表。为了获得用于识别背离的所有相关组合,我们需要四个这样的函数,一个用于更高的高点(上图)、更低的低点、更低的高点和更高的低点。它们中的每一个的逻辑都是相同的,我们只是在第 9 行将 np.greater 更改为 np.less 并在第 18 行更改不等号以获得我们想要的行为。
我们需要一些数据,因此我们将从 Yahoo! 使用 yfinance 包的金融 API。我将使用埃克森美孚 (XOM),因为它在过去几十年中经历了相当多的繁荣和萧条。
在这个图中,我们提取了所有潜在的分歧点,并将高点和低点映射到价格。另外,请注意我为每个峰值绘制了确认点。我们不知道峰值是否真的是峰值,直到我们给它几天(在这种情况下为 5 天)看看价格接下来会发生什么。
价格图表只是背离所需的一半,我们还需要应用一个指标。借鉴考夫曼出色的交易系统和方法,我们应该使用某种动量指标。我们将继续应用 RSI,尽管 MACD、随机指标等也适用。
RSI 的峰值和谷值
RSI 最常被解释为当该值高于中心线 (RSI=50) 时表现出上升势头,而当它低于中心线时表现出下降势头。如果我们有一系列高于 50 的较小峰值,则可能表明动能减弱,而低于 50 的一系列不断增加的谷可能表明我们可以交易的动能增加。
有了该功能,我们可以将 RSI 及其相关列添加到我们的数据框中:
这只是一个短暂的 7 个月窗口,因此我们可以清楚地看到价格和 RSI 的走势,因此只有一个背离可见。我们在 RSI 图表(橙色,向上的三角形)上看到 6 月中旬在价格图表(蓝色,向下的三角形)中一系列较低的低点中间确认更高的低点。我们不权衡图表,所以让我们把一个算法放在一起来测试这个 RSI 背离模型。
建立 RSI 发散模型
到目前为止,我们有一些通用规则来识别我们有背离的情况,但我们仍然需要进入和退出规则。首先,我们可以求助于 Kaufmann 出色的交易系统和方法,在那里他列出了一个示例策略,其中包含以下规则:
如果指标高于目标水平(例如 RSI = 50),则在确定背离时输入头寸。如果指标背离消失,则退出。如果我们在价格创出更高的高点而 RSI 创出更低的高点时做空,那么我们的 RSI 会移动到更高的高点,那么我们就出局了。一旦指标达到目标水平就退出。允许背离转换为趋势位置。为此,我们使用单独的趋势指标(例如 EMA 交叉),如果趋势与背离方向相同,我们将持有头寸。如果背离消失但趋势继续,我们持有,并仅在趋势消失时退出。我们将根据 Kaufmann 规则构建两种模型,一种仅交易背离(规则 1-3),另一种具有背离加趋势(所有 4 条规则)。当然,您可以根据自己的需要随意修改这些,并自己尝试各种方法。
接下来,我将构建一些辅助函数来标记我们的峰值。第一组将修改我们的 getHigherHighs 函数组的输出。这些是为上述可视化而构建的,但我们只需要为我们的模型提取趋势的确认点。另请注意,由于我们正在向索引添加顺序,因此我们可能会获得会引发索引错误的确认点,因此我们会删除任何大于我们拥有的数据点数量的索引。
为了减少重写代码,我将引入一个名为 getPeaks 的函数,它获取我们的数据帧并将我们的高点和低点的输出编码为列向量。它将使用我们上面定义的四个函数,并从我们触及更高高点到 Close_highs 列分配值 1。如果我们的高点在确认较低的高点后呈下降趋势,那么我们在同一列中用 -1 标记。它会为低点做同样的事情。记住哪些值为 1 哪些值为 -1 很重要,因此如果趋势正在增加(更高的高点或更高的低点),我将其设为 1,如果趋势正在下降(更低的高点或更低的低点),我将其设为 1 )。
最后,我们可以制定我们的战略。在这里,我们只是遵循上面列出的前 3 条规则。
关于退出条件需要注意的一件事,我们要等待趋势的变化。我没有等待 5 天来确认 RSI 的峰值,而是添加了一个条件,即如果 RSI 跌破我们的多头仓位的入场 RSI 或高于我们的空头仓位的入场 RSI,我们应该退出。这是有效的,因为如果我们在 RSI 的较低高点做空,那么如果情况逆转,我们将退出。如果 RSI 收于我们的入场 RSI 上方,那么要么成为更高的高点,从而打破我们的趋势,要么更高的高点仍将到来。设置这个条件只会让我们更快地退出交易。
好了,解释够了,让我们用 2000-2020 年的数据测试一下。
最后,背离策略的表现优于买入并持有的策略(忽略埃克森美孚支付的股息)。它的波动性较小,跌幅较小,但在 2004 年至 2020 年期间表现不佳。换句话说,在 2020 年突破之前,你会等待 16 年,而这种策略看起来像是对底层证券的亏损。这种策略可能在其他地方更有效或适合多元化的投资组合,但至少在这种情况下, 纯 RSI 背离策略看起来不太好。
RSI 背离和趋势
对于下一个模型,让我们采用 Kaufman 的建议并应用趋势转换。为此,我们将选择 EMA 使用 RSI 进行买卖 交叉。因此,该模型将像我们上面看到的背离模型一样进行交易,但会检查我们的 EMA 交叉所指示的趋势。如果我们做多且 EMA1 > EMA2,我们将保持该头寸。
添加我们的趋势指标大大增加了我们的回报。它以较低的波动性(尽管比 RSI 背离策略更多)和较高的风险调整回报。最大回撤小于底层证券经历的最大回撤,而且持续时间更短。
你准备好交易了吗?
我们研究了两种 RSI 背离策略的编码和交易,一种很好,另一种则不然。这是否意味着您应该出去用 EMA 交叉交易 RSI 背离?
在这里给你一些关于这些指标的想法和解释。这些快速的回测很有用,因为您可以了解如何测试想法,并且可以在各种证券和市场上进行测试以开始缩小选择范围。也许更严格的测试表明 RSI 背离是您系统中真正有价值的部分,而趋势模型是一个异常值。除非你测试它,否则你永远不会知道!
扫描本文最下方二维码获取全部完整源码和Jupyter Notebook 文件打包下载。
↓↓长按扫码获取完整源码↓↓
股票直播视频行情分析
咨询电话: 021-62167888
RSI极限交易方法的使用步骤
来源:技术派 2022-02-25 15:使用 RSI 进行买卖 28:37
人气-->
外汇交易中应该怎样使用RSI指标
Disclaimer: The content above represents only the views 使用 RSI 进行买卖 of the author or guest. It does not represent any views or positions of FOLLOWME and does not mean that FOLLOWME agrees with its statement or description, nor does it constitute any investment advice. For all actions taken by visitors based on information provided by the FOLLOWME community, the community does not assume any form of liability unless otherwise expressly promised in writing.
RSI指標 - 相对强弱指数
RSI 给出的做空或做多的信号. 有两个关键水平线: 30和70. 如果指标值低于30, 市场炒卖. 如果高于70, 使用 RSI 进行买卖 市场超买.
如果交易者寻找做多的入场点, 可以等待指标低于30. 指标线反转超过30说明趋势反转. 相反如果做空, 需要等待指标高于70.
计算RSI指標
RSI = 100 – 100/(1 + RS)
RS (14) = Σ(牌价正增长)/Σ(|牌价负增长|)
如何在交易平台中使用 相对强弱指数
外汇指标 FAQ
什么是外汇指标?
交易者使用外汇指标来预测市场的价格走势, 使用 RSI 进行买卖 从而增加在外汇市场中赚钱的机会.外汇指标实际上考虑了特定交易工具的价格和数量, 以进行进一步的市场预测.
什么是最佳技术指标?
技术分析通常包含在各种交易策略中, 不能与技术指标分开考虑.一些指标很少使用, 使用 RSI 进行买卖 而另一些指标对于许多交易者而言几乎是不可替代的.我们重点介绍了5种最受欢迎的技术分析指标:移动平均线(MA), 指数移动平均线(EMA), 随机震荡指标, 布林线, 移动平均收敛散度(MACD).
如何使用技术指标?
交易策略通常需要多个技术分析指标以提高预测准确性.落后的技术指标显示了过去的趋势, 而领先指标则预测了未来的趋势.选择交易指标时, 还应考虑不同类型的图表工具, 例如交易量, 动量, 波动率和趋势指标.
指标在外汇中是否起作用?
指标有两种:落后和领先.滞后指标基于过去的走势和市场反转, 并且在市场趋势强劲时更为有效.领先指标试图预测未来的价格走势和反转, 它们通常在区间交易中使用, 并且由于它们会产生许多错误信号, 因此不适合趋势交易.