All Projects → faizancodes → Automated-Fundamental-Analysis

faizancodes / Automated-Fundamental-Analysis

Licence: other
Python program that rates stocks out of 100 based on valuation, profitability, growth, and price performance metrics, relative to the company's sector.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Automated-Fundamental-Analysis

pyEX
Python interface to IEX and IEX cloud APIs
Stars: ✭ 407 (+396.34%)
Mutual labels:  stock-market, stocks
fundamentos
Download Bovespa Stock Market fundamentals with Python.
Stars: ✭ 80 (-2.44%)
Mutual labels:  stock-market, stocks
Finance
Here you can find all the quantitative finance algorithms that I've worked on and refined over the past year!
Stars: ✭ 194 (+136.59%)
Mutual labels:  stock-market, stocks
cira
Cira algorithmic trading made easy. A Façade library for simpler interaction with alpaca-trade-API from Alpaca Markets.
Stars: ✭ 21 (-74.39%)
Mutual labels:  stock-market, stocks
market-monitor
Interactive app to monitor market using Python
Stars: ✭ 20 (-75.61%)
Mutual labels:  stock-market, stocks
Yahoo Finance Api
PHP client for Yahoo Finance API 📈
Stars: ✭ 179 (+118.29%)
Mutual labels:  stock-market, stocks
capm shiny
Demo project of creating an interactive analytical tool for stock market using CAPM.
Stars: ✭ 31 (-62.2%)
Mutual labels:  stock-market, stocks
Robinhood On Rails
A web dashboard for the free trading platform Robinhood using Ruby on Rails and a private API
Stars: ✭ 134 (+63.41%)
Mutual labels:  stock-market, stocks
pair-trading-view
Pair Trading View - .NET application for visual analysis of synthetic financial instruments based on statistical models.
Stars: ✭ 45 (-45.12%)
Mutual labels:  stock-market, stocks
NSE-Stock-Scanner
National Stock Exchange (NSE), India based Stock screener program. Supports Live Data, Swing / Momentum Trading, Intraday Trading, Connect to online brokers as Zerodha Kite, Risk Management, Emotion Control, Screening, Strategies, Backtesting, Automatic Stock Downloading after closing, live free day trading data and much more
Stars: ✭ 78 (-4.88%)
Mutual labels:  stock-market, stocks
Bullish
Stock market performance insights and trends in your inbox daily.
Stars: ✭ 171 (+108.54%)
Mutual labels:  stock-market, stocks
NSEDownload
Python Library to get historical, adjusted data and generate trailing returns of stocks and indices on the NSE
Stars: ✭ 65 (-20.73%)
Mutual labels:  stock-market, stocks
Tiingo Python
Python REST Client for interacting with the Tiingo Financial Data API
Stars: ✭ 152 (+85.37%)
Mutual labels:  stock-market, stocks
Graphvega
Open Source Options Analytics Platform.
Stars: ✭ 189 (+130.49%)
Mutual labels:  stock-market, stocks
Sec Edgar Downloader
Download SEC filings from the EDGAR database using Python
Stars: ✭ 146 (+78.05%)
Mutual labels:  stock-market, stocks
Ta Rs
Technical analysis library for Rust language
Stars: ✭ 248 (+202.44%)
Mutual labels:  stock-market, stocks
Sumzerotrading
A Java API for Developing Automated Trading Applications for the Equity, Futures, and Currency Markets
Stars: ✭ 128 (+56.1%)
Mutual labels:  stock-market, stocks
Pytse Client
work with Tehran stock exchange data in Python
Stars: ✭ 130 (+58.54%)
Mutual labels:  stock-market, stocks
intrinio-realtime-java-sdk
Intrinio Java SDK for Real-Time Stock Prices
Stars: ✭ 22 (-73.17%)
Mutual labels:  stock-market, stocks
TradeByte
💸 TradeByte - Stocks Trading Simulation WebApp
Stars: ✭ 30 (-63.41%)
Mutual labels:  stock-market, stocks

Automated Fundamental Analysis via Python

This python program rates stocks out of 100 based on valuation, profitability, growth, and price performance metrics, relative to sector.

View the file StockRatings-04.05.22.csv as an example of the output of this program

How to Run the Code

  1. Clone the repository git clone https://github.com/faizancodes/Automated-Fundamental-Analysis.git
  2. Run cd Automated-Fundamental-Analysis
  3. Download all the dependencies pip install -r requirements.txt
  4. Run stockgrader.py, this will scrape data from all 8300+ stocks on Finviz.com and grade each of them out of 100
    • The program will also generate the CSV files you can use for analysis
  5. Open the csv file created from the program through Excel and analyze!

How to Run the Web App

  1. Run cd WebApp
  2. Run streamlit run app.py
    • If that does not work, run py -m streamlit run app.py
  3. Open the web app in your browser, it will be on localhost

Web App Screenshots

Grading System

The grading system used in this program is based on the normal distribution of values for a certain metric for a specified sector. For example, if I want to grade the Net Margin of a stock in the Technology sector, I look at the net margins of all the stocks in the technology sector and grade the stock's net margin based on its percentile in the distribution of values.

In the figure below, we see that the average net margin for a stock in technology sector is 1.8% and the 90th percentile is 16.45%. The grading system utilized in the program takes the standard deviation of the set of values after removing outliers and divides that number by 3, which is represented by the 'Change' value shown in the figure, equaling 4.68. This is the value that is used to grade each metric for each stock.

The figure shown below represents exactly how each metric is graded, where each bar in the graph is representative of 1 increment of the 'Change' value. Based on this figure and the 'Change' value, a stock in the technology sector with a net margin of:

  • 17% is rated A+
  • 15% is rated A
  • 11% is rated A-

After all the metrics in each category of valuation, profitability, growth, and price performance are graded, the grades are then converted to numbers and then the average of the values is computed. To get the overall rating of a stock, these numerical ratings for each category are added together and multiplied to get a score out of 100.

For metrics where a lower value is considered better, such as P/E ratios, the algorithm will use the 10th percentile as the basis for grading. So if a stock in the Technology sector has a P/E ratio of 10 and that is in the 10th percentile of all P/E ratios for Technology stocks, it will be rated A+.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].