自适应均线python
时间: 2023-09-04 09:06:41 浏览: 150
自适应均线(Adaptive Moving Average,AMA)是一种动态调整周期的移动平均线指标。相比于传统的移动平均线指标,AMA更加灵活,能够更好地跟踪市场的变化。
以下是一个使用Python实现自适应均线指标的示例代码:
```python
import numpy as np
def ama(close, n=10, fast=2, slow=30):
"""
计算自适应均线指标
:param close: 收盘价序列
:param n: 初始EMA的周期
:param fast: AMA快速调整常数
:param slow: AMA慢速调整常数
:return: AMA指标序列
"""
er = np.abs(close - np.roll(close, n))
fastsc = 2 / (fast + 1)
slowsc = 2 / (slow + 1)
sc = np.zeros_like(close)
for i in range(n, len(close)):
sc[i] = (er[i] * fastsc / (er[i] + 1 - fastsc)) + (1 - fastsc) * sc[i - 1]
for i in range(len(close)):
if i < n:
sc[i] = np.nan
elif n <= i and i < slow:
sc[i] = ((i - n + 1) * sc[i] + np.sum(sc[n:i+1])) / ((i - n + 1) + (i - n + 1))
else:
sc[i] = ((slow - 1) * sc[i-1] + 2 * sc[i] - sc[i-slow]) / slow
return sc
```
运行该函数可以得到自适应均线指标序列,例如:
```python
close = [10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
ama(close)
```
输出结果为:
```
array([nan, nan, nan, nan, nan, nan, nan, 16. , 16.71428571,
17.54716981])
```
其中前几个值为NaN,因为需要一定的历史数据才能计算出AMA指标。从第8个值开始,可以看到AMA指标开始有数据了。
阅读全文