使用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.mzph.cn/news/230502.shtml

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

相关文章

扫雪铲冰,绿萝护航平安出行

为保护行人出行安全,确保道路干净整洁,绿萝党员志愿者带头行动,号召志愿者积极参与扫雪铲冰。2023年12月16日,绿萝志愿服务队与拱辰集体林场携手在昊天碳中和公园开展了志愿扫雪活动。 行动是最好的融雪剂。大雪过后的道路是最为寒…

自动驾驶TPM技术杂谈 ———— 交通事件分类与编码

文章目录 介绍交通事件分类交通事件分类顺序码交通事故交通灾害交通气象路面状况道路施工活动重大事件其他 介绍 1. 交通事件 —— 由于人、车辆、设施、环境之间的不协调导致正常交通秩序的突发性混乱事件。  2. 交通管制 —— 公安机关交通管理部门根据法律、法规&#xff0…

2.1 数据操作

声明: 注意!!! 本博客仅用于本人学习笔记作用,所有资料来源都来自于李沐大神,博客中图片为沐神书上的图片。如有侵权,请联系本人删除,谢谢。 资料来源:https://zh-v2.d2…

什么是通讯芯片?通讯芯片又分什么种类?

通讯芯片是指在通讯系统中起到连接和传输信号的重要组成部分。根据通讯芯片的功能和应用,可以将其分为以下几类: 1、收发器芯片 2、窄带中频放大器芯片 3、卫星接收器LNB芯片 4、电话机芯片 5、压缩扩展器芯片 以上是通讯芯片的一些分类,随着通讯技术的不断发展…

patchless amsi学习(中)

DR7 DR7被称为“调试控制寄存器”,允许对每个硬件断点进行精细控制。其中,前8位控制是否启用了特定的硬件断点。偶数位(0、2、4、6)称为L0-L3,在本地启用了断点,这意味着仅在当前任务中检测到断点异常时才…

接口自动化测试实战教程

实现思路 使用excel管理用例用例信息,requests模块发送http请求,实现了记录日志,邮件发送测试报告的功能 目录结构如下: 下面直接上代码: 统筹脚本 # -*- coding:utf-8 -*-import osfrom interface import Interfa…

Android Termux安装MySQL数据库并通过内网穿透实现公网远程访问

文章目录 前言1.安装MariaDB2.安装cpolar内网穿透工具3. 创建安全隧道映射mysql4. 公网远程连接5. 固定远程连接地址 前言 Android作为移动设备,尽管最初并非设计为服务器,但是随着技术的进步我们可以将Android配置为生产力工具,变成一个随身…

【MongoDB】--MongoDB的Sort排序问题

目录 一、问题背景描述1.1、问题背景1.2、问题分析 二、建立索引支持深度翻页查询2.1、调整sort排序的内存限制【不建议】2.2、创建索引2.3、拓展--组合索引什么时候失效 二、聚合查询解决深度翻页查询 一、问题背景描述 1.1、问题背景 现实系统页面翻页到20000页之后&#x…

Improving IP Geolocation with Target-Centric IP Graph (Student Abstract)

ABSTRACT 准确的IP地理定位对于位置感知的应用程序是必不可少的。虽然基于以路由器为中心(router-centric )的IP图的最新进展被认为是前沿的,但一个挑战仍然存在:稀疏IP图的流行(14.24%,少于10个节点,9.73%孤立)限制了图的学习。为了缓解这个问题,我们将目标主机(ta…

【LeetCode刷题笔记(8-2)】【Python】【接雨水】【单调栈】【困难】

文章目录 引言接雨水题目描述提示 解决方案2:【单调栈】结束语 【接雨水】 【LeetCode刷题笔记(8-1)】【Python】【接雨水】【动态规划】【困难】 引言 编写通过所有测试案例的代码并不简单,通常需要深思熟虑和理性分析。虽然这…

200kw直流电子负载测试

在进行200kw直流电子负载测试时,需要设置合适的负载参数,如电流、电压和功率等,并记录测试结果。在测试过程中,可以通过改变负载参数来模拟不同工作条件下的电子设备的性能。通过对电子设备在不同负载条件下的响应进行测试和分析&…

JupyterHub 如何切换 conda 小环境

JupyterHub 如何切换 conda 小环境 服务器已经部署好 JupyterHub ,相关端口请看对应答疑群群公告。在Jupyterhub 中使用 conda 创建的小环境,首先 ssh 登录上服务器或者在 JupyterHub 网页端打开终端 terminal。然后安装 conda ,方法请见 Q4&…

【MyBatis Plus】逻辑删除、分页、乐观锁的应用及讲解

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《MyBatis-Plus》。🎯🎯 &am…

改进灰狼算法求解:考虑需求响应的风-光柴-储容量优化配置

目录 文章摘要: 亮点: 研究背景: 考虑需求相应的容量配置: 风、光、柴、储微电网模型: 储能配置模型: 改进的灰狼算法: 基于余弦规律变化的收敛因子 引入动态权重策略 运行效果&#…

数据结构:图文详解 队列 | 循环队列 的各种操作(出队,入队,获取队列元素,判断队列状态)

目录 队列的概念 队列的数据结构 队列的实现 入队 出队 获取队头元素 获取队列长度 循环队列的概念 循环队列的数据结构 循环队列的实现 判断队列是否为空 判断队列是否已满 入队 出队 得到队头元素 得到队尾元素 队列的概念 队列(Queue&#xff0…

基于单片机的视力保护及身姿矫正器设计(论文+源码)

1. 系统设计 在本次设计中,其系统整个框图如图2-1所示。其主要的核心控制模块由超声波模块,光敏电阻,按键模块,复位电路,红外模块,LCD显示等组成。其包括自动模式,手动模式。自动模式&#xff…

upload-labs笔记

简介 upload-labs是一个使用php语言编写的,专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场。旨在帮助大家对上传漏洞有一个全面的了解。目前一共21关,每一关都包含着不同上传方式。 文件上传漏洞是指: Web 服务器允许用户将文件上传至其…

Linux部署Nacos注册中心结合内网穿透实现远程访问UI管理界面

文章目录 1. Docker 运行Nacos2. 本地访问Nacos3. Linux安装Cpolar4. 配置Nacos UI界面公网地址5. 远程访问 Nacos UI界面6. 固定Nacos UI界面公网地址7. 固定地址访问Plik8. 结语 Nacos是阿里开放的一款中间件,也是一款服务注册中心,它主要提供三种功能&#xff1a…

多序列图像拼接

这里写自定义目录标题 图像匹配图像匹配代码 图像融合main.py运行代码 总的来说,步骤如下: 效果如下: 拼接好的图如下: 图像匹配 依次为 特征点提取,特征点筛选,图像变换。 常见的图像匹配算法有&…

2024上半年软考别轻易尝试!先了未发布

最近几年,软件考试变得非常受欢迎!不论你的专业、学历或工作时间如何,你都可以报名参加,而且通过考试取得证书还能用来抵扣个人所得税、评职称、帮助落户和参与招投标等等。 身边的朋友们纷纷参加软考,这让我也产生了…