Skip to content

FinanceToolkit v1.7.3

Compare
Choose a tag to compare
@JerBouma JerBouma released this 02 Jan 16:50
· 215 commits to main since this release

Happy New Year Everyone 🍾

This release includes an entirely new class which is the Discovery class. This class will help in discovering new instruments that can be inputted directly into the Finance Toolkit for further analysis. Find the documentation here.

For example, by importing the Discovery module directly, it is possible to obtain a large list of companies.

from financetoolkit import Discovery

discovery = Discovery(api_key="FINANCIAL_MODELING_PREP_KEY")

stock_list = discovery.get_stock_list()

# The total list equals over 60.000 rows
stock_list.iloc[48000:48010]

Which returns:

Symbol Name Price Exchange Exchange Code
RBL.AX Redbubble Limited 0.54 Australian Securities Exchange ASX
RBL.BO Rane Brake Lining Limited 870.05 Bombay Stock Exchange BSE
RBL.NS Rane Brake Lining Limited 870.05 National Stock Exchange of India NSE
RBLAY Robinsons Land Corporation 4.61 Other OTC PNK
RBLBANK.BO RBL Bank Limited 280.9 Bombay Stock Exchange BSE
RBLBANK.NS RBL Bank Limited 280.9 National Stock Exchange of India NSE
RBLN-B.CO Roblon A/S 91.8 Copenhagen CPH
RBLX Roblox Corporation 45.72 New York Stock Exchange NYSE
RBMNF Rugby Resources Ltd. 0.065 Other OTC PNK
RBMS.JK PT Ristia Bintang Mahkotasejati Tbk 50 Jakarta Stock Exchange JKT

It also enables stock screeners:

from financetoolkit import Discovery

discovery = Discovery(api_key="FINANCIAL_MODELING_PREP_KEY")

discovery.get_stock_screener(
    market_cap_higher=1000000,
    market_cap_lower=200000000000,
    price_higher=100,
    price_lower=200,
    beta_higher=1,
    beta_lower=1.5,
    volume_higher=100000,
    volume_lower=2000000,
    dividend_higher=1,
    dividend_lower=2,
    is_etf=False
)

Which returns:

Symbol Name Market Cap Sector Industry Beta Price Dividend Volume Exchange Exchange Code Country
NKE NIKE, Inc. 163403295604 Consumer Cyclical Footwear & Accessories 1.079 107.36 1.48 1045865 New York Stock Exchange NYSE US
SAF.PA Safran SA 66234006559 Industrials Aerospace & Defense 1.339 160.16 1.35 119394 Paris EURONEXT FR
ROST Ross Stores, Inc. 46724188589 Consumer Cyclical Apparel Retail 1.026 138.785 1.34 169879 NASDAQ Global Select NASDAQ US
HES Hess Corporation 44694706090 Energy Oil & Gas E&P 1.464 145.51 1.75 123147 New York Stock Exchange NYSE US

Which then can be directly inputted into the Finance Toolkit:

from financetoolkit import Toolkit

companies = Toolkit(
    tickers=['NKE', 'SAF.PA', 'ROST', 'HES'],
    api_key="FINANCIAL_MODELING_PREP_KEY",
)

companies.ratios.get_price_earnings_ratio()

Which returns:

2014 2015 2016 2017 2018 2019 2020 2021 2022 2023
HES 8.4355 -3.9366 -2.8064 -3.3368 -39.7483 -79.129 -5.4733 25.1712 19.5719
NKE 29.4181 31.0527 21.9158 23.5325 60.6729 39.2127 86.2596 45.9014 30.8813 33.6161
ROST 19.5859 19.8813 21.7047 21.3971 18.6637 24.4335 493.771 22.9419 26.2563
SAF.PA -152.997 -57.6348 14.3119 7.1287 34.6723 24.0264 142.461 686.616 -21.0077

Next to that, I've also grouped the TQDM statements when using Ratios or Models. So instead of 5 bars, it displays just 2. Furthermore, I've extended the custom ratios functionality, see here.