This is a simple python script that is deliberately minimal. It is light enough to be extensible and build upon even for new developers with minimal familiarity with scripting.
Out of the box, stockmonitor
provides a utility script that takes one or more user-specified stock symbol (such as FB
, GOOGL
, ['FB', 'AAPL']
), and:
- Fetches stock data from Yahoo and put them in a nice table using pandas
- Renders the last 7 days of stock performance for the specified stock(s)
- Renders a line plot of the trading volume over the last 1 year for the specified stock(s)
- The script is only 20 lines long(!)
- Deliberately lightweight, to keep it extensible for new developers
- If you need help: reach out to me by email or open an issue.
-
python monitor.py FB
Renders:High Low Open Close Volume Adj Close Date 2019-08-01 198.470001 190.880005 194.169998 192.729996 17777000 192.729996 2019-08-02 192.619995 188.070007 191.100006 189.020004 15297000 189.020004 2019-08-05 185.669998 179.339996 184.690002 181.729996 23086700 181.729996 2019-08-06 185.789993 183.089996 183.690002 184.509995 18035700 184.509995 2019-08-07 186.369995 181.220001 183.600006 185.149994 15833200 185.149994 2019-08-08 190.339996 184.050003 186.619995 190.160004 14828900 190.160004 2019-08-09 190.979996 187.119995 190.000000 187.850006 10507300 187.850006
-
python monitor.py '[AAPL, FB]'
Renders:Attributes High Low ... Volume Adj Close Symbols AAPL FB AAPL ... FB AAPL FB Date ... 2019-08-01 218.029999 198.470001 206.740005 ... 17777000.0 207.641068 192.729996 2019-08-02 206.429993 192.619995 201.630005 ... 15297000.0 203.247772 189.020004 2019-08-05 198.649994 185.669998 192.580002 ... 23086700.0 192.608185 181.729996 2019-08-06 198.070007 185.789993 194.039993 ... 18035700.0 196.254333 184.509995 2019-08-07 199.559998 186.369995 193.820007 ... 15833200.0 198.286606 185.149994 2019-08-08 203.529999 190.339996 199.389999 ... 14828900.0 202.659988 190.160004 2019-08-09 202.759995 190.979996 199.289993 ... 10507300.0 200.990005 187.850006
If TKInter is installed, it also renders a line chart using one or more of the columns. By default, it renders the Volume
column but can be specified:
Other Example Usage:
python monitor.py GOOGL Close
python monitor.py FB "['Close', 'Open']"
python monitor.py --symbol=AAPL --plot=Low
(explicit flags)python monitor.py --help
for documentation
- Download or Clone this repository
- Navigate to the directory where you downloaded this repository
- Run:
pip install -r requirements.txt
to install the dependencies - After successful installation, run one of the sample code from the Demo Usage section.
- Pandas
- Matplotlib
- Python Fire