AI炒股网站

AI炒股:自动画出A股股票的K线图并添加技术指标

Ai炒股2024-10-13 10:36:27135

在大国AI中输入提示词:

你是一个Python编程专家,要完成一个编写Python脚本的任务,具体步骤如下:

用AKShare库获取股票贵州茅台(股票代码:600519)在2024年3月7日到2024年6月5日期间的历史行情数据-前复权。

然后绘制K线图,并在K线图上添加布林线、MACD

注意:

每一步都要输出信息到屏幕上;

日期格式是YYYYMMDD;

设置中文字体,以解决中文显示乱码问题;

源代码:

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()


本文链接:https://bijiaokuai.com/gupiao_40.html

人工智能机器人炒股人工智能和人炒股谁厉害有没有人工智能的炒股软件人工智能还会炒股吗人工智能帮忙炒股吗人工智能炒股用几台电脑未来人工智能炒股指数人工智能炒股依据什么

相关文章

网友评论