使用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.hqwc.cn/news/287214.html

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

相关文章

Google Analystics账号的创建

1,空账号 如果您原来没有用过谷歌分析,点开后会是下面的页面,点击页面中央的开始衡量(start measuring) 2,已有过账号 如果您原本有过账号需要创建新账号,需要点击主页左下角的管理&#xff…

JMUer-网络新技术课程期末考试复习整理

✏️write in front✏️ 📝个人主页:陈丹宇jmu 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝​ 🙉联系作者🙈by QQ:813942269🐧 🌈致亲爱的读者:很高兴你…

Java继承特性(学习推荐版)——java三大特性之一,子类extends父类

定义 Java支持单继承和多层继承,但不支持多继承 # 子类构造器及super用法 解释:子类构造器,注意是子类的构造器,不是子类的方法的第一行默认都会有super()去调用无参构造器,只不过可以省略没写而已。当然也可以自己写…

openwrt 搭建web

折腾 软路由 有几年了,最近试了下 移动的 IPV6, 既然可以拿到 公网的 IPV6, 所以想折腾下, 经过不懈努力 实现了:通过 ipv4/ipv6 地址访问我的 web站点 (白飘不花钱的方式) 1 动态DNS 折腾 DDNS 无非是想 白飘 公网IP,但是 仅仅…

VueStu02-创建一个Vue实例

一、核心步骤 1.准备容器 准备一个盒子div。 2.引包 从官网引包,有开发版本和生产版本之分。 3.创建Vue实例 创建一个Vue实例,new Vue()。 4.指定配置项 指定配置项,用于渲染数据 。 el:指定挂载点。知道自己将来要管理的是…

【MySQL】 表的操作

// 创建表 create table 表名();// 查看表结构 desc 表名;// 新增一列表信息 alter table 表名 add 字段名 字段类型 (after 原表某一字段名);// 删除一列表信息 alter table 表名 drop 字段名;// 修改表字段名字 alter table 表名 change 原字段名 新字段名 类型; // 新字…

Spring Security 6.x 系列(11)—— Form表单认证流程

一、前言 在本系列文章中介绍了过滤器和相关认证组件,对部分源码也进行详细分析。 本章主要学习 Spring Security 中通过 HTML 表单提供用户名和密码的认证流程。 二、配置表单登录 默认情况下,Spring Security 表单登录处于启用状态。 但是&#xff…

玩转大数据19:数据治理与元数据管理策略

随着大数据时代的到来,数据已经成为企业的重要资产。然而,如何有效地管理和利用这些数据,成为了一个亟待解决的问题。数据治理和元数据管理是解决这个问题的关键。 1.数据治理的概念和重要性 数据治理是指对数据进行全面、系统、规范的管理…

信创之国产浪潮电脑+统信UOS操作系统体验9:使用vscode构建的配置任务编译C++程序

☞ ░ 前往老猿Python博客 ░ https://blog.csdn.net/LaoYuanPython 一、引言 在《信创之国产浪潮电脑统信UOS操作系统体验2:安装visual studio code和cmake搭建C开发环镜》介绍了在国产浪潮电脑统信UOS操作系统中安装visual studio code和cmake搭建C开发环镜的过…

可视化开发平台哪个好?

“可视化开发平台哪个好?”,这是不少粉丝朋友经常询问我们的问题。作为专业的低代码技术平台服务商,流辰信息将全力以赴做好低代码平台的研发创新工作,持续为行业的数字化转型和流程化办公带来整套专业的数据平台方案服务。本文将…

七牛云API轻松集成,助力电商客服系统升级

七牛云:电商平台的无代码API集成解决方案 随着电子商务行业的蓬勃发展,电商平台正面临着数据管理和客户体验优化的巨大挑战。七牛云,作为业界领先的云服务提供商,针对这一需求推出了无代码API集成解决方案。这套方案旨在简化电商…

Big Data Tools插件(详细讲解安装,连接,包教包会!!!)

前言 ​ 最近有很多朋友都开始转行大数据竞赛了,大部分都是刚刚入门之类的,我自己是有一些基础的,玩过一段时间,最近很多好友学弟,都问过一个问题就是有没有什么类似于远程控制,或者图形化控制HDFS的插件或…