RIZAEFE's picture
Update app.py
fbec150 verified
raw
history blame
2.07 kB
import streamlit as st
import yfinance as yf
import pandas as pd
from datetime import date
from io import BytesIO
st.set_page_config(page_title='Hisse Senedi Grafiği')
# Hisse senetleri listesi
stocks = {
'Tesla': 'TSLA',
'Apple': 'AAPL',
'Nvidia': 'NVDA',
'Microsoft': 'MSFT'
}
# Kullanıcının hisse senedi seçmesi için selectbox
sembol = st.sidebar.selectbox("Hisse Senedi Seçiniz", options=list(stocks.keys()))
sembol_kodu = stocks[sembol]
st.title(f"{sembol} ({sembol_kodu}) Hisse Senedi Grafiği")
start_date = st.sidebar.date_input('Başlangıç Tarihi', value=date(2023, 1, 1))
end_date = st.sidebar.date_input('Bitiş Tarihi', value=date.today())
# Tarih kontrolü
if start_date > end_date:
st.error('Başlangıç tarihi bitiş tarihinden sonra olamaz.')
else:
# Veri çekme işlemi
df = yf.download(sembol_kodu, start=start_date, end=end_date)
if df.empty:
st.warning('Seçilen sembol ve tarih aralığı için veri bulunamadı.')
else:
# Zaman dilimi bilgisini kaldırma
df.index = df.index.tz_localize(None)
# Veri çerçevesini gösterme
st.subheader('Hisse Senedi Verileri')
st.write(df)
# Grafik çizme
st.subheader('Kapanış Fiyatı Grafiği')
st.line_chart(df['Close'])
st.subheader('Kapanış Fiyatı Grafiği')
st.line_chart(df['Open'])
# Excel dosyasını indirme
st.subheader('Hisse Senedi Verileri Excel Dosyası')
def to_excel(df):
output = BytesIO()
writer = pd.ExcelWriter(output, engine='xlsxwriter')
df.to_excel(writer, index=True, sheet_name='Sheet1')
writer.close()
processed_data = output.getvalue()
return processed_data
excel_data = to_excel(df)
st.download_button(
label='Excel olarak indir',
data=excel_data,
file_name=f'{sembol_kodu}_data.xlsx',
mime='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
)