免责声明:本人不是专业人士,纯粹个人爱好,如有错误欢迎指正。
本文分析的对象是股票数据,数据采集渠道和方式很多,可以自己写爬虫,也可以用开源的工具。这里我们使用开源工具tushare, https://tushare.pro/register?reg=332190。
step 1. 安装tushare
pip install tushare -i https://pypi.tuna.tsinghua.edu.cn/simple
step 2. 注册账号
虽然是开源,但是需要先注册后才能获取数据。注册地址:https://tushare.pro/register?reg=332190
step 3. 获取token
获取token方法请查看 https://tushare.pro/document/1?doc_id=39
step 4. 调取数据
import tushare as ts
# 设置token
ts.set_token('your token here')
# 初始化
pro = ts.pro_api()
# 调取日线数据
df = pro.daily(ts_code='000001.SZ', start_date='20180701', end_date='20180718')
# 查看数据
df.head()
# 计算平均线
ma5 = df['close'].rolling(5).mean()
ma10 = df['close'].rolling(10).mean()
ma20 = df['close'].rolling(20).mean()
# 合并,并重命名重复的字段后缀
m = pd.merge(df, ma5, on='trade_date', suffixes=('', '_ma5'))
m = pd.merge(m, ma10, on='trade_date', suffixes=('', '_ma10'))
m = pd.merge(m, ma20, on='trade_date', suffixes=('', '_ma20'))
# 删除前120天的数据
m = m.iloc[120:, :]
# 重命名字段名
m = m.rename(columns={'close_ma5':'ma5', 'close_ma10':'ma10', 'close_ma20':'ma20'})
step 1. 安装matplotlib
pip install matplotlib
step 2. 引用
import matplotlib.pyplot as plt
from matplotlib.pyplot import MultipleLocator
step 3. 利用处理的数据画图
fig = plt.figure(figsize = (20,15))
x = m.index.astype('str')
# 绘图
plt.plot(x, # x轴数据
m.ma5, # y轴数据
linestyle = '-', # 折线类型
linewidth = 2, # 折线宽度
color = 'brown', # 折线颜色
marker = 'o', # 点的形状
markersize = 2, # 点的大小
markeredgecolor='black', # 点的边框色
markerfacecolor='brown', # 点的填充色
label = 'ma5')
plt.plot(x, # x轴数据
m.ma20, # y轴数据
linestyle = '-', # 折线类型
linewidth = 2, # 折线宽度
color = 'purple', # 折线颜色
marker = 'o', # 点的形状
markersize = 2, # 点的大小
markeredgecolor='black', # 点的边框色
markerfacecolor='purple', # 点的填充色
label = 'ma20')
# 添加标题和坐标轴标签
plt.title('000001')
plt.xlabel('date')
plt.ylabel('p')
# 剔除图框上边界和右边界的刻度
plt.tick_params(top = 'off', right = 'off')
# 为了避免x轴日期刻度标签的重叠,设置x轴刻度自动展现,并且45度倾斜
plt.xticks(rotation = 45)
x_major_locator = MultipleLocator(120)
ax = plt.gca()
ax.xaxis.set_major_locator(x_major_locator)
# 显示图形
plt.show()