【第一章】金融数据的获取——金融量化学习入门笔记

前言

要分析金融数据,首先就需要获取到金融数据,不同于平时在支付宝或者财经网,随便点点就能看到各种图表数据,这次需要我们自己获取到数据并保存在本地,方便后面的回测和分析。

本文仅用于为学习金融量化知识提供参考,并不构成任何投资建议。请时刻记住"投资不是投机,您和您的家人才是自己最宝贵的财富",原诸君共勉。

一、主流的数据获取方案

经过检索和整理,我了解到,主流的获取金融数据的方法有以下四种方案,各有利弊:

1、通过一些免费的小API网站,但是只能得到黄金的实时价格数据,并没有历史数据,这对于回测显然是不够的。

2、要么是通过阿里云金融数据API接口聚合数据这一类的国内大厂提供的限时或限次数的免费策略。

其中阿里云的接口目前查询到的政策是提供免费1个月试用100次调用。

聚合数据则是提供似乎是长期免费的每天50次调用。

上述大厂提供的金融API方案虽然数据范围和功能都很广阔,但是使用的次数都受到了较大的限制,并且阿里的接口评论区的风评似乎不太好,有人反映它延迟高、不够稳定。

还有一家蛮有名气的国内厂商是Tushare数据

它们提供了会员积分制的接口访问服务,根据你对平台的贡献或者直接为平台赞助来获取积分,积分达到一定程度后才能调用更多的接口,并且积分有效期似乎是一年,我需要的ETF黄金基金相关数据需要几千分才可以调用,也不太满足需求。

3、国际接口平台例如比较有名的finnhub.io,不过它们基本都只提供国际金价数据,国际金价与国内金价的浮动并不是一致的,依然不能满足我的需求。

4、最终,我找到了一个叫AKShare的开源项目,它提供了本地化的完全免费获取各个公开的金融网站数据的方法,完美契合了我的需求。

在此对AKShare的开发团队以及各大财经数据网站致以最高的敬意。

二、部署AKShare

1.确认本地环境

我使用的是VScode,并安装了Anaconda

ctrl+shift+p并输入python:select interpreter

查找在vscode上默认运行的python版本。

若下面的解释器列表里没有看到你的python路径,也可以通过"输入解释器路径"来找到你本地安装的Anaconda下的python.exe的位置进行添加。

上述步骤是为了防止在电脑上安装过多个python版本,导致环境混乱。

2.安装AKShare

使用命令行即可一键安装

复制代码
pip install akshare

不过官方文档中更推荐的是使用清华源进行安装

复制代码
pip install akshare --upgrade --user -i https://pypi.tuna.tsinghua.edu.cn/simple

同时注意:程序运行时,文件名、文件夹名不能是:akshare。

由于各大财经网站有可能更新接口数据结构,您可能也需要更新akshare库,可使用如下指令:

复制代码
pip install akshare --upgrade

3.使用AKShare获取黄金基金数据

首先需要找到我们目标基金的编号,随便进入一个财经网站,例如东方财富网站,即可查询,例如支付宝上可买的华安黄金ETF联接C对应编号为(000217)。

然后再简单写两行代码:

复制代码
import akshare as ak
import pandas as pd
from datetime import datetime, timedelta
from tabulate import tabulate

# 基金代码
fund_code = "000217"

# 获取历史净值数据
df = ak.fund_open_fund_info_em(fund_code, indicator="单位净值走势")

# 转换日期列
df["净值日期"] = pd.to_datetime(df["净值日期"])

# 筛选最近一个月的数据
today = datetime.today()
one_month_ago = today - timedelta(days=30)
df_last_month = df[df["净值日期"] >= one_month_ago].copy()

# 新增一列:换算金价 = 单位净值 * 270
df_last_month["换算金价"] = df_last_month["单位净值"] * 270

print(tabulate(df_last_month, headers="keys", tablefmt="psql", showindex=True))

上述代码中关于净值与华安黄金价格的换算来源于支付宝上华安黄金基金的换算公式,截止本文发稿,该换算方式为:

华安黄金基金的换算比例为每1克黄金对应270份黄金基金份额。

以净值3.0955为例子,华安黄金金价=3.0955*270=835.7850

由此我们得到了最近一月的黄金数据,并将其以图标格式显示到控制面板,输出结果如下:

总结

通过本文我们学习到了使用akshare获取金融数据并简单进行华安黄金金价的换算。

相关推荐
笑鸿的学习笔记12 分钟前
qt-C++语法笔记之Qt Graphics View 框架中的类型辨析完全指南
c++·笔记·qt
lizhihai_9917 分钟前
股市学习心得—半导体12种核心材料
大数据·人工智能·学习
STLearner17 分钟前
SIGIR 2026 | LLM × Graph论文总结(图增强LLM,GraphRAG,Agent,多模态,知识图谱,搜索,推
人工智能·python·深度学习·神经网络·机器学习·数据挖掘·知识图谱
FreakStudio20 分钟前
MicroPython 内核开发者直接狂喜!这个 Claude 插件市场,把开发全流程做成了「对话式外挂」
python·单片机·嵌入式·面向对象·并行计算·电子diy
老陈说编程37 分钟前
12. LangChain 6大核心调用方法:invoke/stream/batch同步异步全解析,新手也能轻松学会
开发语言·人工智能·python·深度学习·机器学习·ai·langchain
U盘失踪了38 分钟前
调用大模型API上下文关联
笔记
给自己做减法43 分钟前
rag混合检索
人工智能·python·rag
sakiko_1 小时前
UIKit学习笔记3-布局、滚动视图、隐藏或显示视图
前端·笔记·学习·objective-c·swift·uikit
koo3641 小时前
周报5.3
笔记
嵌入式-老费2 小时前
瑞芯微soc的学习和应用(题外话之esp32开发)
学习