A comprehensive Streamlit-based application that helps users make informed investment decisions through advanced financial analysis including portfolio optimization, CAPM analysis, and ARIMA forecasting.
- Multi-source Data Fetching: Supports various stock exchanges (NYSE, NASDAQ, NSE, BSE)
- Real-time Data: Uses yfinance for live market data
- Data Validation: Automatic symbol validation and error handling
- Flexible Time Periods: 1Y, 2Y, 5Y, 10Y historical data options
- Portfolio Optimization: Modern Portfolio Theory implementation
- Efficient Frontier: Interactive visualization of optimal risk-return combinations
- Sharpe Ratio Optimization: Maximize risk-adjusted returns
- Weight Management: Interactive sliders for portfolio allocation
- Risk Metrics: Volatility, expected returns, and correlation analysis
- Performance Comparison: Portfolio vs individual stock analysis
- Beta Calculation: Systematic risk measurement for each stock
- Alpha Analysis: Performance relative to expected returns
- Security Market Line (SML): Interactive CAPM visualization
- Market Premium: Risk-return relationship analysis
- Portfolio Beta: Weighted average beta calculation
- ARIMA Models: Auto-ARIMA parameter selection
- Time Series Analysis: Stationarity testing and differencing
- Confidence Intervals: Uncertainty quantification for predictions
- Interactive Forecasts: Visual trend analysis with historical data
- Model Diagnostics: AIC, BIC, and statistical validation
- Interactive Charts: Plotly-based dynamic visualizations
- Efficient Frontier Plots: Risk-return scatter with optimization points
- Correlation Heatmaps: Stock relationship analysis
- Price Forecast Charts: Historical vs predicted trends
- Portfolio Allocation: Pie charts and weight distributions
- Tabbed Interface: Organized analysis sections
- Real-time Updates: Dynamic parameter adjustment
- Responsive Design: Works on desktop and mobile
- Dark/Light Themes: Customizable visual themes
- KPI Dashboard: Key performance indicators display
- PDF Reports: Comprehensive analysis reports
- CSV Export: Data export functionality
- Chart Downloads: Save visualizations as images
- Summary Statistics: Automated report generation
- Python 3.8 or higher
- pip package manager
- Clone or download the project files
git clone <repository-url>
cd investor-decision-support-system- Install dependencies
pip install -r requirements.txt- Run the application
streamlit run app.py- Access the application
Open your browser and navigate to
http://localhost:8501
- Navigate to the Data Input tab
- Select a stock category or enter custom symbols
- Choose your preferred time period
- Click Fetch Data to load stock information
- Review the data summary and price charts
- Go to the Portfolio Analysis tab
- Adjust portfolio weights using sliders
- Choose optimization strategy:
- Maximize Sharpe Ratio
- Target Return optimization
- Generate efficient frontier visualization
- Review correlation matrix and individual metrics
- Switch to the CAPM Analysis tab
- Review beta and alpha calculations for each stock
- Analyze the Security Market Line plot
- Compare actual vs expected returns
- Assess market risk metrics
- Open the Forecasting tab
- Select a stock for price prediction
- Configure forecast parameters:
- Forecast periods (days)
- Confidence level
- ARIMA parameters (optional)
- Generate and visualize price forecasts
- Review model diagnostics and accuracy
- Visit the Summary tab
- Review comprehensive analysis results
- Export data as CSV or generate PDF report
- Save charts and visualizations
data_fetcher.py: Data acquisition and validationportfolio_analysis.py: Portfolio optimization and risk analysiscapm_analysis.py: Capital Asset Pricing Model implementationforecasting.py: ARIMA time series forecastingvisualization.py: Interactive chart generationpdf_generator.py: Report generation utilitiesconfig.py: Configuration and constantsapp.py: Main Streamlit application
- Streamlit: Web application framework
- yfinance: Financial data API
- pandas/numpy: Data manipulation
- plotly: Interactive visualizations
- statsmodels: Statistical modeling (ARIMA)
- scipy: Optimization algorithms
- reportlab: PDF generation
- Stock Selection: AAPL, MSFT, GOOGL, AMZN, META
- Portfolio Weights: Equal weight (20% each)
- Expected Return: 12.5% annually
- Volatility: 18.3%
- Sharpe Ratio: 0.684
- Beta Analysis: Portfolio beta of 1.12 (moderate market sensitivity)
- Forecasting: 30-day price predictions with confidence intervals
- Market Risk: Moderate (beta > 1.0)
- Diversification: Good sector spread
- Volatility: Above average but manageable
- Recommendation: Suitable for moderate-risk investors
- Risk-free Rate: Configurable (default 2%)
- Market Index: S&P 500 (customizable)
- Analysis Period: 1Y to 10Y options
- Efficient Frontier Points: 1000 portfolios
- ARIMA Parameters: Auto-selection or manual
- Confidence Levels: 80% to 99%
- Theme Selection: Light/Dark modes
- Chart Types: Interactive Plotly charts
- Export Formats: PNG, SVG, PDF
The system calculates and displays:
- Expected Returns: Annualized expected portfolio returns
- Volatility: Standard deviation of returns
- Sharpe Ratio: Risk-adjusted return measure
- Beta: Systematic risk relative to market
- Alpha: Excess return over expected performance
- VaR: Value at Risk calculations
- Correlation: Inter-stock relationships
- Educational Purpose: This tool is for educational and research purposes
- Not Financial Advice: Results should not be considered as investment recommendations
- Market Risk: All investments carry risk of loss
- Past Performance: Historical data does not guarantee future results
- Professional Consultation: Consult qualified financial advisors for investment decisions
Contributions are welcome! Please feel free to submit pull requests or open issues for:
- Bug fixes
- Feature enhancements
- Documentation improvements
- Performance optimizations
This project is open source and available under the MIT License.
For questions, issues, or suggestions:
- Check the documentation
- Review existing issues
- Create a new issue with detailed description
- Include error messages and system information
- News Sentiment Analysis: Integration with news APIs
- Machine Learning Models: Advanced forecasting algorithms
- Options Analysis: Options pricing and strategies
- Multi-Asset Support: Bonds, commodities, cryptocurrencies
- Real-time Alerts: Price and volatility notifications
- Mobile App: Native mobile application
- API Integration: RESTful API for external access
Happy Investing! ๐๐ฐ