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

前言

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

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

一、主流的数据获取方案

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

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获取金融数据并简单进行华安黄金金价的换算。

相关推荐
Java后端的Ai之路3 小时前
20、Python - 备忘录模式
开发语言·人工智能·python·外观模式·备忘录模式
xian_wwq3 小时前
【学习笔记】深度认知系列-第14讲 端侧AI崛起——为什么AI正在从云端走向本地
人工智能·笔记·学习
2601_962077713 小时前
基于Python与NLP的新闻事件信息抽取实战:从NER到时空标准化
python·nlp·transformers·spacy·新闻事件抽取
我爱cope3 小时前
【计算机网络 | 传输层3:TCP 协议概述:面向连接、可靠传输到底意味着什么?】
网络·网络协议·学习·tcp/ip·计算机网络·传输层
JavaPub-rodert4 小时前
LangChain 从入门到 Agent 实战:用 Python 搭建一个真正能调用工具和知识库的 AI 助手
人工智能·python·langchain
郝学胜-神的一滴4 小时前
Qt 高级编程 045:坐标体系深度实战
开发语言·c++·windows·python·qt·程序人生
策案案案4 小时前
YOLO: 将AI Agents嵌入到IntelliJ IDEA
java·大数据·人工智能·笔记·yolo·microsoft·intellij-idea
m0_380743875 小时前
给 OpenAI API 调用加上模型切换:GPT-5.1 和 Codex 的配置实践
人工智能·python·gpt
代码的小搬运工5 小时前
KVO学习
学习·ios·cocoa
2601_962297485 小时前
在python3中、下列输出变量a的正确写法是_2020超星大数据Python免费答案
数据结构·python·算法·编程·字符串操作