faizancodes / automated-fundamental-analysis Goto Github PK
View Code? Open in Web Editor NEWPython program that rates stocks out of 100 based on valuation, profitability, growth, and price performance metrics, relative to the company's sector.
Python program that rates stocks out of 100 based on valuation, profitability, growth, and price performance metrics, relative to the company's sector.
Hi.
First of all, congratulation on the amazing job here.
I download the repository through the git command a couple of months ago and work properly without any trouble. Now I would like to run again the analysis after quarterly results, but it is not working anymore for some reason. There is something that could change maybe? I am not an expert, to be honest, but if one time run, I don't understand why the second not. I clone everything again but still not working. Could be related to the getsectordata.py file because is writing the sectors but left them empty.
Please find below the code in order to see if there is any clue of what could be wrong. Thank you in advance
C:\Users\ejlam\Documents\Automated-Fundamental-Analysis>py getsectordata.py
Gathering data from basicmaterials sector...
Saved: SectorData\SectorData - basicmaterials.csv
Gathering data from communicationservices sector...
Saved: SectorData\SectorData - communicationservices.csv
Gathering data from consumercyclical sector...
Saved: SectorData\SectorData - consumercyclical.csv
Gathering data from consumerdefensive sector...
Saved: SectorData\SectorData - consumerdefensive.csv
Gathering data from energy sector...
Saved: SectorData\SectorData - energy.csv
Gathering data from financial sector...
Saved: SectorData\SectorData - financial.csv
Gathering data from healthcare sector...
Saved: SectorData\SectorData - healthcare.csv
Gathering data from industrials sector...
Saved: SectorData\SectorData - industrials.csv
Gathering data from realestate sector...
Saved: SectorData\SectorData - realestate.csv
Gathering data from technology sector...
Saved: SectorData\SectorData - technology.csv
Gathering data from utilities sector...
Saved: SectorData\SectorData - utilities.csv
Saved: SectorData\SectorData - AllSectors.csv
C:\Users\ejlam\AppData\Local\Programs\Python\Python37\lib\site-packages\numpy\core\fromnumeric.py:3335: RuntimeWarning: Mean of empty slice.
out=out, **kwargs)
C:\Users\ejlam\AppData\Local\Programs\Python\Python37\lib\site-packages\numpy\core_methods.py:161: RuntimeWarning: invalid value encountered in double_scalars
ret = ret.dtype.type(ret / rcount)
C:\Users\ejlam\AppData\Local\Programs\Python\Python37\lib\site-packages\numpy\core_methods.py:217: RuntimeWarning: Degrees of freedom <= 0 for slice
keepdims=keepdims)
C:\Users\ejlam\AppData\Local\Programs\Python\Python37\lib\site-packages\numpy\core_methods.py:186: RuntimeWarning: invalid value encountered in true_divide
arrmean, rcount, out=arrmean, casting='unsafe', subok=False)
C:\Users\ejlam\AppData\Local\Programs\Python\Python37\lib\site-packages\numpy\core_methods.py:209: RuntimeWarning: invalid value encountered in double_scalars
ret = ret.dtype.type(ret / rcount)
Traceback (most recent call last):
File "getsectordata.py", line 283, in
smoothAvg, start, change = getAverage(sector, metric, lessThan)
File "getsectordata.py", line 237, in getAverage
metricAvg = avg / validCells
ZeroDivisionError: division by zero
C:\Users\ejlam\Documents\Automated-Fundamental-Analysis>py stockratings.py
Which set of stocks do you want to get the ratings for?
Enter 1 for S&P500 stocks
Enter 2 for Mid Cap stocks over $2B Market Cap
Enter 3 for stocks over $300 Mln Market Cap
Enter 4 for stocks under $2B Market Cap
1
Loading data from SymbolData\S&P500Symbols.csv
0%| | 0/505 [00:00<?, ?it/s]C:\Users\ejlam\AppData\Local\Programs\Python\Python37\lib\site-packages\numpy\core\fromnumeric.py:3335: RuntimeWarning: Mean of empty slice.
out=out, **kwargs)
C:\Users\ejlam\AppData\Local\Programs\Python\Python37\lib\site-packages\numpy\core_methods.py:161: RuntimeWarning: invalid value encountered in double_scalars
ret = ret.dtype.type(ret / rcount)
C:\Users\ejlam\AppData\Local\Programs\Python\Python37\lib\site-packages\numpy\core_methods.py:217: RuntimeWarning: Degrees of freedom <= 0 for slice
keepdims=keepdims)
C:\Users\ejlam\AppData\Local\Programs\Python\Python37\lib\site-packages\numpy\core_methods.py:186: RuntimeWarning: invalid value encountered in true_divide
arrmean, rcount, out=arrmean, casting='unsafe', subok=False)
C:\Users\ejlam\AppData\Local\Programs\Python\Python37\lib\site-packages\numpy\core_methods.py:209: RuntimeWarning: invalid value encountered in double_scalars
ret = ret.dtype.type(ret / rcount)
0%| | 0/505 [00:01<?, ?it/s]
Traceback (most recent call last):
File "stockratings.py", line 875, in
getStockStats()
File "stockratings.py", line 853, in getStockStats
getStockData(stock)
File "stockratings.py", line 574, in getStockData
valuationGrade = getCategoryGrade(sector.lower(), valuationStats)
File "stockratings.py", line 467, in getCategoryGrade
output.append(getGrade(arr[x][0], arr[x][1], sector))
File "stockratings.py", line 269, in getGrade
start, change = getSectorStats(sector, mtrc, lessThan)
File "stockratings.py", line 176, in getSectorStats
metricAvg = avg / validCells
ZeroDivisionError: division by zero
C:\Users\ejlam\Documents\Automated-Fundamental-Analysis>
It looks like the finviz website has changed its data format, because the table is not found anymore.
I prepared a fix on a feature branch. If you give me access, I can push it.
Best Rgds,
Filip
Hi there,
thanks for the great code. However, with the new version, the getsectordata.py is creating empty files. It ends with the error message:
Exception has occurred: ZeroDivisionError
division by zero
File "/home/Documents/Python/Automated-Fundamental-Analysis-github/getsectordata.py", line 237, in getAverage
metricAvg = avg validCells
File "/home/Documents/Python/Automated-Fundamental-Analysis-github/getsectordata.py", line 283, in
smoothAvg, start, change = getAverage(sector, metric, lessThan)
I run it with Python3.6 as otherwise I wasn't able to install numpy 1.18.4. With the old version a few months back it took some time to retrieve the sector data, but now the empty files are created within a minute.
The files look similar to me. Tough, I could not find what is causing the problem.
All the Best.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.