作为第一步,要计算交叉的数量以及它们何时发生,您可以执行以下操作。把它当作伪代码来得到一个想法..
# MA: list containing the values of the moving average for each time period
# High: list containing the highs of each bar
# Low: list containing the lows of each bar
MA = [...]
High = [...]
Low = [...]
count = 0 # the number of crosses
index_cross = [] # the indices where crosses occur
for i in range(len(MA)):
if Low[i] < MA[i] and High[i] > MA[i]:
index_cross.append(i)
count += 1
现在你有十字架的数量和它们发生的时间。这假设条形图穿过 MA。(即没有跳空,前一根柱线的低点在 MA 以上,而当前柱线的高点在 MA 线以下)。然后,您可以继续使用 index_cross 指数来找到价格与交叉发生位置的最大偏差。您必须考虑是使用收盘价还是在上升趋势高点和下降趋势低点的情况下。
作为旁注,要使用兴趣点注释图形,您可以查看 pandas(用于数据分析的库)。此外,当市场波动时,此类注释往往会变得非常混乱。希望这能给一些方向..