AKShare绘制贵州茅台K线图:布林线与MACD指标详解
创作时间:
2025-01-22 07:31:06
作者:
@小白创作中心
AKShare绘制贵州茅台K线图:布林线与MACD指标详解
本文将演示如何使用Python编程语言和AKShare库获取贵州茅台(股票代码:600519)的股票历史数据,并绘制包含布林线和MACD指标的K线图。
代码实现
import akshare as ak
import matplotlib.pyplot as plt
import pandas as pd
from mplfinance.original_flavor import candlestick_ohlc
import matplotlib.dates as mdates
import numpy as np
# 设置中文字体
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
# 获取股票数据
stock_code = "600519"
start_date = "20240307"
end_date = "20240605"
print(f"正在获取股票 {stock_code} 从 {start_date} 到 {end_date} 的历史行情数据...")
stock_data = ak.stock_zh_a_hist(symbol=stock_code, start_date=start_date, end_date=end_date, adjust="qfq")
print("数据获取成功!")
# 将日期列转换为 matplotlib 可识别的日期格式
stock_data['日期'] = pd.to_datetime(stock_data['日期']).apply(lambda x: mdates.date2num(x))
# 重新排列列顺序以适应 mplfinance 的格式
stock_data = stock_data[['日期', '开盘', '最高', '最低', '收盘', '成交量']]
# 计算布林线
stock_data['中轨'] = stock_data['收盘'].rolling(window=20).mean()
stock_data['上轨'] = stock_data['中轨'] + 2 * stock_data['收盘'].rolling(window=20).std()
stock_data['下轨'] = stock_data['中轨'] - 2 * stock_data['收盘'].rolling(window=20).std()
# 计算 MACD
exp1 = stock_data['收盘'].ewm(span=12, adjust=False).mean()
exp2 = stock_data['收盘'].ewm(span=26, adjust=False).mean()
stock_data['MACD'] = exp1 - exp2
stock_data['信号线'] = stock_data['MACD'].ewm(span=9, adjust=False).mean()
stock_data['MACD柱'] = stock_data['MACD'] - stock_data['信号线']
# 绘制K线图
fig, (ax1, ax2) = plt.subplots(2, 1, sharex=True, figsize=(14, 10))
# 绘制K线
candlestick_ohlc(ax1, stock_data[['日期', '开盘', '最高', '最低', '收盘']].values, width=0.6, colorup='red', colordown='green')
ax1.plot(stock_data['日期'], stock_data['中轨'], label='中轨')
ax1.plot(stock_data['日期'], stock_data['上轨'], label='上轨')
ax1.plot(stock_data['日期'], stock_data['下轨'], label='下轨')
ax1.xaxis_date()
ax1.legend()
ax1.set_title('贵州茅台 K线图与布林线')
# 绘制MACD
ax2.plot(stock_data['日期'], stock_data['MACD'], label='MACD')
ax2.plot(stock_data['日期'], stock_data['信号线'], label='信号线')
ax2.bar(stock_data['日期'], stock_data['MACD柱'], label='MACD柱')
ax2.xaxis_date()
ax2.legend()
ax2.set_title('贵州茅台 MACD')
plt.tight_layout()
plt.show()
热门推荐
孙子兵法在现代战争中的智慧
孙子兵法:企业管理的千年智慧
家庭角色与责任:在现代婚姻中如何公平分配
马头明王:慈悲、智慧、护佑、力量与威严的象征
春节拜年,年轻人的社交焦虑大揭秘
年轻人拜年新姿势:打卡式问候了解一下?
拜年变负担,年轻人如何应对?
什么是护目镜?护目镜类型和护目镜佩戴介绍
防蓝光眼镜的作用与适用人群:专业医生解读
未来十年,律师事务所多元化趋势
互联网法院引领未来法律科技潮流
关注驻村工作队长的职业健康管理
普洱中院驻村工作队的乡村治理秘籍
《天国王朝》:宗教与人性的壮丽史诗,文化冲突与和平的思辨之旅
葛兆光新书揭秘:中日文化差异背后的深层逻辑
如何早期识别儿童青少年抑郁?这些症状家长需警惕
怎样鼓励孩子表达自己的情感和需求?
关于家人的暖心文案(精选46句)
禅城区文物古迹介绍
日本身高缩水,中日差距变大?揭秘两国身高变化背后的原因
日本人人均身高缩水:饮食营养是罪魁祸首?
中日青少年体质对比:身高优势背后的身体素质差距
日本人身高缩水,中日差距变大?
春节旅游高峰期 这些出行贴士请牢记
阳台朝东和朝南哪个好?家居规划的巧妙抉择
阳台风水要避免哪些禁忌
东兴积极探索推进“旅游+”业态融合发展
蜡笔小新第六季精彩回顾:经典动画如何温暖人心
万万没想到,蜡笔小新才是二次元摇的鼻祖
焚书坑儒:历史真相与考古新发现