0

我想创建一个循环来自动查找具有特定场景/标准的 MACD 背离,但我发现执行起来很困难,尽管在通过眼睛查看图表时很容易发现它。注意:您可以轻松地将其作为现成可用的扫描仪,但我想提高我的 python 知识,希望有人能够在这里帮助我完成这项任务。

我的主要问题是如何让它引用 40 行,并向前测试 - 我无法理解逻辑本身。

规则如下:假设我们有下表

日期 价格 MACD 历史
2021 年 4 月 8 日 30 1
2021 年 5 月 8 日 29 0.7
2021 年 6 月 8 日 28 0.4
2021 年 7 月 8 日 27 0.1
2021 年 8 月 8 日 26 -0.15
2021 年 9 月 8 日 25 -0.70
2021 年 10 月 8 日 26 -0.1
2021 年 11 月 8 日 27 0.2
2021 年 12 月 8 日 28 0.4
13/08/2021 29 0.5
14/08/2021 30 0.55
15/08/2021 31 0.6
16/08/2021 30 0.55
2021 年 8 月 17 日 29 0.5
2021 年 8 月 18 日 28 0.4225
2021 年 8 月 19 日 27 0.4
20/08/2021 26 0.35
21/08/2021 25 0.3
22/08/2021 24 0.25
23/08/2021 23 0.2
24/08/2021 22 0.15
25/08/2021 21 0.1
26/08/2021 20 0.05
27/08/2021 19 0
28/08/2021 18 -0.05
29/08/2021 17 -0.1
2021 年 8 月 30 日 16 -0.25

我希望代码:

  • 从今天开始回顾 40 天,在这 40 天内获得 MACDHist 中达到的最低点和与之对应的价格(即在本示例中为 2021 年 9 月 8 日的价格 25$ 和 MACDHist -0.7)

  • 将其与今天的价格和 MACDHist 进行比较,并根据以下 3 条规则给出分歧:

  1. 如果今天的价格 < 第 1 点的记录价格(在本例中为 16$ < 25$)并且
  2. 今日 MACDHist > 第 1 点以绝对值记录的 MACD (ABS(-0.7) > ABS(-0.20)) 和
  3. 在同一时期,我们记录了那些价格和 MACDHist(从 2021 年 9 月 8 日到今天),MACDHist 至少有一次为正。

如果我的解释不是很清楚,我很抱歉,因为下图可能有助于说明我所追求的情况: A. 指定时期内的 Lowes MACDHist B. 在同一时期内,MACDHist 至少一次为正 C. 价格低于 A 点(价格 C 低于 A)且 MACDHist 在 A 点高于 MACDHist(即在 ABS 方面较低)

在此处输入图像描述

4

2 回答 2

1

在类似的情况下,我使用了 backtrader。它是一个用于回测和交易的功能丰富的 Python 框架,您还可以使用它来生成大量预定义的指标。除了这个框架,您还可以开发自己的自定义指标,如此处所示。它非常易于使用,并且支持很多数据格式,例如 pandas 数据帧。请看一下!

于 2021-08-31T07:56:43.837 回答
1

我在这篇很棒的帖子中找到了答案。它不是直接实现,但至少逻辑是相同的,通过用 MACDHist 替换 RSI 信息,您会得出相同的结论。 如何在 Python 中实现 RSI 发散

于 2021-09-12T10:05:40.650 回答