RIZAEFE commited on
Commit
fbec150
·
verified ·
1 Parent(s): e31848a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +66 -40
app.py CHANGED
@@ -1,40 +1,66 @@
1
- import streamlit as st
2
- import yfinance as yf
3
- import pandas as pd
4
- from datetime import date
5
- from io import BytesIO
6
-
7
-
8
- sembol = st.sidebar.text_input("Hisse Senedi", value='ASELS.IS')
9
- st.title(sembol + ' Hisse Senedi Grafiği')
10
-
11
- start_date = st.sidebar.date_input('Başlangıç Tarihi', value=date(2023, 1, 1))
12
- end_date = st.sidebar.date_input('Bitiş Tarihi', value=date.today())
13
-
14
- df = yf.download(sembol, start=start_date, end=end_date)
15
-
16
- # Zaman dilimi bilgisini kaldırıyoruz
17
- df.index = df.index.tz_localize(None)
18
-
19
- st.line_chart(df['Close'])
20
-
21
- st.subheader('Hisse Senedi Verileri')
22
- st.write(df)
23
-
24
- st.subheader('Hisse Senedi Verileri Excel Dosyası')
25
-
26
- def to_excel(df):
27
- output = BytesIO()
28
- writer = pd.ExcelWriter(output, engine='xlsxwriter')
29
- df.to_excel(writer, index=True, sheet_name='Sheet1')
30
- writer.close()
31
- processed_data = output.getvalue()
32
- return processed_data
33
-
34
- excel_data = to_excel(df)
35
- st.download_button(
36
- label='Excel olarak indir',
37
- data=excel_data,
38
- file_name=f'{sembol}_data.xlsx',
39
- mime='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
40
- )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import yfinance as yf
3
+ import pandas as pd
4
+ from datetime import date
5
+ from io import BytesIO
6
+
7
+ st.set_page_config(page_title='Hisse Senedi Grafiği')
8
+
9
+ # Hisse senetleri listesi
10
+ stocks = {
11
+ 'Tesla': 'TSLA',
12
+ 'Apple': 'AAPL',
13
+ 'Nvidia': 'NVDA',
14
+ 'Microsoft': 'MSFT'
15
+ }
16
+
17
+ # Kullanıcının hisse senedi seçmesi için selectbox
18
+ sembol = st.sidebar.selectbox("Hisse Senedi Seçiniz", options=list(stocks.keys()))
19
+ sembol_kodu = stocks[sembol]
20
+ st.title(f"{sembol} ({sembol_kodu}) Hisse Senedi Grafiği")
21
+
22
+ start_date = st.sidebar.date_input('Başlangıç Tarihi', value=date(2023, 1, 1))
23
+ end_date = st.sidebar.date_input('Bitiş Tarihi', value=date.today())
24
+
25
+ # Tarih kontrolü
26
+ if start_date > end_date:
27
+ st.error('Başlangıç tarihi bitiş tarihinden sonra olamaz.')
28
+ else:
29
+ # Veri çekme işlemi
30
+ df = yf.download(sembol_kodu, start=start_date, end=end_date)
31
+
32
+ if df.empty:
33
+ st.warning('Seçilen sembol ve tarih aralığı için veri bulunamadı.')
34
+ else:
35
+ # Zaman dilimi bilgisini kaldırma
36
+ df.index = df.index.tz_localize(None)
37
+
38
+ # Veri çerçevesini gösterme
39
+ st.subheader('Hisse Senedi Verileri')
40
+ st.write(df)
41
+
42
+ # Grafik çizme
43
+ st.subheader('Kapanış Fiyatı Grafiği')
44
+ st.line_chart(df['Close'])
45
+
46
+ st.subheader('Kapanış Fiyatı Grafiği')
47
+ st.line_chart(df['Open'])
48
+
49
+ # Excel dosyasını indirme
50
+ st.subheader('Hisse Senedi Verileri Excel Dosyası')
51
+
52
+ def to_excel(df):
53
+ output = BytesIO()
54
+ writer = pd.ExcelWriter(output, engine='xlsxwriter')
55
+ df.to_excel(writer, index=True, sheet_name='Sheet1')
56
+ writer.close()
57
+ processed_data = output.getvalue()
58
+ return processed_data
59
+
60
+ excel_data = to_excel(df)
61
+ st.download_button(
62
+ label='Excel olarak indir',
63
+ data=excel_data,
64
+ file_name=f'{sembol_kodu}_data.xlsx',
65
+ mime='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
66
+ )