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, ...'
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.
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.