#talib入门2:上证指数走势图及移动平均线
作者:冯德平(山野雪人)
本文程序中给出了详细的注释:
import pandas as pd
import talib as ta
import matplotlib.pyplot as plt
#正常显示画图时出现的中文和负号:
from pylab import mpl
mpl.rcParams['font.sans-serif']=['SimHei'] #显示中文
#mpl.rcParams['axes.unicode_minus']=False #显示正负号
#从文件读取上证指数数据
df=pd.read_csv(r'D:\temp\szzs.csv')
print(df.tail(10)) #显示最后10行数据,默认是5行
#画3、21指数移动平均线
times=[3,21]
for time in times:
df['ma_'+str(time)]=ta.EMA(df.close,timeperiod=time) #timeperiod是时间,如3天,21天
#df['ma_'+str(time)]=ta.SMA(df.close,timeperiod=time)
#df['ma_'+str(time)]=ta.WMA(df.close,timeperiod=time)
#df['ma_'+str(time)]=ta.DEMA(df.close,timeperiod=time)
#df['ma_'+str(time)]=ta.TEMA(df.close,timeperiod=time)
#df['ma_'+str(time)]=ta.TRIMA(df.close,timeperiod=time)
#df['ma_'+str(time)]=ta.KAMA(df.close,timeperiod=time)
#df['ma_'+str(time)]=ta.T3(df.close,timeperiod=time)
#df['ma_'+str(time)]=ta.MAMA(df.close,timeperiod=time) #出现错误
#MAMA不知为什么会出现错误,将3,21改成5,20则可以正常运行,有待进一步的研究
#起始时间:2015-09-01;close为收盘价;figsize为图片尺寸:
df.loc['2015-09-01':,['close','ma_3','ma_21']].plot(figsize=(20,8))
ax = plt.gca() #获得当前的Axes对象ax
ax.spines['right'].set_color('none') #隐藏右边的竖轴
ax.spines['top'].set_color('none') #隐藏顶上的横轴
plt.title('上证指数走势及移动平均线',fontsize=14) #标题
plt.xlabel('时间') #标注X轴
plt.ylabel('上证指数') #标注Y轴
plt.show() #绘图
'''
date open close high low volume code
5254 2021-09-06 3580.14 3621.86 3626.29 3580.14 521713276.0 sh
5255 2021-09-07 3621.71 3676.59 3681.93 3615.14 547721875.0 sh
5256 2021-09-08 3673.40 3675.19 3695.32 3661.00 586436193.0 sh
5257 2021-09-09 3666.82 3693.13 3693.45 3662.16 604810330.0 sh
5258 2021-09-10 3691.19 3703.11 3722.87 3681.64 635200433.0 sh
5259 2021-09-13 3699.25 3715.37 3716.83 3692.82 557484019.0 sh
5260 2021-09-14 3709.63 3662.60 3723.85 3655.63 564952386.0 sh
5261 2021-09-15 3651.16 3656.22 3677.53 3638.32 474970001.0 sh
5262 2021-09-16 3664.84 3607.09 3677.92 3606.73 546741474.0 sh
5263 2021-09-17 3595.27 3613.97 3620.96 3569.27 516850210.0 sh
'''
本文数据地址:
链接:https://pan.baidu.com/s/1tDiO6QYi5kTYT6AiYlsGfw
提取码:bvq9