Solar-Iz commited on
Commit
53f2004
·
verified ·
1 Parent(s): 40e9999

Upload 113 files

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +1 -0
  2. app.py +135 -0
  3. downloaded_logos/ Bristol-Myers Squibb.png +0 -0
  4. downloaded_logos/.DS_Store +0 -0
  5. downloaded_logos/AAPL.png +0 -0
  6. downloaded_logos/AMD.png +0 -0
  7. downloaded_logos/AMGN.png +0 -0
  8. downloaded_logos/ASML.png +0 -0
  9. downloaded_logos/AXP.png +0 -0
  10. downloaded_logos/AbbVie.png +0 -0
  11. downloaded_logos/Abbott Laboratories.png +0 -0
  12. downloaded_logos/Accenture.png +0 -0
  13. downloaded_logos/Adobe.png +0 -0
  14. downloaded_logos/Agricultural Bank of China.png +0 -0
  15. downloaded_logos/Alibaba.png +0 -0
  16. downloaded_logos/Alphabet (Google).png +0 -0
  17. downloaded_logos/Amazon.png +0 -0
  18. downloaded_logos/Applied Materials.png +0 -0
  19. downloaded_logos/AstraZeneca.png +0 -0
  20. downloaded_logos/BA.png +0 -0
  21. downloaded_logos/BHP Group.png +0 -0
  22. downloaded_logos/Bank of America.png +0 -0
  23. downloaded_logos/Bank of China.png +0 -0
  24. downloaded_logos/CAT.png +0 -0
  25. downloaded_logos/CRM.png +0 -0
  26. downloaded_logos/CSCO.png +0 -0
  27. downloaded_logos/CVX.png +0 -0
  28. downloaded_logos/China Construction Bank.png +0 -0
  29. downloaded_logos/China Life Insurance.png +0 -0
  30. downloaded_logos/Comcast.png +0 -0
  31. downloaded_logos/ConocoPhillips.png +0 -0
  32. downloaded_logos/DOW.png +0 -0
  33. downloaded_logos/Danaher.png +0 -0
  34. downloaded_logos/Dior.png +0 -0
  35. downloaded_logos/Eli Lilly.png +0 -0
  36. downloaded_logos/Exxon Mobil.png +0 -0
  37. downloaded_logos/GOOGL.png +0 -0
  38. downloaded_logos/GS.png +0 -0
  39. downloaded_logos/HD.png +0 -0
  40. downloaded_logos/HDFC Bank.png +0 -0
  41. downloaded_logos/HON.png +0 -0
  42. downloaded_logos/HSBC.png +0 -0
  43. downloaded_logos/Herme/314/200s.png +0 -0
  44. downloaded_logos/IBM.png +0 -0
  45. downloaded_logos/ICBC.png +0 -0
  46. downloaded_logos/INTC.png +0 -0
  47. downloaded_logos/International Holding Company .png +0 -0
  48. downloaded_logos/Intuit.png +0 -0
  49. downloaded_logos/JNJ.png +0 -0
  50. downloaded_logos/JPM.png +0 -0
.gitattributes CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ images/img.png filter=lfs diff=lfs merge=lfs -text
app.py ADDED
@@ -0,0 +1,135 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import pandas as pd
3
+ import yfinance as yf
4
+ import base64
5
+ import io
6
+ import os
7
+ from datetime import datetime, timedelta
8
+ from PIL import Image
9
+ from plotly import graph_objs as go
10
+ from datetime import date
11
+
12
+ st.set_page_config(layout='wide', initial_sidebar_state='expanded')
13
+ st.set_option('deprecation.showPyplotGlobalUse', False)
14
+ st.title('ML Wall Street')
15
+ st.image('images/img.png')
16
+
17
+ # @st.cache_data
18
+ # Функция для получения данных о ценах акций
19
+ def get_stock_data():
20
+ dow_tickers = ['UNH', 'MSFT', 'GS', 'HD', 'AMGN', 'MCD', 'CAT', 'CRM', 'V', 'BA', 'HON', 'TRV', 'AAPL', 'AXP', 'JPM', 'IBM', 'JNJ', 'WMT', 'PG', 'CVX', 'MRK', 'MMM', 'NKE', 'DIS', 'KO', 'DOW', 'CSCO', 'INTC', 'VZ', 'WBA']
21
+ start_date = (datetime.now() - timedelta(days=365)).strftime('%Y-%m-%d')
22
+ end_date = datetime.now().strftime('%Y-%m-%d')
23
+ dow_data = yf.download(dow_tickers, start=start_date, end=end_date)
24
+ return dow_data
25
+
26
+ data = get_stock_data()
27
+ latest_date = data.index[-1].strftime('%Y-%m-%d')
28
+ data = data.loc[latest_date, 'Close'].reset_index()
29
+ data.columns = ['Ticker', 'Close']
30
+ data['Close'] = data['Close'].round(2)
31
+
32
+ # Добавляем кнопку обновления данных
33
+ # if st.button("Обновить данные", type="primary"):
34
+ # data = get_stock_data()
35
+ # latest_date = data.index[-1].strftime('%Y-%m-%d')
36
+ # data = data.loc[latest_date, 'Close'].reset_index()
37
+ # data.columns = ['Ticker', 'Close']
38
+ # data['Close'] = data['Close'].round(2)
39
+ # st.success("Данные успешно обновлены!")
40
+
41
+ st.markdown(f"<h3 style='text-align: center;'>Цены актуальны на последнюю дату закрытия торгов {latest_date}</h3>", unsafe_allow_html=True)
42
+
43
+ col3, col1, col2 = st.columns([0.2, 5.3, 1.8])
44
+ with col2:
45
+ def image_to_base64(img_path, output_size=(64, 64)):
46
+ if os.path.exists(img_path):
47
+ with Image.open(img_path) as img:
48
+ img = img.resize(output_size)
49
+ buffered = io.BytesIO()
50
+ img.save(buffered, format="PNG")
51
+ return f"data:image/png;base64,{base64.b64encode(buffered.getvalue()).decode()}"
52
+ return ""
53
+
54
+ if 'Logo' not in data.columns:
55
+ output_dir = 'downloaded_logos'
56
+ data['Logo'] = data['Ticker'].apply(lambda name: os.path.join(output_dir, f'{name}.png'))
57
+
58
+ # Convert image paths to Base64
59
+ data["Logo"] = data["Logo"].apply(image_to_base64)
60
+ image_column = st.column_config.ImageColumn(label="")
61
+ ticker_column = st.column_config.TextColumn(label="Ticker 💬", help="📍**Тикеры компаний Индекса Dow Jones**")
62
+ price_column = st.column_config.TextColumn(label=f"Close 💬", help="📍**Цена за последний день (в USD)**")
63
+
64
+ data.reset_index(drop=True, inplace=True)
65
+ data.index = data.index + 1
66
+
67
+ data = data[['Logo', 'Ticker', 'Close']]
68
+ st.write('')
69
+ st.write('')
70
+ st.markdown('**Компании Индекса Dow Jones**')
71
+ st.dataframe(data, height=1088, column_config={"Logo": image_column, "Ticker":ticker_column, 'Close':price_column})
72
+
73
+ with col1:
74
+ START = "1920-01-01"
75
+ TODAY = date.today().strftime("%Y-%m-%d")
76
+ # @st.cache_data
77
+ def load_data(ticker):
78
+ data = yf.download(ticker, START, TODAY)
79
+ data.reset_index(inplace=True)
80
+ return data
81
+
82
+ def plot_raw_data(data, text):
83
+ fig = go.Figure()
84
+ fig.add_trace(go.Scatter(x=data['Date'], y=data['Close'], name="Цена закрытия"))
85
+ fig.update_layout(title_text=text, xaxis_rangeslider_visible=True)
86
+ fig.update_traces(showlegend=True)
87
+ st.plotly_chart(fig)
88
+
89
+ data = load_data('^DJI')
90
+ last_DJI = data['Close'].iloc[-1]
91
+ diff_DJI = data['Close'].iloc[-1] - data['Close'].iloc[-2]
92
+ pr_DJI = 100 * diff_DJI / last_DJI
93
+ text_DJI = f'🇺🇸 Dow Jones Industrial Average (^DJI) \
94
+ <span style="font-size: 1.5em;">{last_DJI:.2f}</span> <span style="font-size: 1em; color: crimson;">{diff_DJI:.2f}</span><span style="font-size: 1em; color: crimson;">({pr_DJI:.2f}%)</span>' \
95
+ '<br><span style="font-size: 0.7em; color: grey;">DJI - DJI Real Time Price. Currency in USD</span>'
96
+ plot_raw_data(data, text_DJI)
97
+ check1 = st.checkbox("Исторические данные Dow Jones Industrial Average")
98
+ if check1:
99
+ st.write(data)
100
+
101
+ data_500 = load_data('^GSPC')
102
+ last_500 = data_500['Close'].iloc[-1]
103
+ diff_500 = data_500['Close'].iloc[-1] - data_500['Close'].iloc[-2]
104
+ pr_500 = 100 * diff_500 / last_500
105
+ text_500 = f'🇺🇸 S&P 500 (^GSPC) \
106
+ <span style="font-size: 1.5em;">{last_500:.2f}</span> <span style="font-size: 1em; color: crimson;">{diff_500:.2f}</span><span style="font-size: 1em; color: crimson;">({pr_500:.2f}%)</span>' \
107
+ '<br><span style="font-size: 0.7em; color: grey;">SNP - SNP Real Time Price. Currency in USD</span>'
108
+ plot_raw_data(data_500, text_500)
109
+ check4 = st.checkbox("S&P 500")
110
+ if check4:
111
+ st.write(data_500)
112
+
113
+ data_SSE = load_data('000001.SS')
114
+ last_SSE = data_SSE['Close'].iloc[-1]
115
+ diff_SSE = data_SSE['Close'].iloc[-1] - data_SSE['Close'].iloc[-2]
116
+ pr_SSE = 100 * diff_SSE / last_SSE
117
+ text_SSE = f'🇨🇳 SSE Composite Index (000001.SS) \
118
+ <span style="font-size: 1.5em;">{last_SSE:.2f}</span> <span style="font-size: 1em; color: crimson;">{diff_SSE:.2f}</span><span style="font-size: 1em; color: crimson;">({pr_SSE:.2f}%)</span>' \
119
+ '<br><span style="font-size: 0.7em; color: grey;">Shanghai - Shanghai Delayed Price. Currency in CNY</span>'
120
+ plot_raw_data(data_SSE, text_SSE)
121
+ check2 = st.checkbox("Исторические данные SSE Composite Index")
122
+ if check2:
123
+ st.write(data_SSE)
124
+
125
+ data_IMOEX = load_data('IMOEX.ME')
126
+ last_IMOEX = data_IMOEX['Close'].iloc[-1]
127
+ diff_IMOEX = data_IMOEX['Close'].iloc[-1] - data_IMOEX['Close'].iloc[-2]
128
+ pr_IMOEX = 100 * diff_IMOEX / last_IMOEX
129
+ text_IMOEX= f'🇷🇺 MOEX Russia Index (IMOEX.ME) \
130
+ <span style="font-size: 1.5em;">{last_IMOEX:.2f}</span> <span style="font-size: 1em; color: crimson;">{diff_IMOEX:.2f}</span><span style="font-size: 1em; color: crimson;">({pr_IMOEX:.2f}%)</span>' \
131
+ '<br><span style="font-size: 0.7em; color: grey;">MCX - MCX Real Time Price. Currency in RUB</span>'
132
+ plot_raw_data(data_IMOEX, text_IMOEX)
133
+ check3 = st.checkbox("Исторические данные MOEX Russia Index")
134
+ if check3:
135
+ st.write(data_IMOEX)
downloaded_logos/ Bristol-Myers Squibb.png ADDED
downloaded_logos/.DS_Store ADDED
Binary file (6.15 kB). View file
 
downloaded_logos/AAPL.png ADDED
downloaded_logos/AMD.png ADDED
downloaded_logos/AMGN.png ADDED
downloaded_logos/ASML.png ADDED
downloaded_logos/AXP.png ADDED
downloaded_logos/AbbVie.png ADDED
downloaded_logos/Abbott Laboratories.png ADDED
downloaded_logos/Accenture.png ADDED
downloaded_logos/Adobe.png ADDED
downloaded_logos/Agricultural Bank of China.png ADDED
downloaded_logos/Alibaba.png ADDED
downloaded_logos/Alphabet (Google).png ADDED
downloaded_logos/Amazon.png ADDED
downloaded_logos/Applied Materials.png ADDED
downloaded_logos/AstraZeneca.png ADDED
downloaded_logos/BA.png ADDED
downloaded_logos/BHP Group.png ADDED
downloaded_logos/Bank of America.png ADDED
downloaded_logos/Bank of China.png ADDED
downloaded_logos/CAT.png ADDED
downloaded_logos/CRM.png ADDED
downloaded_logos/CSCO.png ADDED
downloaded_logos/CVX.png ADDED
downloaded_logos/China Construction Bank.png ADDED
downloaded_logos/China Life Insurance.png ADDED
downloaded_logos/Comcast.png ADDED
downloaded_logos/ConocoPhillips.png ADDED
downloaded_logos/DOW.png ADDED
downloaded_logos/Danaher.png ADDED
downloaded_logos/Dior.png ADDED
downloaded_logos/Eli Lilly.png ADDED
downloaded_logos/Exxon Mobil.png ADDED
downloaded_logos/GOOGL.png ADDED
downloaded_logos/GS.png ADDED
downloaded_logos/HD.png ADDED
downloaded_logos/HDFC Bank.png ADDED
downloaded_logos/HON.png ADDED
downloaded_logos/HSBC.png ADDED
downloaded_logos/Herme/314/200s.png ADDED
downloaded_logos/IBM.png ADDED
downloaded_logos/ICBC.png ADDED
downloaded_logos/INTC.png ADDED
downloaded_logos/International Holding Company .png ADDED
downloaded_logos/Intuit.png ADDED
downloaded_logos/JNJ.png ADDED
downloaded_logos/JPM.png ADDED