drmurataltun's picture
Upload app.py
8127dfc verified
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'])
# 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'
)