pandas matplot 读取日线数据,滚动计算bias250 添加阈值线
所属分类 python
浏览量 206
import pandas as pd
import matplotlib.pyplot as plt
from datetime import datetime
df = pd.read_csv('/data/hs300.txt')
# rolling 滚动计算 250天移动均值
df['ma250'] = df['close'].rolling(window=250).mean()
# 计算 250天 乖离率
df['bias250'] = (df['close'] - df['ma250']) * 100 / df['ma250']
# 根据时间筛选数据
df = df[df['date'] >='2020-01-01']
# 转成日期
df['dt']= pd.to_datetime(df['date'])
# 设置索引
df.set_index('dt')
# df[['bias250']].plot()
# k black
plt.plot(df['dt'],df['close'],color='k')
# 买入信号
buymask = df[df['bias250']< -15]
plt.plot(buymask['dt'],buymask['close'],color='red',linestyle='',marker='o')
# 卖出信号
sellmask = df[df['bias250'] > 20]
plt.plot(sellmask['dt'],sellmask['close'],color='g',linestyle='',marker='o')
# plt.xticks(rotation=45)
# x轴日期自适应 避免重叠
plt.gcf().autofmt_xdate()
plt.show()
# bias250
plt.plot(df['dt'],df['bias250'])
# plt.gca() 获当前 Axes 对象
ax = plt.gca()
# 添加 bias250 上下阈值线
ax.axhline(-15, color='red', linestyle='--')
ax.axhline(15, color='red', linestyle='--')
# plt.xticks(rotation=45)
# x轴日期自适应 避免重叠
plt.gcf().autofmt_xdate()
plt.show()
上一篇
下一篇
jupyter 使用 技巧
matplotlib 技巧
matplot 基本用法
pandas matplot 画图 超出阈值 变颜色
沪深300指数 bias250 z20 z250 分析
聚宽 沪深300指数 数据读取分析