发布时间:2026/8/15 15:45:03
阶段二 · 金融通识(一):金融数据获取与清洗实战 阶段二 · 金融通识一金融数据获取与清洗实战用 yfinance 构建你的第一个量化数据集配套代码code/stage2/fetch_clean.py 图表assets/images/stage2/0. 为什么数据是量化的第一性原理量化投资的流程是获取数据 → 清洗质量 → 因子/信号 → 回测 → 实盘。绝大多数初学者折在第一步——拿到的数据有缺失、有复权错误、有异常跳变直接喂给模型会得到看起来很美、实盘很惨的结论。本篇教你两件事真实数据从哪来免费 API vs 数据平台对比并给出 yfinance 联网代码离线也能练手用numpy固定种子生成确定性合成数据完整演练构造时间序列 → 做面板 → 缺失值/异常值清洗 → 可视化全流程所有数值与图表均由代码真实跑出。1. 金融数据来源对比免费 API vs 数据平台来源典型代表免费额度是否需要联网数据粒度适合场景坑点行情 APIyfinance(Yahoo)、akshare(爱基)、tushare(需token)免费/基础限频是日/分钟个人研究、教学停牌/拆合股复权需手动处理券商/交易所聚宽、掘金、Wind、Choice部分免费是tick/分钟/日机构、回测平台授权收费、跨市场不一致另类数据FRED(宏观)、Quandl/Nasdaq、CoinGecko(加密)免费额度是宏观/日因子增强频率低、清洗重合成数据本篇numpy随机过程无限否自定教学、算法验证不反映真实分布仅验证逻辑结论教学与原型阶段合成数据最稳可复现、不依赖网络做真实策略时再用yfinance/akshare拉真实数据替换数据源即可——下游清洗代码几乎不用改。2. 扩展用 yfinance 获取真实数据需联网下面代码默认不执行本仓库所有运行结果均来自离线合成数据。联网环境下pip install yfinance后取消注释即可# 扩展代码需联网 pip install yfinanceimportyfinanceasyf tickers[AAPL,MSFT,GOOG,AMZN,JPM,XOM]rawyf.download(tickers,start2021-01-01,end2024-01-01,auto_adjustTrue)closeraw[Close]returnsclose.pct_change().dropna()# 日收益print(returns.head())code/stage2/fetch_clean.py末尾也封装了fetch_real_with_yfinance()与本篇合成流程接口一致方便你一键切换真实数据源。3. 用合成数据构造多资产时间序列 财务报表面板我们不依赖网络用相关正态 几何布朗运动(GBM)生成 6 只股票AAPL/MSFT/GOOG/AMZN/JPM/XOM的 756 个交易日日收益与价格importnumpyasnp,pandasaspd SEED20240814rngnp.random.default_rng(SEED)N_DAYS756ASSETS[AAPL,MSFT,GOOG,AMZN,JPM,XOM]ANN_MUnp.array([0.18,0.16,0.15,0.20,0.10,0.08])# 年化收益ANN_SIGMAnp.array([0.28,0.25,0.24,0.32,0.20,0.22])# 年化波动# 两因子(市场 科技行业)构造正定相关矩阵mnp.array([0.70,0.70,0.70,0.70,0.50,0.40])snp.array([0.40,0.40,0.35,0.45,0.00,0.00])nlen(m);corrnp.eye(n)foriinrange(n):forjinrange(n):ifi!j:corr[i,j]m[i]*m[j]s[i]*s[j]Lnp.linalg.cholesky(corr)# 正定 → 可分解zrng.standard_normal((N_DAYS,n))corr_retz L.T daily_muANN_MU/252.0daily_sigmaANN_SIGMA/np.sqrt(252.0)returnsdaily_mucorr_ret*daily_sigma prices100*np.exp(np.cumsum(np.log1p(returns),axis0))# GBM为模拟脏数据我们额外注入56 个缺失值和18 个异常冲击±3%~4% 的额外跳变用于演示清洗。同时构造一份财务报表式面板多股票 × 多年 × 多指标MultiIndexRevenue NetIncome TotalAssets ROE DebtRatio Ticker Year AAPL 2021 240.292 56.605 709.028 0.244 0.540 2022 234.595 69.035 635.094 0.206 0.546 2023 254.193 64.651 840.418 0.172 0.456 MSFT 2021 342.277 77.353 790.526 0.169 0.277 2022 358.048 104.439 1293.090 0.265 0.295 2023 346.343 37.060 709.280 0.154 0.387这类面板数据(panel data)是基本面量化的标准形态——行是 (标的, 年份)列是财务指标后续可做横截面因子如按ROE排序选股。4. 数据质量缺失值处理 异常值检测(3σ / Z-score)4.1 缺失值处理n_missingint(returns.isna().sum().sum())# 统计缺失filledreturns.ffill().bfill()# 前向 后向填充filledfilled.fillna(filled.mean())# 极端残留用列均值兜底4.2 异常值检测3σ / Z-score对每个资产列做标准化落在外侧|z| 3的视为异常mufilled.mean();sigmafilled.std(ddof0)z(filled-mu)/sigma outliers(z.abs()3)countoutliers.sum()# 每列异常数为什么用 3σ正态下|z|3的概率仅约 0.27%误报率低但金融收益有厚尾实际异常往往比 3σ 更频繁——这正是量化人要警惕的分布假设陷阱。5. 真实运行结果代码跑出非编造运行python code/stage2/fetch_clean.py关键输出期末价格起点均归一到 100资产AAPLMSFTGOOGAMZNJPMXOM期末价149.63155.82246.92242.89158.25112.30数据质量结果注入缺失值56个 → 清洗后残留缺失0ffillbfill 完全补齐注入异常冲击18个 → 用 3σ 检测到异常点23个多出的 5 个来自收益厚尾的自然极端日正好印证金融收益非正态各资产日收益标准差σAAPL0.0198、MSFT0.0169、GOOG0.0181、AMZN0.0209、JPM0.0181、XOM0.0158。每只资产的 3σ 异常点数量资产AAPLMSFTGOOGAMZNJPMXOM合计异常点数326453235.1 图表图 16 只股票的合成 GBM 价格序列。起点归一为 100科技股(GOOG/AMZN)波动更大、终点更高能源股(XOM)相对平稳。图 2日收益箱线图。箱体为 IQR 区间散点为超出 1.5×IQR 的离群点与 3σ 检测相互印证。图 3收益相关性热力图。科技股之间相关性高达 0.63~0.67同受市场因子科技行业因子驱动跨板块如 JPM-XOM仅约 0.20。相关性是资产配置的地基——第 2 篇会用到。6. 作业讲解投资组合异常值检测题目给定一组资产日收益如何在不删除数据的前提下标记并温和修正异常值避免极端日扭曲后续协方差估计讲解与结论标记而非删除用 3σ/Z-score 给异常日打标签outliers布尔矩阵保留原始数据可追溯修正用缩尾(winsorize)把|z|3的收益裁剪到 ±3σ而非置零或删除——既保留时序连续性又抑制极端值对协方差矩阵的主导本篇实证注入 18 个异常后3σ 共抓到 23 个含 5 个厚尾自然异常。这说明3σ 在金融场景偏宽松实战中可改用MAD(中位数绝对偏差)或滚动窗口 z-score 以适应非平稳波动下游影响异常值会显著高估协方差与尾部风险清洗后得到的相关系数图 3才可用于第 2 篇的资产配置优化。一句话结论异常检测不是找茬而是给你的风险模型打疫苗——宁可多标记、不可漏标记修正时务必保留可追溯性。7. 小结 交付物代码code/stage2/fetch_clean.py离线可复现含 yfinance 扩展函数图表assets/images/stage2/price_series.png、outlier_boxplot.png、correlation_heatmap.png数值摘要code/stage2/fetch_clean_summary.json你已掌握数据来源选型、合成数据生成、缺失值/异常值清洗、相关性可视化以及异常检测在组合风控中的意义。下一篇《资产配置与全天候策略》将基于这里的多资产收益与相关矩阵构建真正的配置框架并做回测对比。

相关新闻

2026/8/15 15:40:03

mini小巧-WIFI-温湿度检测

项目简介mini小巧-WIFI-温湿度检测使用STC8G1K08A 大夏龙雀WIFI模块EPS8266蓝牙,搭配AHT30 温湿度模块,通过使用MQTT协议上传数据。本设计简单易上手归于大夏龙雀wifi/蓝牙二合一模块集成TCP/UDP/MQTT 协议通信省去繁杂程序开发与测试。项目功能本设计是…

2026/8/15 16:25:06

OWASP Top 10核心漏洞解析:从原理到实战的Web安全防御指南

1. 项目概述:为什么OWASP Top 10是安全入门的“必修课”? 如果你刚踏入网络安全这个领域,或者是一名开发者想提升自己代码的安全性,那么“OWASP Top 10”这个词组你一定会反复听到。它就像一份“通缉令”,上面列出的不…

2026/8/15 16:25:06

TortoiseGit图形化解决Git代码冲突:从原理到实战的完整指南

1. 项目概述:当代码“撞车”时,我们该怎么办?如果你用过Git,尤其是配合TortoiseGit这个图形化工具,那“代码冲突”这个词对你来说绝对不陌生。它不是什么高深的理论,而是每个开发者协作过程中必然会遇到的“…

2026/8/15 9:46:30

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/15 7:22:41

当 LLM 遇见大文档:主流开源项目如何处理上下文超限

从 Agentic Loop 到 Repo Map,七种策略与六类陷阱引言:128K vs 10MB 的硬冲突 2026 年的 LLM 上下文窗口已达到 128K ~ 1M token(≈ 0.5MB ~ 4MB 文本),但 LLM 想要处理的真实数据规模远远超过这个量级:真实…

2026/8/15 0:04:00

AI 电动婴儿车智能功率 辅助控制、电源管理的完整选型方案

2026年随着 AI 技术在电动孕婴童用品中的深度渗透(如智能避障、自适应速度控制、能量回收),电动婴儿车对功率器件提出更高要求:高效率、小型化、低功耗、高可靠性。微碧半导体(VBsemi)基于 Trench 及 SGT 工…

2026/8/15 0:04:00

论文AIGC检测不达标完整教程!低门槛用5款工具逐步复检!

论文提交前自己先查一遍AI率,是2026年毕业生的常规动作。学校要求论文AI率低于30%,乃至于20%才能答辩… 很多同学发现一个尴尬的事情:同一篇论文,知网查出来AI率35%,维普查可能是48%,大雅、朱雀又是另外的数…

2026/8/15 9:46:39

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/15 4:56:16

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/15 9:46:30

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…