codelion commited on
Commit
e44a316
Β·
verified Β·
1 Parent(s): 785660b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +4 -5
app.py CHANGED
@@ -4,7 +4,6 @@ import numpy as np
4
  import pandas as pd
5
  from scipy.optimize import minimize
6
 
7
- # Define stock tickers (25 from S&P 500)
8
  TICKERS = [
9
  'AAPL', 'MSFT', 'NVDA', 'AVGO', 'ADBE',
10
  'AMZN', 'TSLA', 'HD',
@@ -21,8 +20,8 @@ TICKERS = [
21
  def optimize_portfolio(years, target_return):
22
  try:
23
  data = yf.download(TICKERS, period=f"{years}y", interval="1mo")
24
- if "Adj Close" not in data:
25
- return pd.DataFrame(), "Error: 'Adj Close' column missing.", "", ""
26
 
27
  prices = data['Adj Close']
28
  returns = prices.pct_change().dropna()
@@ -51,7 +50,7 @@ def optimize_portfolio(years, target_return):
51
  )
52
 
53
  if not result.success:
54
- return pd.DataFrame(), "Optimization failed. Try adjusting inputs.", "", ""
55
 
56
  weights = result.x
57
  port_return = weights @ mean_returns
@@ -71,7 +70,7 @@ def optimize_portfolio(years, target_return):
71
 
72
  with gr.Blocks() as demo:
73
  gr.Markdown("# πŸ“ˆ Modern Portfolio Optimizer (MPT)")
74
- gr.Markdown("Optimize a portfolio of 25 S&P 500 stocks for **minimum risk** and a **5% annual return target**.")
75
 
76
  with gr.Row():
77
  years_slider = gr.Slider(1, 10, value=5, step=1, label="Years of Historical Data")
 
4
  import pandas as pd
5
  from scipy.optimize import minimize
6
 
 
7
  TICKERS = [
8
  'AAPL', 'MSFT', 'NVDA', 'AVGO', 'ADBE',
9
  'AMZN', 'TSLA', 'HD',
 
20
  def optimize_portfolio(years, target_return):
21
  try:
22
  data = yf.download(TICKERS, period=f"{years}y", interval="1mo")
23
+ if "Adj Close" not in data.columns:
24
+ return pd.DataFrame(), "Error: 'Adj Close' column missing.", "", "", ""
25
 
26
  prices = data['Adj Close']
27
  returns = prices.pct_change().dropna()
 
50
  )
51
 
52
  if not result.success:
53
+ return pd.DataFrame(), "Optimization failed. Try adjusting inputs.", "", "", ""
54
 
55
  weights = result.x
56
  port_return = weights @ mean_returns
 
70
 
71
  with gr.Blocks() as demo:
72
  gr.Markdown("# πŸ“ˆ Modern Portfolio Optimizer (MPT)")
73
+ gr.Markdown("Optimize a portfolio of 25 S&P 500 stocks for **minimum risk** with a target return.")
74
 
75
  with gr.Row():
76
  years_slider = gr.Slider(1, 10, value=5, step=1, label="Years of Historical Data")