macD柱背离公式源码
时间: 2023-09-22 11:05:11 浏览: 266
这是一个 Python 实现的 MACD 指标计算及背离判断的示例代码:
```python
import pandas as pd
import numpy as np
def macd(df, fast=12, slow=26, signal=9):
"""Calculate MACD indicator"""
exp1 = df['Close'].ewm(span=fast, adjust=False).mean()
exp2 = df['Close'].ewm(span=slow, adjust=False).mean()
macd = exp1 - exp2
signal = macd.ewm(span=signal, adjust=False).mean()
histogram = macd - signal
return macd, signal, histogram
def macd_divergence(df, fast=12, slow=26, signal=9):
"""Detect MACD divergence"""
macd, signal, histogram = macd(df, fast, slow, signal)
close = df['Close']
# Check bullish divergence
bullish_div = ((macd.diff() > 0) & (histogram.diff() < 0) &
(close.diff().rolling(5).sum() > 0))
# Check bearish divergence
bearish_div = ((macd.diff() < 0) & (histogram.diff() > 0) &
(close.diff().rolling(5).sum() < 0))
return bullish_div, bearish_div
# 示例用法
df = pd.read_csv('data.csv')
bullish_div, bearish_div = macd_divergence(df)
print(bullish_div)
print(bearish_div)
```
这个代码使用了 Pandas 库来处理时间序列数据,并且定义了两个函数,一个用于计算 MACD 指标,另一个用于检测背离。在 `macd()` 函数中,我们使用了 Pandas 的指数加权平均函数 `ewm()` 来计算快线和慢线的移动平均值,并且用它们的差值来计算 MACD 指标。在 `macd_divergence()` 函数中,我们使用了 Pandas 的滚动求和函数 `rolling()` 来计算收盘价的变化量,并且用它来判断背离。最后,我们可以使用这个代码来读取一个包含股票价格数据的 CSV 文件,并且计算出其中的背离情况。
阅读全文