三十日平均趋向指数怎么用python 但不用talib
时间: 2023-08-03 09:07:46 浏览: 140
你可以使用Python来计算三十日平均趋向指数(Moving Average Convergence Divergence,MACD),而不依赖于`talib`库。下面是一个使用pandas和numpy库计算MACD的示例代码:
```python
import pandas as pd
import numpy as np
def calculate_macd(data, n_fast, n_slow, n_signal):
ema_fast = data.ewm(span=n_fast, min_periods=n_fast - 1).mean()
ema_slow = data.ewm(span=n_slow, min_periods=n_slow - 1).mean()
macd = ema_fast - ema_slow
signal = macd.ewm(span=n_signal, min_periods=n_signal - 1).mean()
histogram = macd - signal
return macd, signal, histogram
# 示例数据
data = pd.Series([10, 12, 15, 14, 16, 18, 17, 19, 20, 22, 25, 23, 24, 23, 22, 21, 19, 20, 18, 16])
# 计算MACD指标
n_fast = 12
n_slow = 26
n_signal = 9
macd, signal, histogram = calculate_macd(data, n_fast, n_slow, n_signal)
# 输出MACD指标结果
print("MACD:", macd)
print("Signal:", signal)
print("Histogram:", histogram)
```
在上面的示例代码中,`calculate_macd`函数接收一个数据序列和三个参数:`n_fast`表示快速移动平均线的窗口大小,`n_slow`表示慢速移动平均线的窗口大小,`n_signal`表示信号线的窗口大小。函数首先使用指数加权移动平均值(EMA)计算出快速和慢速移动平均线,然后计算出MACD线、信号线和柱状图。最后,示例代码使用给定的示例数据调用`calculate_macd`函数,并输出计算结果。
请注意,这只是一个简单的示例,你可以根据你的需求进行修改和扩展。
阅读全文