Alpha Vantage通过一套强大且开发者友好的数据API和电子表格,提供实时和历史的金融市场数据。从传统资产类别(例如股票、ETF、共同基金)到经济指标,从外汇汇率到大宗商品,从基本数据到技术指标,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()
%pip install alpha_vantage
%pip install bs4
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")
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)
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
df_apple1 = pd.DataFrame(apple1).transpose().reset_index()
df_apple1.head()
ts2 = TimeSeries(key = API_key, output_format = "pandas")
ts2.get_intraday("AAPL")
df_apple2, meta_data = ts2.get_intraday("AAPL", outputsize="full")
meta_data
df_apple2.reset_index()
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)
url = 'https://www.alphavantage.co/query?function=EARNINGS&symbol=AAPL&apikey=' + str(API_key)
r = requests.get(url)
fd = BeautifulSoup(r.content)
print(fd)
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)
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)
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)
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)
url = 'https://www.alphavantage.co/query?function=CPI&interval=monthly&apikey=' + str(API_key)
r = requests.get(url)
ei = BeautifulSoup(r.content)
print(ei)
url = 'https://www.alphavantage.co/query?function=UNEMPLOYMENT&apikey=' + str(API_key)
r = requests.get(url)
ei = BeautifulSoup(r.content)
print(ei)
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)
如何计算简单移动平均(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)
加权移动平均为系列中的每个数值计算一个权重。较近期的数值被分配更大的权重。
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)
价格变动率(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)
布林带是一种用于技术分析的工具,它由一系列线条组成,这些线条与证券价格的简单移动平均(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)