当前位置:首页>python>量化投资 第十课:用 Python 算股票收益率,新手也能学会!

量化投资 第十课:用 Python 算股票收益率,新手也能学会!

  • 2026-10-15 00:10:58
量化投资 第十课:用 Python 算股票收益率,新手也能学会!

Python 的核心知识点

在前几期课程中,我们建立了量化投资的基本思维框架,并系统梳理了 Python 的核心语法与数据结构。

很多人对“代码”有天然的恐惧,认为那是计算机专业人士的专属领域。

今天,我们要打破这个误区。

本课将带您进入实战阶段。

我们将使用 Python,仅用十几行代码。

帮助我们学习从数据获取、清洗处理、指标计算到可视化绘图的全过程。

这一课不仅仅是教你算一个收益率。

而是要通过这个案例,带你窥探专业量化机构内部运作的完整工作流(Pipeline)。

学会了这个,你就正式跨过了量化投资的门槛。


🏗️ 理解专业的“全流程”思维

在敲下第一行代码之前,我们需要先建立全局观。

我们今天的实战,实际上是在一个微缩模型中跑通了以下六大核心环节:

1. 数据获取(Data Acquisition):

寻找并接入合法、合规且高质量的金融数据源。

2. 数据清洗(Data Preparation):

剔除坏数据(如停牌、除权除息影响),统一数据格式。

3. 特征工程(Feature Engineering):

将原始数据转化为具有预测意义的指标(如收益率、波动率、RSI 等)。

4. 策略构建(Strategy Design):

制定基于数学逻辑的买卖规则。

5. 回测验证(Backtesting):

用历史数据检验策略的有效性。

6. 实盘执行(Execution):将策略部署到交易环境。

本节课,我们将重点攻克前三个环节,并且了解一下这些到底是怎么运行的。


🛠️ 第一步:安装必要工具库

工欲善其事,必先利其器。

量化分析需要依赖强大的工具库。

Python 之所以成为金融界的主流语言,是因为它拥有丰富的第三方“库”(Library)。

本次实战,我们仅需三个核心工具:

Pandas:

用于高效处理表格型金融数据(如日线行情)。其核心对象 DataFrame 支持向量化计算、时间序列操作等。

Tushare:

提供中国 A 股市场的标准化金融数据接口。免费、合规,支持日线、财务、指数等多种数据。

Matplotlib:

生成专业级数据可视化图表。可用于绘制收益率曲线、分布图等。

安装命令(在终端或命令提示符中执行):

pip install pandas tushare matplotlib

若使用 Anaconda,上述库通常已预装。


💻 第二步:代码实战

接下来,我们将通过一段完整的代码。

实现对贵州茅台(600519.SH)2024 年收益率的计算与分析。

1. 引入工具与 API 配置(数据获取)

import pandas as pdimport tushare as tsimport matplotlib.pyplot as pltts.set_token('你的 Tushare Token')pro = ts.pro_api()

说明:ts.pro_api() 是 Tushare Pro 接口的入口。

Token 是用户身份凭证,需在Tushare 官网 注册后获取。

API(Application Programming Interface)是量化交易的标配。

通过 API,我们能直接从云端获取标准化的金融数据,无需手动下载和处理。

这是量化相对于散户的核心优势。


2. 获取与清洗数据

df = pro.daily(ts_code='600519.SH', start_date='20240101', end_date='20241201')df = df.sort_values('trade_date')df['trade_date'] = pd.to_datetime(df['trade_date'])

关键点一:Tushare 返回的数据默认按日期降序排列,必须显式排序为升序,否则收益率计算将出错。

关键点二:日期字段原为字符串(如 '20240101'),需转换为 datetime 类型,以便后续绘图和时间序列操作。

在量化分析中,数据清洗占据了 60% 以上的工作时间。

脏数据是策略失效的元凶。


3. 核心计算:日收益率(特征工程)

df['daily_return'] = df['close'].pct_change()

计算原理:这是量化中最基础的特征工程。

我们需要计算的是简单收益率(Simple Return),公式为:

其中  是今天的收盘价, 是昨天的收盘价。

技术优势:pct_change() 是 Pandas 提供的向量化函数,自动对序列相邻元素计算百分比变化。

避免手动循环,效率高且不易出错。

注意:首日收益率为 NaN(因无前一日数据),属正常现象。


4. 结果可视化:绘制收益率曲线

plt.rcParams['font.sans-serif'] = ['SimHei']plt.figure(figsize=(12, 6))plt.plot(df['trade_date'], df['daily_return'], label='日收益率')plt.axhline(y=0, color='r', linestyle='--', alpha=0.5)plt.title('贵州茅台2024年日收益率走势')plt.xlabel('交易日期')plt.ylabel('日收益率')plt.legend()plt.grid(True, alpha=0.3)plt.show()

设计原则:专业的图表必须具备可读性。

添加 0 轴参考线(y=0)是行业标准做法。

它清晰地标示了盈亏的分界线,让图表更直观。


5. 关键指标评估

annual_return = df['daily_return'].mean() * 250max_gain = df['daily_return'].max()max_loss = df['daily_return'].min()print(f"2024年贵州茅台年化收益率:{annual_return:.2%}")print(f"最大单日涨幅:{max_gain:.2%}")print(f"最大单日跌幅:{max_loss:.2%}")

年化收益率:日均收益率 × 250。

A 股市场年均交易日约为 250 天,这是行业标准计算方式。

最大单日跌幅:衡量极端风险的指标。

量化投资不仅看赚了多少,更看“最坏的情况会亏多少”。


🚀 总结与展望

恭喜,今天你不仅仅是学了一段代码。

实际上还学会了:

  • API 交互:像机构一样获取一手数据。
  • 数据清洗:将杂乱的信息转化为可计算的资产。
  • 指标构建:用数学语言描述市场表现。
  • 风险评估:用量化指标衡量潜在亏损。

这套代码模板是通用的。

你可以将 '600519.SH' 换成任何一只你关注的股票,甚至是指数(如 '000001.SH' 上证指数)。

量化投资并不神秘。

它只是用代码固化了你的投资逻辑。

保持好奇,动手实践,你离专业的量化交易者已经越来越近了。


益学量化的“军师联盟”

在益学堂,我们始终坚信:

投资是一场认知的变现,而认知的上限取决于引路人的高度。

正因如此,我们的AI量化课程是由两位站在行业前沿的博士级实战专家亲自打磨。
益学金融研究 · 首席量化工程师
美国金融学博士|张研 
清华大学博士|刘永涛 
一位从国际顶级对冲基金战场归来,深谙多资产策略的生死边界。
一位是国内最早介入探索量化研究的专家之一,开创了本土Alpha捕获新范式。
他们不是在“教你怎么写代码”。
而是在教你“如何用AI思维打赢市场”。

视频学习

已关注
关注
重播 分享 赞

封面与正文相关图片来源于官方媒体/网络新闻,如有侵权请告知我们尽快下架。
免责声明:本文为个人观点,不构成任何投资建议,不能作为您的投资依据,您需独立做出投资决策,风险自担。请您确认自己具有相应的权利、行为能力、风险识别能力及风险承受能力,能够独立承担法律责任。所涉及个股仅作为学习交流,不作为投资依据。由于篇幅有限,市场处于不断变化当中,请您自行决定是否使用本文为参考内容。历史业绩不代表未来收益。投资有风险,入市需谨慎!
上海益学智迅科技发展有限公司经营证券期货业务许可证(境外机构编号):91370709MA1G5BK839
杨凯 执业证书编号:A1220616030001 张帅 执业证书编号:A1220619040003

最新文章

随机文章