das-plotly подключение данных напрямую

Всем привет) немного играясь с даш, я наткнулся на такую вещь. Из вопроса ранее (https://ru.stackoverflow.com/questions/1293151/dashplotly-обновление-графика-в-режиме-реального-времени) вытекает одна проблема : обновляемых данных настолько много в базе, что даш начинает тупить... Решил подключить данные напрямую, однако из получаемого кортежа информация не обновляется (объекты не обновляются). Хотя через обычный принт данные выходят. Немогу понять что я не так сделал..

Вот код :

import dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output
import plotly.graph_objs as go
from datetime import datetime
import MetaTrader5 as mt5

mt5.initialize()
app = dash.Dash(__name__)


points = 0
def test():
    global points
    points += 1

def get_value(n_intervals):
    tick = mt5.symbol_info_tick('EURUSD')

    return tick


def serve_layout():
    return html.Div(
        children=[
            html.H4(children='Доска'),
            html.Div(id='my-id', children='''EURUSD'''),
            dcc.Graph(id='example-graph', animate=True, responsive=True),
            dcc.Interval(
                id='interval-component',
                interval=3 * 1000,
                n_intervals=0,
            ),
        ],
    )

app.layout = serve_layout

@app.callback(
    Output('example-graph','figure'),
    [Input('interval-component', 'n_intervals')])
def update_graph(n_intervals):
    tick = get_value(n_intervals)
    test()
    return  \
        {
            'data': [
                {'x': tick.time_msc, 'y': tick.bid, 'type': 'line', 'name': 'BID'},
                {'x': tick.time_msc, 'y': tick.ask, 'type': 'line', 'name': 'ASK'},
            ],
            'layout': go.Layout(xaxis=tuple(range=[min(tick.time_msc),max(tick.time_msc)]),yaxis=dict(range=[min(tick.bid),max(tick.bid)]),)
        }

if __name__ == '__main__':
    app.run_server(debug=True)

Может кто подскажет где ошибка или какое-то другое решение ) Всем замечательного и продуктивного лета)


Ответы (0 шт):