Новичок в Dash, так что терпите.
У меня есть соединение через websocket, которое передает данные Forex на мою консоль; цена, максимум, минимум, символ и т. д.
Я хотел бы, чтобы эта информация отображалась на панели управления, которую можно было бы легко просмотреть, вместо того, чтобы все печатать на моей консоли.
Проблема, с которой я сталкиваюсь, заключается в том, что данные обновляются только при обновлении страницы, когда я хочу, чтобы они обновлялись по мере получения на панели инструментов.
Это мой код для подключения к веб-сокету и создания панели управления:
import dash
import dash_core_components as dcc
import dash_html_components as html
import plotly
from dash.dependencies import Input, Output, State
import fxcmpy
import pandas as pd
import datetime as dt
import time
con = fxcmpy.fxcmpy(access_token = "1111111111111111111111111111111111111111111111212", log_level = 'error')
currenc = ["AUD/CAD", "AUD/CHF", "AUD/JPY", "AUD/NZD", "AUD/USD", "CAD/CHF", "CAD/JPY", "CHF/JPY", "EUR/AUD", "EUR/CAD", "EUR/CHF", "EUR/GBP", "EUR/JPY", "EUR/NZD", "EUR/TRY", "EUR/USD", "GBP/AUD", "GBP/CAD", "GBP/CHF", "GBP/JPY", "GBP/NZD", "GBP/USD", "NZD/CAD", "NZD/CHF", "NZD/JPY", "NZD/USD", "USD/CAD", "USD/JPY"]
app = dash.Dash(__name__)
def print_data(data, dataframe):
t = pd.to_datetime(int(data['Updated']), unit='ms')
price = data['Rates'][0]
symbol = data['Symbol']
app.layout = html.Div([
dcc.Textarea(
id='textprice',
value=(str(price)),
style={'width': '100%', 'height': 300},
),
dcc.Textarea(
id='textsymbol',
value=(str(symbol)),
style={'width': '100%', 'height': 300},
),
html.Div(id='textarea-example-output', style={'whiteSpace': 'pre-line'})
])
if __name__ == '__main__':
for i in currenc:
con.subscribe_market_data(i, (print_data,))
app.run_server(debug=True)
На панели управления есть два текстовых поля, одно для цены, другое для символа. Я бы хотел, чтобы панель инструментов открывалась и эти значения обновлялись автоматически.
Любая помощь будет оценена по достоинству,