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()
热门推荐
租房必看:如何避免中介陷阱
人教版二年级数学:加法与乘法的区别与应用
高考数学必备:加法乘法原理详解与应用
家传红烧肉:从选材到收汁的温情烹饪指南
公主病:青少年心理健康的隐形杀手
家庭教育如何影响公主病形成?
“公主病”恋爱观遭热议:如何避免成为感情的“隐形杀手”?
地道四川抄手:4种包法技巧与麻辣汤底秘诀
包抄手亲子活动:培养动手能力,增进家庭关系
光荣花见证奉献,欢送会传递薪火
“中东巴黎”黎巴嫩:独立70年历经繁荣与战乱
2024黎巴嫩:穆斯林首超基督徒,17教派共存格局生变
“铁面判官”李老师等五位老同志光荣退休
退休欢送会:致敬老同志,传承奉献精神
别小看鼓掌:这个简单动作能增强团队协作
配方改变与市场竞争,麦乳精从国民食品走向没落
从肝火到心肌缺血:失眠的五大原因及应对之道
虞书欣甜辣风穿搭,你get到了吗?
虞书欣《永夜星河》热度爆表,用坚韧精神克服外貌质疑
虞书欣×林一新剧《嘘,国王在冬眠》:一场冰雪世界的甜蜜邂逅
虞书欣红毯造型再登热搜,揭秘甜美女神养成记
经典申诉状模板,让你秒变法律达人
北京到莫斯科旅游专列价格全攻略:K3全程票价及签证信息
2024年中秋高速避堵攻略:这些时段和路段要注意!
广安供销社改革:从“三无”到经营总额141亿,增速全省第一
乐理基础:简谱的多声部
自学乐理难学吗 音乐理论软件有哪些
Equifax & TransUnion教你理财提升信用评分
信用评分高,买房买车都省心
盘点明星养的宠物,看看哪位明星的宠物最奇特