通过Python计算股票7min的 K 线数据,并将 K 线数据的最大值画在折 线图上, y 轴为 K 线最大值, x 轴为日期
时间: 2024-02-27 16:54:43 浏览: 213
利用python numpy+matplotlib绘制股票k线图的方法
5星 · 资源好评率100%
好的,我会尽力回答你的问题。首先,计算股票的 K 线数据需要使用股票的历史价格数据,可以通过调用股票数据接口获取。这里以 tushare 库为例,通过以下代码获取历史价格数据并计算 K 线数据:
```python
import tushare as ts
# 获取历史价格数据
df = ts.get_k_data('600519', ktype='D', start='20200101', end='20210630')
# 计算K线数据
df['ma7'] = df['close'].rolling(window=7).mean() # 7日均线
df['ma30'] = df['close'].rolling(window=30).mean() # 30日均线
df['high_shift1'] = df['high'].shift(1) # 昨日最高价
df['low_shift1'] = df['low'].shift(1) # 昨日最低价
df['tr'] = df[['high', 'close', 'low_shift1']].apply(lambda x: max(x) - min(x), axis=1) # 真实波动幅度
df['atr7'] = df['tr'].rolling(window=7).mean() # 7日平均真实波动幅度
df['up'] = df['ma7'] + 2/3*df['atr7'] # 上轨线
df['down'] = df['ma7'] - 2/3*df['atr7'] # 下轨线
df['k'] = df.apply(lambda x: (x['close']-x['down'])/(x['up']-x['down'])*100, axis=1) # K值
df['d'] = df['k'].rolling(window=3).mean() # D值
```
其中,计算 K 值和 D 值的公式为:
$$
K = \frac{close-low}{up-low} \times 100 \\
D = \frac{K_{1}+K_{2}+K_{3}}{3}
$$
计算出 K 线数据后,可以通过 matplotlib 库绘制折线图,将 K 线最大值作为 y 轴数据,日期作为 x 轴数据,代码如下:
```python
import matplotlib.pyplot as plt
# 绘制折线图
plt.plot(df['date'], df['high'].rolling(window=7).max(), label='K线最大值')
plt.xlabel('日期')
plt.ylabel('K线最大值')
plt.legend()
plt.show()
```
最后,需要注意的是,获取股票数据需要申请相应的权限,同时绘制的折线图仅为示例,实际应用中可能需要根据具体需求进行调整。
阅读全文