netflypsb commited on
Commit
39f1ef2
·
verified ·
1 Parent(s): 8ee2f06

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +8 -4
app.py CHANGED
@@ -5,7 +5,7 @@ import pandas_ta as ta
5
  import matplotlib.pyplot as plt
6
 
7
  # Caching the stock data fetch function to improve performance
8
- @st.cache_data
9
  def fetch_stock_data(ticker, period, interval):
10
  return yf.download(ticker, period=period, interval=interval)
11
 
@@ -33,13 +33,17 @@ if analyze_button:
33
  stock_data['MACD'] = macd['MACD_12_26_9']
34
  stock_data['MACDSignal'] = macd['MACDs_12_26_9']
35
 
36
- # Identifying SMA crossover points as breakout signals
37
- crossover_points = stock_data[(stock_data['SMA50'] > stock_data['SMA200']) & (stock_data['SMA50'].shift(1) < stock_data['SMA200'].shift(1))]
 
 
 
 
38
 
39
  # Plotting
40
  fig, ax = plt.subplots(2, 1, figsize=(10, 12), sharex=True)
41
 
42
- # Price and SMAs
43
  ax[0].plot(stock_data['Close'], label='Close Price', color='skyblue')
44
  ax[0].plot(stock_data['SMA50'], label='50-Day SMA', color='green')
45
  ax[0].plot(stock_data['SMA200'], label='200-Day SMA', color='red')
 
5
  import matplotlib.pyplot as plt
6
 
7
  # Caching the stock data fetch function to improve performance
8
+ @st.cache
9
  def fetch_stock_data(ticker, period, interval):
10
  return yf.download(ticker, period=period, interval=interval)
11
 
 
33
  stock_data['MACD'] = macd['MACD_12_26_9']
34
  stock_data['MACDSignal'] = macd['MACDs_12_26_9']
35
 
36
+ # Adjusting the section that identifies crossover points to handle NaN values.
37
+ if not stock_data[['SMA50', 'SMA200']].isna().all(axis=None): # Check if not all values are NaN
38
+ valid_data = stock_data.dropna(subset=['SMA50', 'SMA200'])
39
+ crossover_points = valid_data[(valid_data['SMA50'] > valid_data['SMA200']) & (valid_data['SMA50'].shift(1) < valid_data['SMA200'].shift(1))]
40
+ else:
41
+ crossover_points = pd.DataFrame() # Empty DataFrame if all SMA50 or SMA200 values are NaN
42
 
43
  # Plotting
44
  fig, ax = plt.subplots(2, 1, figsize=(10, 12), sharex=True)
45
 
46
+ # Price, SMAs, and breakout points
47
  ax[0].plot(stock_data['Close'], label='Close Price', color='skyblue')
48
  ax[0].plot(stock_data['SMA50'], label='50-Day SMA', color='green')
49
  ax[0].plot(stock_data['SMA200'], label='200-Day SMA', color='red')