问题描述
所以基本上我有 Alpha Vantage 的免费 API 密钥,我用它来获取随机股票的基本数据。明确地说,我已经成功连接并使用了 API,我不需要提取 5 年以上的股票价格数据。
总而言之,有谁知道您是否可以通过某种方式获得 5 年以上选定股票代码的收入、资产负债表和现金流数据? 这是一项高级功能吗?我在任何地方都找不到任何东西。
对于这里感兴趣的任何人都是我正在使用的代码...
import requests
import pandas as pd
from pandasgui import show
from alpha_vantage.alphavantage import AlphaVantage
from alpha_vantage.timeseries import TimeSeries
# ///////////////////////////////////////////////////////////
# FUNCTIONS FOR ALPHA VANTAGE
# ///////////////////////////////////////////////////////////
TIME_SERIES_INTradAY = 'TIME_SERIES_INTradAY'
TIME_SERIES_INTradAY_EXTENDED = 'TIME_SERIES_INTradAY_EXTENDED'
TIME_SERIES_DAILY = 'TIME_SERIES_DAILY'
TIME_SERIES_DAILY_ADJUSTED = 'TIME_SERIES_DAILY_ADJUSTED'
TIME_SERIES_WEEKLY = 'TIME_SERIES_WEEKLY'
TIME_SERIES_WEEKLY_ADJUSTED = 'TIME_SERIES_WEEKLY_ADJUSTED'
TIME_SERIES_MONTHLY = 'TIME_SERIES_MONTHLY'
TIME_SERIES_MONTHLY_ADJUSTED = 'TIME_SERIES_MONTHLY_ADJUSTED'
GLOBAL_QUOTE = 'GLOBAL_QUOTE'
SYMBOL_SEARCH = 'SYMBOL_SEARCH'
OVERVIEW = 'OVERVIEW'
EARNINGS = 'EARNINGS'
INCOME_STATEMENT = 'INCOME_STATEMENT'
BALANCE_SHEET = 'BALANCE_SHEET'
CASH_FLOW = 'CASH_FLOW'
LISTING_STATUS = 'LISTING_STATUS'
EARNINGS_CALENDAR = 'EARNINGS_CALENDAR'
IPO_CALENDAR = 'IPO_CALENDAR'
CURRENCY_EXCHANGE_RATE = 'CURRENCY_EXCHANGE_RATE'
FX_INTradAY = 'FX_INTradAY'
FX_DAILY = 'FX_DAILY'
FX_WEEKLY = 'FX_WEEKLY'
FX_MONTHLY = 'FX_MONTHLY'
CURRENCY_EXCHANGE_RATE = 'CURRENCY_EXCHANGE_RATE'
CRYPTO_rating = 'CRYPTO_rating'
CRYPTO_INTradAY = 'CRYPTO_INTradAY'
DIGITAL_CURRENCY_DAILY = 'DIGITAL_CURRENCY_DAILY'
DIGITAL_CURRENCY_WEEKLY = 'DIGITAL_CURRENCY_WEEKLY'
DIGITAL_CURRENCY_MONTHLY = 'DIGITAL_CURRENCY_MONTHLY'
# ///////////////////////////////////////////////////////////
# TIME SERIES FOR STOCK DATA
# ///////////////////////////////////////////////////////////
ONEMIN = 'Time Series (1min)'
FIVEMIN = 'Time Series (5min)'
FIVETEENMIN = 'Time Series (15min)'
THIRTYMIN = 'Time Series (30min)'
HOUR = 'Time Series (60min)'
FIVEMIN = 'Time Series (5min)'
DAILY = 'Time Series (Daily)'
WEEKLY = 'Weekly Time Series'
WEEKLY_ADJ = 'Weekly Adjusted Time Series'
MONTLY = 'Monthly Time Series'
MONTLY_ADJ = 'Monthly Adjusted Time Series'
# /////////////////////////////////////////////////////////
# query fundamental stock data of selected type ///////////
# /////////////////////////////////////////////////////////
def query_fundamental_data(func,symbol,outputsize='full',datatype='json',apikey='TUBY75I2F4D58X6M'):
data = {
"function": func,"symbol": symbol,"outputsize": outputsize,# (full) and (compact) are accepted
"datatype": datatype,"apikey": apikey
}
return requests.get("https://www.alphavantage.co/query",data).json()
# /////////////////////////////////////////////////////////
# convert fund stock data of selected type to json ////////
# /////////////////////////////////////////////////////////
def get_fundamental_dataframe(json):
df = pd.DataFrame(json['annualReports'])
df.set_index('fiscalDateEnding',inplace=True)
return df
# /////////////////////////////////////////////////////////
# query timeseries stock data of selected type ////////////
# /////////////////////////////////////////////////////////
def query_timeseries_data(func,data).json()
# /////////////////////////////////////////////////////////
# convert time-series stock data of selected type to JSON//
# /////////////////////////////////////////////////////////
def get_timeseries_dataframe(json,type):
df = pd.DataFrame.from_dict(json[type],orient= 'index')
df.index = pd.to_datetime(df.index,format='%Y-%m-%d')
df = df.rename(columns={ '1. open': 'Open','2. high': 'High','3. low': 'Low','4. close': 'Close','5. volume': 'Volume'})
df = df.astype({'Open': 'float64','High': 'float64','Low': 'float64','Close': 'float64','Volume': 'float64',})
df = df[[ 'Open','High','Low','Close','Volume']]
return df
# /////////////////////////////////////////////////////////
# how to create dataframes for matplotlib usage //////////
# /////////////////////////////////////////////////////////
response_json = query_fundamental_data(INCOME_STATEMENT,'MSFT')
INCOME_DATA = get_fundamental_dataframe(response_json)
#response_json = query_fundamental_data(BALANCE_SHEET,'MSFT')
#BALANCE_DATA = get_fundamental_dataframe(response_json)
#response_json = query_fundamental_data(CASH_FLOW,'MSFT')
#CASHFLOW_DATA = get_fundamental_dataframe(response_json)
#response_json = query_timeseries_data(TIME_SERIES_DAILY,'MSFT')
#STOCKPRICE_DATA = get_timeseries_dataframe(response_json,DAILY)
show(INCOME_DATA)
#show(BALANCE_DATA)
#show(CASHFLOW_DATA)
#show(STOCKPRICE_DATA)
预先感谢任何可以提供帮助或可以通知我的人,无论目前是否可行。 我试图自己找到一种方法,我似乎在文档中或任何地方都找不到。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)