Awesome
finvizfinance
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/
Downloads
To download the latest version from GitHub:
$ git clone https://github.com/lit26/finvizfinance.git
Or install from PyPi:
$ pip install finvizfinance
Quote
Getting information (fundament, description, outer rating, stock news, inside trader) of an individual stock.
from finvizfinance.quote import finvizfinance
stock = finvizfinance('tsla')
Chart
stock.ticker_charts()
Fundament
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',
# ...}
Description
stock_description = stock.ticker_description()
# stock_description
# stock_description = 'Tesla, Inc. designs, develops, manufactures, ...'
Outer Ratings
outer_ratings_df = stock.ticker_outer_ratings()
Stock News
news_df = stock.ticker_news()
Inside Trader
inside_trader_df = stock.ticker_inside_trader()
News
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()
Insider
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()
Screener (Overview, Valuation, Financial, Ownership, Performance, Technical)
Getting multiple tickers' information according to the filters.
Example: Overview
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()
Screener (Ticker)
Getting list of tickers according to the filters.
Misc (Proxy)
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)
Credit
Developed by Tianning Li. Feel free to give comments or suggestions.