Create an app for stock analysis with mock data. Generate mock daily price data for 5 tech stocks over the past year with standard fields (Open, Close, etc). Features: - Stock selector dropdown - Price trend charts - Basic stats (mean, volatility) - Moving averages - Volume analysis - Stock comparison Interactive elements: - Date range picker - Technical indicators - Chart type toggle Focus on clean visualization of realistic mock data.
To upload files, please first save the app
import pandas as pd
import numpy as np
def calculate_moving_averages(data, period):
"""
Calculate simple moving average
"""
return data['Close'].rolling(window=period).mean()
def calculate_volatility(prices, period=30):
"""
Calculate historical volatility (annualized)
"""
returns = prices.pct_change().dropna()
volatility = returns.tail(period).std() * np.sqrt(252) * 100 # Annualized
return volatility
def calculate_rsi(prices, period=14):
"""
Calculate Relative Strength Index
"""
delta = prices.diff()
gain = (delta.where(delta > 0, 0)).rolling(window=period).mean()
loss = (-delta.where(delta < 0, 0)).rolling(window=period).mean()
rs = gain / loss
rsi = 100 - (100 / (1 + rs))
return rsi
def calculate_bollinger_bands(prices, period=20, std_dev=2):
"""
Calculate Bollinger Bands
"""
ma = prices.rolling(window=period).mean()
std = prices.rolling(window=period).std()
upper_band = ma + (std * std_dev)
lower_band = ma - (std * std_dev)
return upper_band, ma, lower_band
def calculate_macd(prices, fast=12, slow=26, signal=9):
"""
Calculate MACD (Moving Average Convergence Divergence)
"""
ema_fast = prices.ewm(span=fast).mean()
ema_slow = prices.ewm(span=slow).mean()
macd_line = ema_fast - ema_slow
signal_line = macd_line.ewm(span=signal).mean()
histogram = macd_line - signal_line
return macd_line, signal_line, histogram
def calculate_support_resistance(data, window=20):
"""
Calculate basic support and resistance levels
"""
highs = data['High'].rolling(window=window).max()
lows = data['Low'].rolling(window=window).min()
return highs, lows
Hi! I can help you with any questions about Streamlit and Python. What would you like to know?