File size: 2,043 Bytes
8127dfc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
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'
        )