The stockAnalyzer.py script is a Python-based application for analyzing stock data. It provides a graphical user interface (GUI) for fetching, processing, and visualizing stock data, including technical indicators such as Moving Averages, Bollinger Bands, MACD, RSI, and Stochastic Oscillator.

- Stock Watchlist Management: Add, remove, and manage a list of stock tickers.
- Data Fetching: Fetch historical stock data from Yahoo Finance using the
yfinancelibrary. - Technical Indicators:
- Simple Moving Averages (SMA)
- Bollinger Bands
- MACD (Moving Average Convergence Divergence)
- RSI (Relative Strength Index)
- Stochastic Oscillator
- Charting: Generate candlestick charts with overlays for technical indicators using
mplfinance. - Company Information: Display detailed company information, including market cap, P/E ratio, dividend yield, and more.
- Data Caching: Save and load stock data locally in Parquet format to reduce redundant API calls.
- Customizable Timeframes: Analyze data for a user-defined number of years (1–20 years).
- Python 3.13 (did not test with 3.14 or higher)
- Required Python libraries:
datetimepandasmatplotlibmplfinanceyfinancetkinter(built-in with Python)threadingtypingcurl_cffi(for handling rate limits inyfinance)ibapi
- Clone the repository.
- Install the required dependencies using pip:
cd stockAnalyzer pip install -r requirements.txt - Run the script:
cd src python stockAnalyzer.py
- Launch the Application: Run the script to open the GUI.
- Add Tickers: Use the "Add" button to add stock tickers to the watchlist.
- Select a Ticker: Click on a ticker in the watchlist to load its data.
- View Charts: View daily and weekly candlestick charts with technical indicators.
- Adjust Timeframe: Use the "Years" input to change the analysis period (1–20 years).
- Company Information: View detailed company information in the "Company Information" section.
- Add a stock ticker (e.g.,
AAPL) to the watchlist. - Select the ticker to load its data.
- View the daily and weekly charts with technical indicators.
- Adjust the analysis period using the "Years" input.
- Rate Limits: The script uses
curl_cffito handle the rate limits failure when using Yahoo Finance.
Apache-2.0 license