超过 5 年的 Alpha Vantage 基本数据损益表、资产负债表、现金流

问题描述

所以基本上我有 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)

您会注意到结果只有短短 5 年。

pandas gui view of dataframe

预先感谢任何可以提供帮助或可以通知我的人,无论目前是否可行。 我试图自己找到一种方法,我似乎在文档中或任何地方都找不到。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...