Comparative Investment Analysis of Invesco and Blackstone Using Python
Introduction
In this post, we’ll explore how to use Python programming to compare the performance of two investment firms, Invesco and Blackstone. Invesco is known for its focus on public asset management, while Blackstone specializes in private equity, actively acquiring and managing companies. We’ll examine some key performance and risk metrics to understand how these firms behave in the market.
1. Stock Price Comparison
We’ll start with a basic comparison of stock prices between the two firms. This will help us visualize growth trends and stability in their market values.
import yfinance as yf
import matplotlib.pyplot as plt
# Download historical data for Invesco and Blackstone
invesco = yf.download("IVZ", start="2020-01-01", end="2023-01-01")
blackstone = yf.download("BX", start="2020-01-01", end="2023-01-01")
# Plot adjusted prices
plt.figure(figsize=(10, 5))
plt.plot(invesco['Adj Close'], label='Invesco (IVZ)')
plt.plot(blackstone['Adj Close'], label='Blackstone (BX)')
plt.title('Adjusted Price Comparison (Invesco vs Blackstone)')
plt.xlabel('Date')
plt.ylabel('Adjusted Price (USD)')
plt.legend()
plt.show()
This visualization shows how each company’s stock price has evolved over time. In your analysis, you can discuss the differences in volatility or growth trends.
2. Investment Growth Simulation
Next, we’ll simulate the cumulative performance of an initial $10,000 investment in each firm to see how that investment would have grown.
# Define initial investment
initial_investment = 10000
# Calculate the value of the investment over time
invesco_return = invesco['Adj Close'] / invesco['Adj Close'].iloc[0] * initial_investment
blackstone_return = blackstone['Adj Close'] / blackstone['Adj Close'].iloc[0] * initial_investment
# Plot cumulative returns
plt.figure(figsize=(10, 5))
plt.plot(invesco_return, label='Invesco (IVZ) Cumulative Return')
plt.plot(blackstone_return, label='Blackstone (BX) Cumulative Return')
plt.title('Investment Return Simulation (Invesco vs Blackstone)')
plt.xlabel('Date')
plt.ylabel('Investment Value (USD)')
plt.legend()
plt.show()
This graph shows the growth of an initial investment in each company over the selected period. It’s helpful to observe the relative growth of each investment option.
3. Risk Analysis: Sharpe Ratio
The Sharpe Ratio allows us to measure the risk-adjusted returns of both firms, which is essential for deciding which investment offers better returns relative to its risk.
import numpy as np
# Calculate daily returns
invesco_daily_return = invesco['Adj Close'].pct_change().dropna()
blackstone_daily_return = blackstone['Adj Close'].pct_change().dropna()
# Calculate Sharpe Ratio (assuming a 0% risk-free return)
def sharpe_ratio(returns):
return np.mean(returns) / np.std(returns) * np.sqrt(252)
invesco_sharpe = sharpe_ratio(invesco_daily_return)
blackstone_sharpe = sharpe_ratio(blackstone_daily_return)
print(f"Invesco (IVZ) Sharpe Ratio: {invesco_sharpe}")
print(f"Blackstone (BX) Sharpe Ratio: {blackstone_sharpe}")
Invesco (IVZ) Sharpe Ratio: 0.3514735096330114
Blackstone (BX) Sharpe Ratio: 0.5203485824381774
The Sharpe Ratio gives you an idea of how much return you receive for each unit of risk. A higher ratio indicates a better risk-return tradeoff.
Conclusion
By comparing Invesco and Blackstone, we see how their distinct business models are reflected in their performance and risk levels. While Invesco offers a more diversified and stable investment strategy, Blackstone takes a more active and aggressive approach in private equity. With this performance and risk analysis, we’ve demonstrated how Python can provide useful insights when evaluating investment options.