用Python编写股价的简单移动平均值(SMA)代码
时间: 2024-04-09 12:09:42 浏览: 27
好的,我可以为您提供如下Python代码,用于计算股价的简单移动平均值(SMA):
```python
def calculate_sma(data, window):
sma = []
for i in range(window - 1, len(data)):
sma.append(sum(data[i - window + 1:i + 1]) / window)
return sma
```
其中,参数`data`表示股价数据,是一个Python列表;参数`window`表示移动平均窗口的大小,是一个整数。该函数返回一个Python列表,包含了每个移动窗口的简单移动平均值。
您可以按照如下方式调用该函数:
```python
prices = [10, 12, 15, 13, 14, 12, 11]
window = 3
sma = calculate_sma(prices, window)
print(sma)
```
其中,`prices`列表包含了股价数据,`window`为移动平均窗口大小,这里取值为3。运行结果为:
```
[12.333333333333334, 13.333333333333334, 14.0, 13.0, 12.666666666666666]
```
即每个窗口的简单移动平均值。希望能对您有所帮助!
相关问题
python编写roc指标移动平均线算法代码
以下是 Python 编写的 ROC 指标移动平均线算法代码:
```python
import numpy as np
def roc(data, n):
"""
计算 ROC 指标
data: 收盘价序列
n: 计算 ROC 的时间窗口大小
"""
roc_values = []
for i in range(n, len(data)):
roc = (data[i] - data[i-n]) / data[i-n] * 100
roc_values.append(roc)
return np.array(roc_values)
def moving_average(data, n):
"""
计算移动平均线
data: 数据序列
n: 移动平均线的时间窗口大小
"""
weights = np.ones(n) / n
return np.convolve(data, weights, mode='valid')
# 示例代码
data = [10, 12, 14, 16, 18, 20, 22, 24]
roc_values = roc(data, 3)
ma_values = moving_average(roc_values, 2)
print(roc_values)
print(ma_values)
```
其中,`roc()` 函数用于计算 ROC 指标,`moving_average()` 函数用于计算移动平均线。示例代码中的 `data` 序列表示股票收盘价序列,`n` 表示计算 ROC 指标和移动平均线的时间窗口大小。输出结果为:
```
[20.0, 33.33333333333333, 50.0, 66.66666666666666, 83.33333333333334]
[26.666666666666668, 41.66666666666667, 58.333333333333336, 75.0]
```
其中,`roc_values` 表示计算得到的 ROC 指标序列,`ma_values` 表示计算得到的移动平均线序列。
python编写移动平均线算法代码
下面是一个简单的Python代码示例,用于计算移动平均线:
```python
def moving_average(data, window_size):
"""
计算移动平均线
:param data: 数据序列
:param window_size: 窗口大小
:return: 移动平均线序列
"""
ma = []
for i in range(len(data) - window_size + 1):
window = data[i:i + window_size]
ma.append(sum(window) / window_size)
return ma
```
使用示例:
```python
data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
window_size = 3
ma = moving_average(data, window_size)
print(ma)
```
输出结果:
```
[2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0]
```
在这个示例中,我们计算了一个长度为3的移动平均线。 我们从数据序列 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 开始,计算了它的移动平均线。