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

前言

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

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

一、主流的数据获取方案

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

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

相关推荐
云和数据.ChenGuang31 分钟前
LangGraph 异步 Node 的设计与写法实践
开发语言·人工智能·python·机器学习·php
天诰1 小时前
SA-K-11 检索会消失吗与四个未解问题
java·服务器·人工智能·python·机器学习·ai编程
benchmark_cc2 小时前
用 QuantDash 读取美股行情:AAPL.US 的运行前检查、排错顺序与数据校验清单
python·数据分析·pandas·量化交易·股票数据·quantdash
La Pulga2 小时前
【FreeRTOS源码学习笔记】任务延时列表
笔记·mcu·学习·嵌入式·freertos·实时操作系统
楚山之石4 小时前
【JCO】mpMRI 先行替代 TURBT 初始分期:BladderPath 随机试验让 MIBC 患者提前 45 天得到正确治疗
人工智能·学习·mri·医学影像
羲云网络6 小时前
GPT Image 2.6 接入指南:Flare、Sunburst 怎么选,编辑失败如何排查
人工智能·python·aigc·图像生成·acedatacloud
Peter-OK7 小时前
PostgreSQL学习笔记(入门-进阶-精通说明)
笔记·学习·postgresql
承渊政道8 小时前
Linux网络学习【Reactor反应堆模式】
linux·网络·学习·ubuntu·reactor
橙橙笔记9 小时前
具身智能的学习 - 完成一个机械臂 第1节
python·学习·机械臂·具身智能
小小张说故事9 小时前
Python 的 class 语句到底执行了什么?拆开 __prepare__、metaclass.__new__ 和那个被讲反的 __set_name__ 顺序
python