Programació amb la llibreria dash

Sistemes automàtics de trading en Forex  »  Programació amb la llibreria dash

La visualització de les estratègies es fa amb la llibreria dash de Python. A continuació explicaré una mica el seu funcionament. L’estructura és la següent:

Tot està en un contenidor amb una única columna. Dins d’aquesta columna posem el títol i les diferents pestanyes (tabs). El contingut de cada pestanya està distribuït en files i columnes. Per exemple, la pestanya “Gràfiques en temps real” que s’observa a la Figura 22 està composada per dues files, i a la vegada cada fila conté dues columnes. Més precisament:

  • La primera fila i primera columna conté el selector de símbol.
  • La primera fila i segona columna conté el selector de finestra temporal.
  • La segona fila i primera columna conté la taula amb el bid/ask de les majors.
  • La segona fila i segona columna conté la gràfica del parell i finestra temporal seleccionats.

L’estructura del codi d’aquesta pestanya té aquesta forma:

Els selectors els creem amb:

dcc.Dropdown(
    id=’selector-symbol’,
    options=[{‘label’:name, ‘value’:name} for name in symbols_all],
    value=’EURUSD’
)Cada component té un identificador, en aquest cas “selector-symbol” això permet després fer callbacks per actualitzar la informació si el valors d’aquests selectors canvien.

Per exemple:

@app.callback(
    [
        Output(‘table-bid-ask’, ‘data’),
        Output(‘table-bid-ask’, ‘columns’),
        Output(‘time’, ‘children’)
    ],
    [Input(‘interval-component-table-bid-ask’, ‘n_intervals’)]
)

Aquí, donat el component “interval-component-table-bid-ask” que és per actualitzar el rellotge i la taula de la primera pestanya cada segon, es defineix una funció que retorna l’hora actual i crea la taula amb les dades de les major a temps real connectant-se a MT5.

Figura 23.Taula de divises principals en temps real (dashboard).

Aquest és el funcionament general d’aquesta llibreria: es creen components (selectors, taules, gràfiques, etc.) i es fan callbacks per actualitzar la informació en cas de ser necessari.