Python + tushare + talib + mplfinance绘制MACD

import talib as tb
import tushare as ts
import pandas as pd
# ~ import matplotlib
import matplotlib.pyplot as plt
import mplfinance as mpf
import numpy as np
from datetime import datetime
 
ts.set_token('you token')
pro = ts.pro_api()

df = pro.daily(ts_code='000001.SZ', start_date='20200101', \
end_date='20201210')

df['date'] = df['trade_date'].apply\
(lambda x: datetime.strptime(x, '%Y%m%d'))   #将字符串型日期转换成时间戳

data = df.loc[:,['date', 'open','close','high','low','vol']]  #获取所有行,并获取所需列

data = data.rename(columns={"vol": "volume"})   # 修改列名

data.set_index('date', inplace=True)   #将日期设为索引

data.index.name = "Date"   #修改索引名

data = data.sort_index()  #根据索引值升序排序

kl_index = data.index

dif, dea, bar = tb.MACD(data.close.values,fastperiod=12,\
slowperiod=26,signalperiod=9)     # 可设置MACD三个参数

plt.plot(kl_index, dif, label='macd dif')
plt.plot(kl_index, dea, label='signal dea')

# 如果bar大于0则用其原值,小于0将其改为0
bar_red = np.where(bar > 0, bar, 0)   
# 如果bar小于0则用其原值,大于0将其改为0
bar_green = np.where(bar < 0, bar, 0)
# 绘制 > 0的柱状图
plt.bar(kl_index, bar_red, facecolor='red', label='hist bar')
# 绘制 < 0的柱状图
plt.bar(kl_index, bar_green, facecolor='green', label='hist bar')
plt.xticks(rotation = 45)
plt.show()

输出结果为:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhaojieming1990

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值