Spaces:
Sleeping
Sleeping
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'
) |