量化交易 0 基础突围 ⑤:自动计算均线和成交量!给出简单交易建议

量化交易 0 基础突围 ⑤:自动计算均线和成交量!给出简单交易建议前几篇我们学会了基础概念 现在是时候让 Python 大显身手 这次我这几天想了想 还是决定从实战出发 从实战中理解概念和策略会更好一点这篇文章就先用 10 行代码自动获取股票数据 计算均线和成交量指标 彻底告别手动翻行情图的低效操作

大家好,欢迎来到IT知识分享网。

前几篇我们学会了基础概念,现在是时候让 Python 大显身手!这次我这几天想了想,还是决定从实战出发,从实战中理解概念和策略会更好一点

这篇文章就先用10 行代码自动获取股票数据,计算均线和成交量指标,彻底告别手动翻行情图的低效操作!

一、准备工作:安装必要的库

量化交易中,一个强大的开源财经数据接口是非常重要的,有了数据我们才能分析,

这里我们先使用 akshare 进行学习 ,我也是找了很久发现这个库很适合个人使用,它支持 A 股、港股、美股等多种市场,无需注册,完全免费。

AKShare 是一个纯免费、无门槛的财经数据接口库,特点包括:

覆盖全面:支持 A 股、港股、基金、期货、宏观经济等数据;

简单直接:一行代码获取数据,字段名全中文(如 “收盘”“成交量”);

稳定高效:数据源来自新浪、东方财富等,更新及时。
官网地址https://www.akshare.xyz/ (可查详细文档)

使用Windows cmd命令行安装或者pycharm的命令行安装,这里建议用pycharm安装,减少不必要的配置。

量化交易 0 基础突围 ⑤:自动计算均线和成交量!给出简单交易建议

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)) 
量化交易 0 基础突围 ⑤:自动计算均线和成交量!给出简单交易建议

运行打印结果

其实上面的代码总结一下就是下面的步骤:

  1. 导入库:akshare获取数据,pandas处理数据;
  2. 获取数据:yf.Ticker()指定股票代码,.history()设置时间周期;
  3. 计算均线:rolling(window=5)表示计算过去 5 天的移动窗口,.mean()求平均值;
  4. 查看结果:用tail(10)输出最近 10 天的成交量和 5 日均线数据。

三、进阶操作:绘制可视化图表

光看数据还不够直观?用matplotlib库把均线和成交量画出来!先安装库:

pip install matplotlib 

同样还是在pycharm下安装

量化交易 0 基础突围 ⑤:自动计算均线和成交量!给出简单交易建议

新增代码如下:

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 日均线对比图,一张是成交量柱状图。

量化交易 0 基础突围 ⑤:自动计算均线和成交量!给出简单交易建议

上方曲线是收盘价和 5 日均线,下方柱状图是成交量,清晰展示量价关系

四、常见问题与解决方法

  1. 报错 “ModuleNotFoundError”

说明库没安装成功,重新用pip install命令安装;

  1. 数据获取失败:检查股票代码是否正确,或更换时间周期;
  2. 图表乱码:在代码开头添加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 日均线是否形成金叉,给出交易建议。

运行结果如图:

量化交易 0 基础突围 ⑤:自动计算均线和成交量!给出简单交易建议

这样我们目前就能简单判断是否可以进行买卖了。

———————————————————————

行动起来,别停留在看代码阶段,现在就打开 PyCharm,复制代码跑一遍,看看你选中的股票数据长啥样!

有什么问题评论区可以讨论哦。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/180878.html

(0)
上一篇 2025-06-14 07:45
下一篇 2025-06-14 08:00

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信