使用Alpha Vantage API和Python进行金融数据分析

Alpha Vantage通过一套强大且开发者友好的数据API和电子表格,提供实时和历史的金融市场数据。从传统资产类别(例如股票、ETF、共同基金)到经济指标,从外汇汇率到大宗商品,从基本数据到技术指标,Alpha Vantage通过基于云的API提供服务。

运行环境:Google Colab

1. 探索 Alpha Vantage API

首先,获取个人的API key,并且保存在text文档里。

with open('API_key_example.txt') as file:API_key_example = file.read()
API_key_example = API_key_example.strip()
  • 读取API key并且删除换行符。
%pip install alpha_vantage
%pip install bs4
  • 下载python package
from alpha_vantage.timeseries import TimeSeries
import requests
from bs4 import BeautifulSoup
import pandas as pd
import io
ts1 = TimeSeries(key = API_key)
  • 获取时间序列数据
ts1.get_monthly("AAPL")
  • 获取苹果公司股票每个月的数据
    在这里插入图片描述
ts1.get_weekly("AAPL")
  • 获取苹果公司股票每个礼拜的数据。
    在这里插入图片描述
ts1.get_intraday("AAPL")
  • 获取苹果公司股票一天以内的数据。
    在这里插入图片描述

另外,我们可以使用 requests package 获取数据

url = 'https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol=AAPL&interval=60min&apikey=' + str(API_key)r = requests.get(url)
data = BeautifulSoup(r.content)
print(data)

在这里插入图片描述

  • 获取苹果公司股票一天以内的数据。

将数据储存在 DataFrame 里面

url = 'https://www.alphavantage.co/query?function=TIME_SERIES_WEEKLY&symbol=AAPL&apikey=' + str(API_key) + '&datatype=csv'
r = requests.get(url).content
data = pd.read_csv(io.StringIO(r.decode("utf-8")))print(data)
  • 获取苹果公司股票每个礼拜的数据。
    在这里插入图片描述

使用时间序列读取数据

apple1, meta_data = ts1.get_intraday("AAPL")
meta_data

在这里插入图片描述

apple1

在这里插入图片描述

将数据储存至 DataFrame

df_apple1 = pd.DataFrame(apple1).transpose().reset_index()
df_apple1.head()

设置时间序列,以 DataFrame 的格式读取数据

ts2 = TimeSeries(key = API_key, output_format = "pandas")
ts2.get_intraday("AAPL")

在这里插入图片描述

将 data 和 meta data 分离

df_apple2, meta_data = ts2.get_intraday("AAPL", outputsize="full")
meta_data

在这里插入图片描述

df_apple2.reset_index()

在这里插入图片描述

2. 获取基础数据

2.1 API返回感兴趣公司的年度和季度收入报表

url = 'https://www.alphavantage.co/query?function=INCOME_STATEMENT&symbol=AAPL&apikey=' + str(API_key)
r = requests.get(url)
fd = BeautifulSoup(r.content)print(fd)

在这里插入图片描述

2.2 API返回了所关注公司的年度和季度收益(每股收益)。季度数据还包括分析师的预估和意外指标。

url = 'https://www.alphavantage.co/query?function=EARNINGS&symbol=AAPL&apikey=' + str(API_key)
r = requests.get(url)
fd = BeautifulSoup(r.content)print(fd)

在这里插入图片描述

2.3 API返回一对数字货币(例如比特币)和实物货币(例如美元)的实时汇率。

url = 'https://www.alphavantage.co/query?function=CURRENCY_EXCHANGE_RATE&from_currency=USD&to_currency=HKD&apikey=' + str(API_key)
r = requests.get(url)
fd = BeautifulSoup(r.content)print(fd)

在这里插入图片描述

2.4 查看每天的汇率变化

url = 'https://www.alphavantage.co/query?function=FX_DAILY&from_symbol=USD&to_symbol=HKD&apikey=' + str(API_key)
r = requests.get(url)
fd = BeautifulSoup(r.content)print(fd)

在这里插入图片描述

2.5 API返回特定市场(例如港币/HKD)上数字货币(例如比特币/BTC)的每周历史时间序列数据,每天午夜(协调世界时)刷新一次。价格和交易量以市场特定货币和美元进行报价。

url = 'https://www.alphavantage.co/query?function=DIGITAL_CURRENCY_WEEKLY&symbol=BTC&market=HKD&apikey=' + str(API_key)
r = requests.get(url)
fx = BeautifulSoup(r.content)print(fx)

在这里插入图片描述

2.6 API返回美国的年度和季度实际国内生产总值(Real GDP)。来源:美国经济分析局,实际国内生产总值,从圣路易斯联邦储备银行的FRED获取。此数据源使用了FRED® API,但并未得到圣路易斯联邦储备银行的认可或认证。

url = 'https://www.alphavantage.co/query?function=REAL_GDP&interval=quarterly&apikey=' + str(API_key)
r = requests.get(url)
ei = BeautifulSoup(r.content)print(ei)

在这里插入图片描述

2.7 这个API返回美国的月度和半年度消费者价格指数(CPI)。CPI被广泛视为衡量经济中通货膨胀水平的晴雨表。来源:美国劳工统计局,消费者价格指数:城市居民消费物价指数,从圣路易斯联邦储备银行的FRED获取。

url = 'https://www.alphavantage.co/query?function=CPI&interval=monthly&apikey=' + str(API_key)
r = requests.get(url)
ei = BeautifulSoup(r.content)print(ei)

在这里插入图片描述

2.8 这个API返回美国的月度失业数据。失业率代表失业人数占劳动力人口的百分比。劳动力数据仅限于年满16岁及以上、目前居住在50个州或哥伦比亚特区的人士,不居住在机构(例如惩教和精神机构、养老院),以及不在武装部队服役的人士。来源:美国劳工统计局,失业率,从圣路易斯联邦储备银行的FRED获取。

url = 'https://www.alphavantage.co/query?function=UNEMPLOYMENT&apikey=' + str(API_key)
r = requests.get(url)
ei = BeautifulSoup(r.content)print(ei)

在这里插入图片描述

3. 市场情报

3.1 这个API提供来自世界各地一系列顶级新闻机构的实时和历史市场新闻与情感数据,涵盖股票、加密货币、外汇等多个领域,以及财政政策、并购、IPO等广泛话题。

url = 'https://www.alphavantage.co/query?function=NEWS_SENTIMENT&tickers=AAPL&apikey=' + str(API_key)
r = requests.get(url)
news = BeautifulSoup(r.content)print(news)

在这里插入图片描述

4. 技术指标

4.1 这个API返回简单移动平均值(SMA)的数值。

如何计算简单移动平均(SMA):对所选期间的价格(通常为收盘价)进行求和,然后除以该期间的数量。例如,要计算7日移动平均,只需将资产在过去7个交易日的收盘价相加,然后将结果除以7。

让我们以苹果公司股票(股票代码$AAPL)为例进行一个假设的7日移动平均计算。

第1天(周一,1月1日):收盘价110.00美元
第2天(周二,1月2日):收盘价106.50美元
第3天(周三,1月3日):收盘价103.25美元
第4天(周四,1月4日):收盘价105.75美元
第5天(周五,1月5日):收盘价104.00美元
第6天(周一,1月8日):收盘价102.50美元
第7天(周二,1月9日):收盘价101.25美元

要计算截至1月9日的7日移动平均,需要将过去7个交易日的收盘价相加(110.00美元 + 106.50美元 + 103.25美元 + 105.75美元 + 104.00美元 + 102.50美元 + 101.25美元 = 733.25美元),然后将结果除以7(733.25美元 ÷ 7 = 104.75美元)。因此,截至1月9日,苹果公司的移动平均价格为104.75美元。

几乎可以使用任何时间段进行简单移动平均计算;7日、20日、50日、200日,甚至更长的期间,比如50周甚至50个月。期间越长,移动平均线对股价最近变化的反应就越缓慢。最常见的期间是50日和200日的简单移动平均。

url = 'https://www.alphavantage.co/query?function=SMA&symbol=AAPL&interval=weekly&time_period=10&series_type=open&apikey=' + str(API_key)
r = requests.get(url)
ti = BeautifulSoup(r.content)print(ti)

在这里插入图片描述

4.2 这个API返回加权移动平均(WMA)的数值。

加权移动平均为系列中的每个数值计算一个权重。较近期的数值被分配更大的权重。

url = 'https://www.alphavantage.co/query?function=WMA&symbol=AAPL&interval=weekly&time_period=10&series_type=open&apikey=' + str(API_key)
r = requests.get(url)
ti = BeautifulSoup(r.content)print(ti)

在这里插入图片描述

4.3 这个API返回变动率指标(ROCR)的数值。

价格变动率(ROC)是一种基于动量的技术指标,它衡量了当前价格与一定期数前的价格之间的百分比变化。ROC指标绘制在零线上方,如果价格上涨,则指标向上移入正区间,如果价格下跌,则指标移入负区间。
例如,如果今天收盘时股票的价格为10美元,而五个交易日前的收盘价为7美元,则五日ROC为42.85%,计算公式为:
((10−7)÷7)×100=42.85

url = 'https://www.alphavantage.co/query?function=ROCR&symbol=AAPL&interval=daily&time_period=10&series_type=close&apikey=' + str(API_key)
r = requests.get(url)
ti = BeautifulSoup(r.content)print(ti)

在这里插入图片描述

4.4 这个API返回布林带(Bollinger bands,BBANDS)的数值。

布林带是一种用于技术分析的工具,它由一系列线条组成,这些线条与证券价格的简单移动平均(SMA)相隔两个标准偏差,分别是正偏差和负偏差。布林带可以识别股票的高低波动点。股票在低波动性和高波动性之间交替变化。

url = 'https://www.alphavantage.co/query?function=BBANDS&symbol=AAPL&interval=weekly&time_period=5&series_type=close&nbdevup=3&nbdevdn=3&apikey=' + str(API_key)
r = requests.get(url)
ti = BeautifulSoup(r.content)print(ti)

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/221657.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从初学者到高手:Golang匿名函数和闭包全解

从初学者到高手:Golang匿名函数和闭包全解 引言:Golang中的函数概述匿名函数的基础定义和使用匿名函数赋值给变量作为参数传递 深入理解闭包闭包的工作原理闭包的实际应用注意事项 匿名函数的高级应用事件处理和回调延迟执行和资源管理封装私有逻辑链式操…

SQL面试题挑战01:打折日期交叉问题

目录 问题:SQL解答:第一种方式:第二种方式: 问题: 如下为某平台的商品促销数据,字段含义分别为品牌名称、打折开始日期、打折结束日期,现在要计算每个品牌的打折销售天数(注意其中的…

数据分析基础之《numpy(6)—合并与分割》

了解即可,用panads 一、作用 实现数据的切分和合并,将数据进行切分合并处理 二、合并 1、numpy.hstack 水平拼接 # hstack 水平拼接 a np.array((1,2,3)) b np.array((2,3,4)) np.hstack((a, b))a np.array([[1], [2], [3]]) b np.array([[2], […

手把手教你创建一个实时互动的AI数字人直播间!

数字人是什么?数字人是利用人工智能技术实现与真人直播形象的1:1克隆,即克隆出一个数字化的你自己,包括你的形象、表情、动作和声音都会被克隆下来,让你能够拥有接近真人的表现力。 1.首先您需要独立部署青否数字人SaaS系统&#…

Opencv入门6(读取彩色视频并转换为对数极坐标视频)

源码如下&#xff1a; #include <opencv2/opencv.hpp> #include <iostream> int main(int argc, char* argv[]) { cv::namedWindow("Example2_11", cv::WINDOW_AUTOSIZE); cv::namedWindow("Log_Polar", cv::WINDOW_AUTOSIZE); c…

2023 英特尔On技术创新大会直播 |我感受到的“芯”魅力

文章目录 每日一句正能量前言AI时代&#xff0c;云与PC结合为用户带来更好体验全新处理器&#xff0c;首次引入针对人工智能加速的NPU大模型时代&#xff0c;软硬结合带来更好训练成果后记 每日一句正能量 成长是一条必走的路路上我们伤痛在所难免。 前言 在2023年的英特尔On技…

【LeetCode刷题笔记(9-1)】【Python】【无重复字符的最长子串】【滑动窗口】【中等】

文章目录 引言无重复字符的最长子串题目描述提示 解决方案1&#xff1a;【滑动窗口】结束语 无重复字符的最长子串 引言 编写通过所有测试案例的代码并不简单&#xff0c;通常需要深思熟虑和理性分析。虽然这些代码能够通过所有的测试案例&#xff0c;但如果不了解代码背后的思…

mysql:查看线程缓存中的线程数量

使用命令show global status like Threads_cached;可以查看线程缓存中的线程数量。 例如&#xff0c;查询线程缓存中的线程数量如下&#xff1a; 然后启动应用程序&#xff0c;使用连接&#xff0c;查询如下&#xff1a; 由查询结果可以看到&#xff0c;线程缓存中的线程数量…

【算法系列篇】递归、搜索和回溯(四)

文章目录 前言什么是决策树1. 全排列1.1 题目要求1.2 做题思路1.3 代码实现 2. 子集2.1 题目要求2.2 做题思路2.3 代码实现 3. 找出所有子集的异或总和再求和3.1 题目要求3.2 做题思路3.3 代码实现 4. 全排列II4.1 题目要求4.2 做题思路4.3 代码实现 前言 前面我们通过几个题目…

独立站退款率太高会怎么样?如何解决独立站退款纠纷?——站斧浏览器

独立站退款率太高会怎么样&#xff1f; 当独立站的退款率过高时&#xff0c;可能会对卖家和平台产生一些负面影响&#xff1a; 信誉受损&#xff1a;退款率过高可能会导致卖家的信誉受损。买家在购物时通常倾向于选择评价好的卖家&#xff0c;高退款率可能会让卖家的评价下降…

在vue中通过js动态绘制table,并且合并连续相同内容的行,支持点击编辑单元格内容

首先是vue代码 <template><div id"body-container"style"position: absolute"><div class"box-container"><div class"lsb-table-box" ><div class"table-container" id"lsb-table"&…

PyTorch深度学习实战(26)——卷积自编码器(Convolutional Autoencoder)

PyTorch深度学习实战&#xff08;26&#xff09;——卷积自编码器 0. 前言1. 卷积自编码器2. 使用 t-SNE 对相似图像进行分组小结系列链接 0. 前言 我们已经学习了自编码器 (AutoEncoder) 的原理&#xff0c;并使用 PyTorch 搭建了全连接自编码器&#xff0c;但我们使用的数据…

node.js mongoose middleware

目录 官方文档 简介 定义模型 注册中间件 创建doc实例&#xff0c;并进行增删改查 方法名和注册的中间件名相匹配 执行结果 分析 错误处理中间件 手动抛出错误 注意点 官方文档 Mongoose v8.0.3: Middleware 简介 在mongoose中&#xff0c;中间件是一种允许在执…

vue的自定义指令注册使用

目录 分类 局部注册 全局注册 使用例子 分类 自定义指令的注册分为局部注册和全局注册 局部注册是在某个组件内注册的指令&#xff0c;只能在这个组件内使用 全局注册是在main.js中注册的指令在任何组件内都可以使用&#xff0c;指令在使用时不论是全局还是局部注册的&am…

机器学习 | 贝叶斯方法

不同于KNN最近邻算法的空间思维&#xff0c;线性算法的线性思维&#xff0c;决策树算法的树状思维&#xff0c;神经网络的网状思维&#xff0c;SVM的升维思维。 贝叶斯方法强调的是 先后的因果思维。 监督式模型分为判别式模型和生成式模型。 判别模型和生成模型的区别&#xf…

Spring MVC框架支持RESTful,设计URL时可以使用{自定义名称}的占位符@Get(“/{id:[0-9]+}/delete“)

背景&#xff1a;在开发实践中&#xff0c;如果没有明确的规定URL&#xff0c;可以参考&#xff1a; 传统接口 获取数据列表,固定接口路径&#xff1a;/数据类型的复数 例如&#xff1a;/albums/select RESTful接口 - 根据ID获取某条数据&#xff1a;/数据类型的复数/{id} - 例…

智能化物联网(IoT):发展、问题与未来前景

导言 智能化物联网&#xff08;IoT&#xff09;作为信息技术领域的一项核心技术&#xff0c;正在深刻改变人们的生活和工作方式。本文将深入研究IoT的发展过程、遇到的问题及解决过程、未来的可用范围&#xff0c;以及在各国的应用和未来的研究趋势。探讨在哪些方面能够取得胜利…

将Abp默认事件总线改造为分布式事件总线

文章目录 原理创建分布式事件总线实现自动订阅和事件转发 使用启动Redis服务配置传递Abp默认事件传递自定义事件 项目地址 原理 本地事件总线是通过Ioc容器来实现的。 IEventBus接口定义了事件总线的基本功能&#xff0c;如注册事件、取消注册事件、触发事件等。 Abp.Events…

Keil编译STM32工程,提示__align(4)处语法错误

好久没有用Keil编程&#xff0c;因为别人的代码是用Keil写的&#xff0c;所以又得安装起来&#xff0c;编译时遇到__align(4)的错误提示。 这个问题主要是编译器版本的问题&#xff0c;默认使用的是v6.19版本的编译器&#xff0c;而工程原来使用的是v5版本的&#xff0c;两个编…

B039-SpringMVC基础

目录 SpringMVC简介复习servletSpringMVC入门导包配置前端控制器编写处理器实现Contoller接口普通类加注解(常用) 路径问题获取参数的方式过滤器简介自定义过滤器配置框架提供的过滤器 springMVC向页面传值的三种方式视图解析器springMVC的转发和重定向 SpringMVC简介 1.Sprin…