Skip to content

Rk-2005/Fa_Project

Repository files navigation

๐Ÿ“ˆ Investor Decision Support System

A comprehensive Streamlit-based application that helps users make informed investment decisions through advanced financial analysis including portfolio optimization, CAPM analysis, and ARIMA forecasting.

๐ŸŒŸ Features

๐Ÿ“Š Data Input & Management

  • 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 Analysis (Experiment 4)

  • 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

๐Ÿ“ˆ CAPM Analysis (Experiment 5)

  • 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

๐Ÿ”ฎ Forecasting (Experiment 6)

  • 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

๐Ÿ“Š Advanced Visualizations

  • 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

๐ŸŽจ User Interface

  • 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

๐Ÿ“ค Export & Reporting

  • PDF Reports: Comprehensive analysis reports
  • CSV Export: Data export functionality
  • Chart Downloads: Save visualizations as images
  • Summary Statistics: Automated report generation

๐Ÿš€ Quick Start

Prerequisites

  • Python 3.8 or higher
  • pip package manager

Installation

  1. Clone or download the project files
git clone <repository-url>
cd investor-decision-support-system
  1. Install dependencies
pip install -r requirements.txt
  1. Run the application
streamlit run app.py
  1. Access the application Open your browser and navigate to http://localhost:8501

๐Ÿ“‹ Usage Guide

Step 1: Data Input

  1. Navigate to the Data Input tab
  2. Select a stock category or enter custom symbols
  3. Choose your preferred time period
  4. Click Fetch Data to load stock information
  5. Review the data summary and price charts

Step 2: Portfolio Analysis

  1. Go to the Portfolio Analysis tab
  2. Adjust portfolio weights using sliders
  3. Choose optimization strategy:
    • Maximize Sharpe Ratio
    • Target Return optimization
  4. Generate efficient frontier visualization
  5. Review correlation matrix and individual metrics

Step 3: CAPM Analysis

  1. Switch to the CAPM Analysis tab
  2. Review beta and alpha calculations for each stock
  3. Analyze the Security Market Line plot
  4. Compare actual vs expected returns
  5. Assess market risk metrics

Step 4: Forecasting

  1. Open the Forecasting tab
  2. Select a stock for price prediction
  3. Configure forecast parameters:
    • Forecast periods (days)
    • Confidence level
    • ARIMA parameters (optional)
  4. Generate and visualize price forecasts
  5. Review model diagnostics and accuracy

Step 5: Summary Report

  1. Visit the Summary tab
  2. Review comprehensive analysis results
  3. Export data as CSV or generate PDF report
  4. Save charts and visualizations

๐Ÿ› ๏ธ Technical Architecture

Core Modules

  • data_fetcher.py: Data acquisition and validation
  • portfolio_analysis.py: Portfolio optimization and risk analysis
  • capm_analysis.py: Capital Asset Pricing Model implementation
  • forecasting.py: ARIMA time series forecasting
  • visualization.py: Interactive chart generation
  • pdf_generator.py: Report generation utilities
  • config.py: Configuration and constants
  • app.py: Main Streamlit application

Dependencies

  • 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

๐Ÿ“Š Sample Analysis Workflow

Example: Technology Portfolio Analysis

  1. Stock Selection: AAPL, MSFT, GOOGL, AMZN, META
  2. Portfolio Weights: Equal weight (20% each)
  3. Expected Return: 12.5% annually
  4. Volatility: 18.3%
  5. Sharpe Ratio: 0.684
  6. Beta Analysis: Portfolio beta of 1.12 (moderate market sensitivity)
  7. Forecasting: 30-day price predictions with confidence intervals

Risk Assessment

  • Market Risk: Moderate (beta > 1.0)
  • Diversification: Good sector spread
  • Volatility: Above average but manageable
  • Recommendation: Suitable for moderate-risk investors

๐Ÿ”ง Configuration Options

Risk Parameters

  • Risk-free Rate: Configurable (default 2%)
  • Market Index: S&P 500 (customizable)
  • Analysis Period: 1Y to 10Y options

Optimization Settings

  • Efficient Frontier Points: 1000 portfolios
  • ARIMA Parameters: Auto-selection or manual
  • Confidence Levels: 80% to 99%

Visualization Options

  • Theme Selection: Light/Dark modes
  • Chart Types: Interactive Plotly charts
  • Export Formats: PNG, SVG, PDF

๐Ÿ“ˆ Performance Metrics

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

๐Ÿšจ Important Disclaimers

  • 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

๐Ÿค Contributing

Contributions are welcome! Please feel free to submit pull requests or open issues for:

  • Bug fixes
  • Feature enhancements
  • Documentation improvements
  • Performance optimizations

๐Ÿ“ License

This project is open source and available under the MIT License.

๐Ÿ“ž Support

For questions, issues, or suggestions:

  1. Check the documentation
  2. Review existing issues
  3. Create a new issue with detailed description
  4. Include error messages and system information

๐Ÿ”ฎ Future Enhancements

  • 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! ๐Ÿ“ˆ๐Ÿ’ฐ

About

Documentation Link

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages