A guide by Yasir Malik, Valeriia Darkhanova, Susan Fan and Wes Sapone
- We obtained the StreetEasyPrice Index using the Sales Data in Manhattan, Brooklyn, Queens and NYC, All Home Type
- We obtained past 2 years data for United States from ZillowStatic
Set Paths and Read CSVs
iyr_data = Path("resources/IYR.csv")
iyr_df = pd.read_csv(iyr_data, index_col="Date", parse_dates=True, infer_datetime_format=True)
Combine Dataframes
combined_df = pd.concat([iyr_df, dia_df, vno_df, sp500_df], axis="columns", join="inner")
combined_df.sort_index()
combined_df.columns = ["IYR", "DIA", "VNO", "S&P 500"]
#Calculate daily returns of closing prices
daily_returns = combined_df.pct_change().dropna()
# Calculate covariance of all daily returns
iyr_covariance_mkt = daily_returns['IYR'].cov(daily_returns['S&P 500'])
# Calculate variance of all daily returns
mkt_variance = daily_returns['S&P 500'].var()
# Calculate beta of all daily returns versus the S&P 500 ("The Market")
iyr_beta_mkt = iyr_covariance_mkt / mkt_variance
dia_beta_mkt = dia_covariance_mkt / mkt_variance
vno_beta_mkt = vno_covariance_mkt / mkt_variance
print(f"IYR: {iyr_beta_mkt} | DIA: {dia_beta_mkt} | VNO: {vno_beta_mkt}")
Run 100 simulations in 5 years
from MCForecastTools import MCSimulation
MC_fiveyear = MCSimulation(
portfolio_data = df_ticker,
weights = [.25,.25,.25,.25],
num_simulation = 100,
num_trading_days = 252*5
)
line_plot = MC_fiveyear.plot_simulation()
line_plot.get_figure().savefig("MC_fiveyear_sim_plot.png", bbox_inches="tight")