Skip to content

finmodels is a Python package that provides various financial models for analysis and optimization.

Notifications You must be signed in to change notification settings

AndraDunnaway18/finmodels

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

finmodels

finmodels is a Python package designed for financial analysis and optimization. It includes a collection of financial models, such as Discounted Cash Flow (DCF) valuation and Mean-Variance Portfolio Optimization. With finmodels, you can perform essential financial calculations to support investment decisions and portfolio management.

Key Features

Discounted Cash Flow (DCF) Valuation: Calculate the present value of future cash flows to assess the intrinsic value of an investment.

Portfolio Optimization: Optimize portfolio allocations using Mean-Variance Optimization to balance returns and risk.

The Leveraged Buyout (LBO) Model: LBO Model is a financial analysis tool used in corporate finance for

evaluating the acquisition of a company using a significant amount of borrowed funds.

IPO Model: IPO Model is a simple Python script for calculating the Initial Public Offering (IPO) valuation using a discounted cash flow (DCF) model.

Installation

You can install the package using pip:

pip install finmodels

Usage Discounted Cash Flow (DCF) Valuation

Example usage of DCF valuation

import finmodels as fm
cash_flows = [100, 150, 200, 250]
discount_rate = 0.1
dcf_value = fm.calculate_dcf(cash_flows, discount_rate)
print("DCF Value:", dcf_value)

Example usage of Portfolio Optimization

import finmodels as fm
import numpy as np

# Example usage of portfolio optimization
expected_returns = np.array([0.05, 0.08, 0.12])
covariance_matrix = np.array([[0.001, 0.0005, 0.0002],
                              [0.0005, 0.002, 0.001],
                              [0.0002, 0.001, 0.003]])
optimal_weights = fm.optimize_portfolio(expected_returns, covariance_matrix)
print("Optimal Portfolio Weights:", optimal_weights)

Example usage of Leveraged Buyout (LBO) Model

import finmodels as fm
# Example usage
acquisition_price_example = 1000
equity_percentage_example = 0.3
debt_interest_rate_example = 0.05
projection_years_example = 5

# Create an instance of LBOModel
lbo_model = fm.LBOModel(acquisition_price_example, equity_percentage_example,
                     debt_interest_rate_example, projection_years_example)

# Calculate and print equity returns
equity_returns_result = lbo_model.calculate_equity_returns()
print(f"Equity Returns for each year: {equity_returns_result}")

Example usage of IPO Model

import finmodels as fm
# Example usage
initial_valuation = 500000000  # Initial company valuation before IPO
funds_raised = 100000000  # Funds raised during the IPO
operating_income = 75000000  # Annual operating income before IPO
growth_rate = 0.05  # Annual growth rate of operating income
years = 5  # Number of years for the IPO model

ipo_model = fm.IPOModel(initial_valuation, funds_raised, operating_income, growth_rate, years)
ipo_model.print_summary()

Contributors

Tamilselvan Arjunan

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

finmodels is a Python package that provides various financial models for analysis and optimization.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%