我们利用mplfiance绘制股票图,因为刚刚写完财务数据查询代码,非常多的代码比较累,看效果,后面有空我会仔细介绍怎么样使用。
我们只需要输入股票代码,数据开始介绍时间就可以了。
需要程序关注微信公众号数据分析与运用回复绘制股票图就可以了
也可以联系作者微信
程序代码
import pandas as pd
import matplotlib.pyplot as plt
import quantstats as qs
from finta import TA
import mplfinance as mpf
import PySimpleGUI as g
import akshare as ak
code=g.popup_get_file('输入股票代码比如sh600031')
start=g.popup_get_file('输入开始时间比如20210101')
end=g.popup_get_file('输入结束时间比如20210901')
df1=ak.stock_zh_a_daily(symbol=code,start_date=start,end_date=end)
macd=TA.MACD(df1)
boll=TA.BBANDS(df1)
rsi=TA.RSI(df1)
df1.rename(columns={'date':'Date','open':'Open','close':'Close','high':'High','low':'Low','volume':'Volume'},inplace=True)
#时间格式转换
plt.rcParams['font.family']='SimHei'
plt.rcParams['axes.unicode_minus']=False
df1['Date']=pd.to_datetime(df1['Date'])
#出现设置索引
df1.set_index(['Date'],inplace=True)
#设置股票颜
mc=mpf.make_marketcolors(up='g',down='r',edge='i')
#设置系统
s=mpf.make_mpf_style(marketcolors=mc)
add_plot=[mpf.make_addplot(macd['MACD'],panel=1,title='{}MACD'.format(code),color='r'),mpf.make_addplot(macd['SIGNAL'],panel=1,color='y'),
mpf.make_addplot(rsi,panel=2,title='RSI'),
mpf.make_addplot(boll['BB_UPPER'],panel=0,color='r',title='BOLL'),mpf.make_addplot(boll['BB_MIDDLE'],panel=0,color='m'),mpf.make_addplot(boll['BB_LOWER'],panel=0,color='g')]
#绘制股票图,5,10,20日均线
mpf.plot(df1,type='candle',style=s,mav=(5,10,20),addplot=add_plot)
plt.show()