一个 Python 包,用于聚合来自流行且免费的金融 API 的历史数据,并将该数据转换为 AI/ML 的功能。
finagg是一个 Python 包,提供流行且免费的金融 API 的实现、用于将这些 API 中的历史数据聚合到 SQL 数据库中的工具,以及用于将聚合数据转换为对分析和 AI/ML 有用的功能的工具。
使用 pip 安装最新的稳定版本。
pip install finagg
从 GitHub 安装最新的不稳定版本。
git clone https://github.com/theOGognf/finagg.git
pip install ./finagg/
(可选)将来自 3rd 方 API 的推荐数据集(经济数据、公司财务状况、股票历史记录等)安装到本地 SQL 数据库中。
finagg install -ss economic -ts indices -z -r
安装将向您指出从哪里获取每个需要 API 密钥的免费 API 密钥,并将这些 API 密钥写入本地.env文件进行存储。运行finagg install --help以获取更多安装选项和详细信息。
直接探索 API
这些方法需要互联网访问和 API 密钥/用户代理声明。
获取经济分析局 (BEA) 数据。
>>> finagg.bea.api.gdp_by_industry.get(year=[2019]).head(5) table_id freq year quarter industry industry_description ... 0 1 Q 2019 1 11 Agriculture, forestry, fishing, and hunting ... 1 1 Q 2019 1 111CA Farms ... 2 1 Q 2019 1 113FF Forestry, fishing, and related activities ... 3 1 Q 2019 1 21 Mining ... 4 1 Q 2019 1 211 Oil and gas extraction ...
|
获取美联储经济数据 (FRED):
>>> finagg.fred.api.series.observations.get( ... "CPIAUCNS", ... realtime_start=0, ... realtime_end=-1, ... output_type=4 ... ).head(5) realtime_start realtime_end date value series_id 0 1949-04-22 1953-02-26 1949-03-01 169.5 CPIAUCNS 1 1949-05-23 1953-02-26 1949-04-01 169.7 CPIAUCNS 2 1949-06-24 1953-02-26 1949-05-01 169.2 CPIAUCNS 3 1949-07-22 1953-02-26 1949-06-01 169.6 CPIAUCNS 4 1949-08-26 1953-02-26 1949-07-01 168.5 CPIAUCNS
|
获取美国证券交易委员会 (SEC) 的文件:
>>> finagg.sec.api.company_facts.get(ticker="AAPL").head(5) end value accn fy fp form filed ... 0 2009-06-27 895816758.0 0001193125-09-153165 2009 Q3 10-Q 2009-07-22 ... 1 2009-10-16 900678473.0 0001193125-09-214859 2009 FY 10-K 2009-10-27 ... 2 2009-10-16 900678473.0 0001193125-10-012091 2009 FY 10-K/A 2010-01-25 ... 3 2010-01-15 906794589.0 0001193125-10-012085 2010 Q1 10-Q 2010-01-25 ... 4 2010-04-09 909938383.0 0001193125-10-088957 2010 Q2 10-Q 2010-04-21 ...
|
使用已安装的原始数据来探索最流行的功能
这些方法需要互联网访问、API 密钥/用户代理声明,以及通过 finagg install 或 finagg <api/subpackage> install 命令下载和安装原始数据。
在一个数据框中获取最流行的 FRED 功能。
>>> finagg.fred.feat.economic.from_raw().head(5) CIVPART LOG_CHANGE(CPIAUCNS) LOG_CHANGE(CSUSHPINSA) FEDFUNDS ... date ... 2014-10-06 62.8 0.0 0.0 0.09 ... 2014-10-08 62.8 0.0 0.0 0.09 ... 2014-10-13 62.8 0.0 0.0 0.09 ... 2014-10-15 62.8 0.0 0.0 0.09 ... 2014-10-20 62.8 0.0 0.0 0.09 ...
|
从 SEC 数据中获取季度报告特征:
>>> finagg.sec.feat.quarterly.from_raw("AAPL").head(5) LOG_CHANGE(Assets) LOG_CHANGE(AssetsCurrent) ... fy fp filed ... 2010 Q1 2010-01-25 0.182629 -0.023676 ... Q2 2010-04-21 0.000000 0.000000 ... Q3 2010-07-21 0.000000 0.000000 ... 2011 Q1 2011-01-19 0.459174 0.278241 ... Q2 2011-04-21 0.000000 0.000000 ...
|
获取特定股票的季度和每日特征的聚合:
>>> finagg.fundam.feat.fundam.from_raw("AAPL").head(5) PriceBookRatio PriceEarningsRatio date 2010-01-25 0.175061 2.423509 2010-01-26 0.178035 2.464678 2010-01-27 0.178813 2.475448 2010-01-28 0.177154 2.452471 2010-01-29 0.173825 2.406396
|
使用已安装的功能来探索原始数据的精细聚合
获取股票行情的平均季度报告功能
>>> finagg.sec.feat.quarterly.industry.from_refined(ticker="AAPL").head(5) mean ... name AssetCoverageRatio BookRatio DebtEquityRatio ... fy fp filed ... 2014 Q1 2014-05-15 10.731301 9.448954 0.158318 ... Q2 2014-08-14 10.731301 9.448954 0.158318 ... Q3 2014-11-14 10.731301 9.448954 0.158318 ... 2015 Q1 2015-05-15 16.738972 9.269250 0.294238 ... Q2 2015-08-13 16.738972 9.269250 0.294238 ...
|
API 密钥和用户代理
大多数 API 都需要 API 密钥和用户代理声明。您可以设置环境变量以将 API 密钥和用户代理公开给finagg,也可以以编程方式将 API 密钥和用户代理传递给已实现的 API。以下环境变量用于配置 API 密钥和用户代理:
- BEA_API_KEY用于经济分析局的 API 密钥。您可以从BEA API 站点获取免费的 API 密钥。
- FRED_API_KEY用于美联储经济数据 API 密钥。您可以从FRED API 站点获取免费的 API 密钥。
- INDICES_API_USER_AGENT用于从维基百科中抓取流行索引的组成,并且应该相当于浏览器的用户代理声明。默认为硬编码值,但它可能并不总是有效。
- SEC_API_USER_AGENT用于美国证券交易委员会的 API。这应该是格式FIRST_NAME LAST_NAME E_MAIL。
依赖关系