大家好,欢迎来到IT知识分享网。
前几篇我们学会了基础概念,现在是时候让 Python 大显身手!这次我这几天想了想,还是决定从实战出发,从实战中理解概念和策略会更好一点
这篇文章就先用10 行代码自动获取股票数据,计算均线和成交量指标,彻底告别手动翻行情图的低效操作!
一、准备工作:安装必要的库
量化交易中,一个强大的开源财经数据接口是非常重要的,有了数据我们才能分析,
这里我们先使用 akshare 进行学习 ,我也是找了很久发现这个库很适合个人使用,它支持 A 股、港股、美股等多种市场,无需注册,完全免费。
AKShare 是一个纯免费、无门槛的财经数据接口库,特点包括:
✅ 覆盖全面:支持 A 股、港股、基金、期货、宏观经济等数据;
✅ 简单直接:一行代码获取数据,字段名全中文(如 “收盘”“成交量”);
✅ 稳定高效:数据源来自新浪、东方财富等,更新及时。
官网地址:https://www.akshare.xyz/ (可查详细文档)
使用Windows cmd命令行安装或者pycharm的命令行安装,这里建议用pycharm安装,减少不必要的配置。

pycharm下安装akshare
二、10 行代码实现核心功能
以计算贵州茅台(股票代码.SS)的 5 日均线和成交量为例,代码如下:
import akshare as ak import pandas as pd # 1. 获取数据(symbol填股票代码,无需后缀) df = ak.stock_zh_a_hist( symbol="", # 贵州茅台 period="daily", # 日线数据 start_date="", # 开始日期 end_date="" # 结束日期 ) # 2. 计算5日均线(rolling是滚动窗口函数) df["MA5"] = df["收盘"].rolling(window=5).mean() # 3. 查看最后10天数据(tail()默认显示最后5行,这里指定10行) print(df[["日期", "收盘", "成交量", "MA5"]].tail(10))

运行打印结果
其实上面的代码总结一下就是下面的步骤:
- 导入库:akshare获取数据,pandas处理数据;
- 获取数据:yf.Ticker()指定股票代码,.history()设置时间周期;
- 计算均线:rolling(window=5)表示计算过去 5 天的移动窗口,.mean()求平均值;
- 查看结果:用tail(10)输出最近 10 天的成交量和 5 日均线数据。
三、进阶操作:绘制可视化图表
光看数据还不够直观?用matplotlib库把均线和成交量画出来!先安装库:
pip install matplotlib
同样还是在pycharm下安装

新增代码如下:
import matplotlib.pyplot as plt # 设置中文显示(避免乱码) plt.rcParams["font.sans-serif"] = ["SimHei"] plt.rcParams["axes.unicode_minus"] = False # 创建图表(2个子图:上半部分是股价+均线,下半部分是成交量) fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(12, 8), sharex=True) # 1. 绘制收盘价和5日均线 ax1.plot(df["日期"], df["收盘"], label="收盘价", color="blue") ax1.plot(df["日期"], df["MA5"], label="5日均线", color="red", linestyle="--") ax1.set_title("贵州茅台股价与5日均线") ax1.set_ylabel("价格(元)") ax1.legend() ax1.grid(True) # 2. 绘制成交量柱状图 ax2.bar(df["日期"], df["成交量"], color="green", alpha=0.5) ax2.set_title("成交量变化") ax2.set_ylabel("成交股数") ax2.grid(True) # 优化x轴显示(自动旋转日期标签,避免重叠) plt.gcf().autofmt_xdate() plt.tight_layout() # 调整子图间距 plt.show()
运行后,你会得到两张图表:一张是收盘价与 5 日均线对比图,一张是成交量柱状图。

上方曲线是收盘价和 5 日均线,下方柱状图是成交量,清晰展示量价关系
四、常见问题与解决方法
- 报错 “ModuleNotFoundError”:
说明库没安装成功,重新用pip install命令安装;
- 数据获取失败:检查股票代码是否正确,或更换时间周期;
- 图表乱码:在代码开头添加plt.rcParams[‘font.sans-serif’]=[‘SimHei’](解决中文显示问题)。
五、实战应用:用均线和成交量制定简单策略
结合之前学的知识,我们可以用代码自动判断买卖信号:
# 判断最近一天是否出现金叉 if data["MA5"].iloc[-2] < data["MA5"].iloc[-1] and data["MA5"].iloc[-3] < data["MA5"].iloc[-2]: print("出现金叉,考虑买入!") else: print("暂无买入信号")
这段代码会自动检测最近三天的 5 日均线是否形成金叉,给出交易建议。
运行结果如图:

这样我们目前就能简单判断是否可以进行买卖了。
———————————————————————
行动起来,别停留在看代码阶段,现在就打开 PyCharm,复制代码跑一遍,看看你选中的股票数据长啥样!
有什么问题评论区可以讨论哦。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/180878.html