Dmtlant commited on
Commit
b6f64d0
·
verified ·
1 Parent(s): 6a592ed

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +49 -0
app.py ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import ccxt
3
+ import pandas as pd
4
+ import plotly.graph_objects as go
5
+ from datetime import datetime, timedelta
6
+ import time
7
+
8
+ # Инициализация биржи
9
+ exchange = ccxt.binance()
10
+
11
+ def get_realtime_data(symbol='BTC/USDT', timeframe='1m'):
12
+ candles = exchange.fetch_ohlcv(symbol, timeframe)
13
+ df = pd.DataFrame(candles, columns=['timestamp', 'open', 'high', 'low', 'close', 'volume'])
14
+ df['timestamp'] = pd.to_datetime(df['timestamp'], unit='ms')
15
+ return df
16
+
17
+ def update_chart():
18
+ data = get_realtime_data()
19
+ fig = go.Figure(data=[go.Candlestick(x=data['timestamp'],
20
+ open=data['open'],
21
+ high=data['high'],
22
+ low=data['low'],
23
+ close=data['close'])])
24
+ fig.update_layout(title='BTC/USDT Real-Time Candlestick Chart', yaxis_title='Price')
25
+ return fig
26
+
27
+ # Настройка страницы Streamlit
28
+ st.set_page_config(page_title="Crypto Real-Time Chart", page_icon=":chart_with_upwards_trend:")
29
+
30
+ st.title('Crypto Real-Time Candlestick Chart')
31
+
32
+ # Создание пустого места для графика
33
+ chart_placeholder = st.empty()
34
+
35
+ # Флаг для остановки обновления
36
+ running = True
37
+
38
+ while running:
39
+ try:
40
+ chart = update_chart()
41
+ chart_placeholder.plotly_chart(chart)
42
+ time.sleep(60) # Обновляем каждую минуту
43
+ except Exception as e:
44
+ st.error(f"An error occurred: {e}")
45
+ running = False
46
+
47
+ # Если вы хотите добавить кнопку для остановки/запуска обновления, это можно сделать так:
48
+ # if st.button('Stop/Start'):
49
+ # running = not running