A website AI Chatbot that can produce stock charts with indicators based on user input – saving time for investors looking for a quick technical snapshot of a stock.
-
Clone the repository:
git clone <repository-url> cd <repository-directory>
-
Create a virtual environment:
python -m venv charles
-
Activate the virtual environment:
- On Windows:
charles\Scripts\activate
- On macOS/Linux:
source charles/bin/activate
- On Windows:
-
Install dependencies:
pip install -r requirements.txt
-
Set up environment variables:
- Create .env file and place it in the root directory of the project. Reference sampleenv
-
Run the application:
streamlit run main.py
To use Charles, you need to provide a company name or ticker in the prompt. By default, if you do not provide an indicator, Charles will provide the closing price chart.
You can specify one or more of the following indicators to view in a chart:
- SMA (Simple Moving Average)
- EMA (Exponential Moving Average)
- RSI (Relative Strength Index)
- MACD (Moving Average Convergence Divergence)
- ADX (Average Directional Index)
- Bollinger Bands
- OBV (On Balance Volume)
- DMI (Directional Movement Index)
- Parabolic SAR
- VROC (Volume Rate of Change)
You can specify one of the following timespans to view in a chart:
- Hour
- Day
- Week
- Month
- Quarter
- Year
You can specify to see the stock's news and financials as well:
- "Show news"
- "Add news"
- "Stop news"
- "Remove news"
- "Show financials"
- "Add financials"
- "Stop financials"
- "Remove financials"
- "I want to see Microsoft with the following indicators SMA, VROC, OBV, and DMI"
- "Remove DMI"
- "Add MACD"
- "Use Timespan of a Month"
- "Remove SMA"
- "Change Timespan to Week"
- "Remove MACD and OBV"
- main.py: Entry point for the Streamlit application.
- indicators/calculations.py: Contains functions to calculate various technical indicators.
- indicators/plot.py: Contains functions to plot stock data with indicators.
- polygon/data_fetcher.py: Contains functions to fetch stock data from Polygon.io.
- polygon/display_financials.py: Contains functions to display financial data.
- polygon/display_news.py: Contains functions to display news data.
- pages/home.py: Home page for the application.
- pages/login.py: Login page for the application.
- pages/register.py: Registration page for new users.
- pages/stocks.py: Main page for viewing stock data and charts.
- pages/subscribeUser.py: Page for subscribing to the service.
- pages/unsubscribeUser.py: Page for unsubscribing from the service.