finvizfinance is a package which collects financial information from FinViz website. The package provides the information of the following:
- Stock charts, fundamental & technical information, insider information and stock news
- Forex charts and performance
- Crypto charts and performance
Screener and Group provide dataframes for comparing stocks according to different filters and trading signals.
Docs: https://finvizfinance.readthedocs.io/en/latest/
To download the latest version from GitHub:
$ git clone https://github.com/lit26/finvizfinance.git
Or install from PyPi:
$ pip install finvizfinance
Getting information (fundament, description, outer rating, stock news, inside trader) of an individual stock.
from finvizfinance.quote import finvizfinance
stock = finvizfinance('tsla')stock.ticker_charts()stock_fundament = stock.ticker_fundament()
# result
# stock_fundament = {'Company': 'Tesla, Inc.', 'Sector': 'Consumer Cyclical',
# 'Industry': 'Auto Manufacturers', 'Country': 'USA', 'Index': '-', 'P/E': '849.57',
# 'EPS (ttm)': '1.94', 'Insider Own': '0.10%', 'Shs Outstand': '186.00M',
# 'Perf Week': '13.63%', 'Market Cap': '302.10B', 'Forward P/E': '106.17',
# ...}stock_description = stock.ticker_description()
# stock_description
# stock_description = 'Tesla, Inc. designs, develops, manufactures, ...'stock_peer = stock.ticker_peer()
# stock_peer
# stock_peer = ['LI', 'XPEV', 'NIO', 'RIVN', 'LCID', 'TM', 'HMC', 'GM', 'STLA', 'F']stock_etf_holders = stock.ticker_etf_holders()
# stock_etf_holders
# stock_etf_holders = ['VTI', 'VOO', 'IVV', 'SPY', 'VUG', 'QQQ', 'VGT', 'IWF', 'XLK', 'SPLG']outer_ratings_df = stock.ticker_outer_ratings()news_df = stock.ticker_news()inside_trader_df = stock.ticker_inside_trader()Getting recent financial news from finviz.
from finvizfinance.news import News
fnews = News()
all_news = fnews.get_news()Finviz News include 'news' and 'blogs'.
all_news['news'].head()all_news['blogs'].head()Getting insider trading information.
from finvizfinance.insider import Insider
finsider = Insider(option='top owner trade')
# option: latest, top week, top owner trade
# default: latest
insider_trader = finsider.get_insider()Getting multiple tickers' information according to the filters.
from finvizfinance.screener.overview import Overview
foverview = Overview()
filters_dict = {'Index':'S&P 500','Sector':'Basic Materials'}
foverview.set_filter(filters_dict=filters_dict)
df = foverview.screener_view()
df.head()Getting list of tickers according to the filters.
Getting the economic calendar (release datetime, impact, actual/expected/prior).
from finvizfinance.calendar import Calendar
fcalendar = Calendar()
df = fcalendar.calendar()
df.head()Partitioning tickers by their earnings dates for a period.
from finvizfinance.earnings import Earnings
# period: This Week (default), Next Week, Previous Week, This Month
fearnings = Earnings(period='This Week')
# mode: financial (default), overview, valuation, ownership, performance, technical
days = fearnings.partition_days(mode='financial')
# optionally export the partitioned tables
fearnings.output_excel('earning_days.xlsx')
fearnings.output_csv('earning_days')Getting futures performance.
from finvizfinance.future import Future
ffuture = Future()
# timeframe: D (default), W, M, Q, HY, Y
df = ffuture.performance(timeframe='D')
df.head()Optional proxy can be used for getting information from FinViz website. Accessible from finvizfinance it's an extension of requests library proxies
from finvizfinance.util import set_proxy
proxies={'http': 'http://127.0.0.1:8080'}
set_proxy(proxies)Developed by Tianning Li. Feel free to give comments or suggestions.






