File size: 2,061 Bytes
fbec150
 
 
 
 
90b5942
fbec150
d89e2f7
fbec150
 
 
 
 
 
 
 
 
 
d89e2f7
fbec150
d89e2f7
fbec150
d89e2f7
 
fbec150
 
 
d89e2f7
fbec150
 
 
90b5942
fbec150
d89e2f7
fbec150
 
 
90b5942
fbec150
d89e2f7
fbec150
90b5942
 
2b3e5f4
 
 
 
 
 
 
90b5942
2b3e5f4
90b5942
fbec150
d89e2f7
90b5942
fbec150
 
 
 
 
 
 
90b5942
fbec150
 
d89e2f7
fbec150
 
 
90b5942
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
65
66
67
68
69
70
71
import streamlit as st
import yfinance as yf
import pandas as pd
from datetime import date
from io import BytesIO
import plotly.graph_objects as go

st.set_page_config(page_title='Stock Chart')

# 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("Select a Stock", options=list(stocks.keys()))
sembol_kodu = stocks[sembol]
st.title(f"{sembol} ({sembol_kodu}) Stock Chart")

start_date = st.sidebar.date_input('Start Date', value=date(2023, 1, 1))
end_date = st.sidebar.date_input('End Date', value=date.today())

# Tarih kontrolü
if start_date > end_date:
    st.error('Start date cannot be later than end date.')
else:
    # Veri çekme işlemi
    df = yf.download(sembol_kodu, start=start_date, end=end_date)
    
    if df.empty:
        st.warning('No data found for selected symbol and date range.')
    else:
        # Zaman dilimi bilgisini kaldırma
        df.index = df.index.tz_localize(None)
        
        # Veri çerçevesini gösterme
        st.subheader('Stock Data')
        st.write(df)
        
        

        # Grafikler
        st.subheader("Closing Price Chart")
        st.line_chart(df['Close'])

        st.subheader("Volume Price Chart")
        st.bar_chart(df['Volume'])
        
    
        
        # Excel dosyasını indirme
        st.subheader('Stock Data Excel File')
        
        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='Download as Excel',
            data=excel_data,
            file_name=f'{sembol_kodu}_data.xlsx',
            mime='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
        )