markowitz / app.py
GarGerry's picture
Update app.py
c896c7a verified
raw
history blame
1.14 kB
import streamlit as st
import yfinance as yf
import pandas as pd
import matplotlib.pyplot as plt
# Fungsi untuk mengunduh data saham
def get_stock_data(tickers, start, end):
data = yf.download(tickers, start=start, end=end)
if data.empty:
st.error("Data saham tidak ditemukan. Periksa ticker atau tanggal.")
return None
elif 'Adj Close' in data.columns:
return data['Adj Close']
elif 'Close' in data.columns:
return data['Close']
else:
st.error("Kolom 'Adj Close' atau 'Close' tidak ditemukan.")
return None
# Streamlit UI
st.title("Analisis Portofolio Saham")
tickers_list = st.text_input("Masukkan ticker saham (contoh: BBCA.JK, TLKM.JK)", "BBCA.JK, TLKM.JK").split(",")
start_date = st.date_input("Pilih tanggal mulai", pd.to_datetime("2020-01-01"))
end_date = st.date_input("Pilih tanggal akhir", pd.to_datetime("2020-12-31"))
if st.button("Dapatkan Data"):
data = get_stock_data(tickers_list, start_date, end_date)
if data is not None:
st.write("Data Saham:")
st.write(data.tail())
# Plot harga saham
st.line_chart(data)