'''
Author: Charmve yidazhang1@gmail.com
Date: 2023-03-24 10:25:21
LastEditors: Charmve yidazhang1@gmail.com
LastEditTime: 2023-04-13 22:17:32
FilePath: /Qbot/myplot.py
Version: 1.0.1
Blogs: charmve.blog.csdn.net
GitHub: https://github.com/Charmve
Description:
Copyright (c) 2023 by Charmve, All Rights Reserved.
Licensed under the MIT License.
'''
import tushare as ts
import pandas as pd
import matplotlib.pyplot as plt
from mpl_finance import candlestick_ochl
from matplotlib.pylab import date2num
import datetime
import talib
plt.rcParams['font.sans-serif']=['Arial Unicode MS']
start_date = '2018-01-01'
end_date = '2023-03-20'
df = ts.get_k_data('600519', start=start_date, end=end_date)
df['EMA12'] = talib.EMA(df['close'], timeperiod=12)
df['EMA26'] = talib.EMA(df['close'], timeperiod=26)
df['DIF'] = df['EMA12'] - df['EMA26']
df['DEA'] = talib.EMA(df['DIF'], timeperiod=9)
df['MACD'] = 2 * (df['DIF'] - df['DEA'])
df['date'] = pd.to_datetime(df['date'])
df['date'] = df['date'].apply(date2num)
df_values = [tuple(vals) for vals in df[['date', 'open', 'close', 'high', 'low']].values]
fig, ax = plt.subplots(figsize=(20, 10))
candlestick_ochl(ax, df_values, width=0.6, colorup='red', colordown='green', alpha=0.8)
plt.plot(df['date'], df['DIF'], label='DIF')
plt.plot(df['date'], df['DEA'], label='DEA')
plt.bar(df['date'], df['MACD'], label='MACD', width=0.03 * len(df))
plt.legend()
plt.xticks(rotation=30)
ax.xaxis_date()
plt.title('贵州茅台从2018年元旦至2023年3月20日的行情数据')
plt.show()