Chart and Indicators

A common use case that has been identified is to join indicators with other charts, as they are small components that can easily add insight, so we have facilitated this with the chart and indicators.

This template joins a chart with a description and a button that opens a modal.

The Method To Use

The method is s.plt.chart_and_indicators()

It must contain the following input variables:

menu_path: str 
order: int
# This are the parameters that the chart function will take when executed
chart_parameters: Dict
# List of groups of indicators, each one of them will be used as the input
# of an indicators function call
indicators_groups: List[Union[pd.DataFrame, List[Dict]]]
# The parameters that will be passed to the indicators calls
indicators_parameters: Dict

And accepts the following input variables as optional:

chart_rows_size: int = 3
cols_size: int = 12
# This is the funcion that will be executed passing the previous parameters,
# by default it will use a free_echarts bar chart
chart_function: Optional[Callable] = None
tabs_index: Optional[Tuple[str, str]] = None 
modal_name: Optional[str] = None

Because it is using multiple indicators the function will return the next available order.

Examples

This example shows how to use the method:

data = [
    {'date': dt.date(2021, 1, 1), 'x': 5, 'y': 5},
    {'date': dt.date(2021, 1, 2), 'x': 6, 'y': 5},
    {'date': dt.date(2021, 1, 3), 'x': 4, 'y': 5},
    {'date': dt.date(2021, 1, 4), 'x': 7, 'y': 5},
    {'date': dt.date(2021, 1, 5), 'x': 3, 'y': 5},
]

indicator_groups = [
    [
        {
            "description": "-950.55",
            "title": "Dow Jones",
            "value": "33,195.92",
            "align": "left",
            "color": "success",
            'variant': 'contained'
        },
        {
            "description": "-84.68",
            "title": "Nasdaq",
            "value": "10,852.16",
            "align": "left",
            "color": "success",
            'variant': 'contained'
        },
        {
            "description": "-950.55",
            "title": "Dow Jones",
            "value": "33,195.92",
            "align": "left",
            "color": "success",
            'variant': 'contained'
        },
        {
            "description": "-84.68",
            "title": "Nasdaq",
            "value": "10,852.16",
            "align": "left",
            "color": "success",
            'variant': 'contained'
        },
        {
            "description": "-950.55",
            "title": "Dow Jones",
            "value": "33,195.92",
            "align": "left",
            "color": "success",
            'variant': 'contained'
        },
    ],
    [
        {
            "description": "-950.55",
            "title": "Dow Jones",
            "value": "33,195.92",
            "align": "left",
            "color": "success",
            'variant': 'contained'
        },
        {
            "description": "-84.68",
            "title": "Nasdaq",
            "value": "10,852.16",
            "align": "left",
            "color": "success",
            'variant': 'contained'
        }
    ],
    [
        {
            "description": "Return of investment",
            "title": "ROI",
            "value": "1.5M",
            "align": "left",
            "color": "success",
            'variant': 'contained'
        },
        {
            "description": "% of times the algorithm has predicted the relative position of "
                      "NY prices with respect to HK prices correctly",
            "title": "Accuracy",
            "value": "76.67%",
            "align": "left",
            "color": "success",
            'variant': 'contained'
        }
    ],
    [
        {
            "description": "Return of investment",
            "title": "ROI",
            "value": "1.5M",
            "align": "left",
            "color": "success",
            'variant': 'contained'
        },
        {
            "description": "% of times the algorithm has predicted the relative position of "
                      "NY prices with respect to HK prices correctly",
            "title": "Accuracy",
            "value": "76.67%",
            "align": "left",
            "color": "success",
            'variant': 'contained'
        },
        {
            "description": "% of times the algorithm has predicted the relative position of "
                      "NY prices with respect to HK prices correctly",
            "title": "Accuracy",
            "value": "76.67%",
            "align": "left",
            "color": "success",
            'variant': 'contained'
        }
    ]
]

s.plt.chart_and_indicators(
    order=0, chart_rows_size=3, cols_size=6,
    chart_function=s.plt.line,
    chart_parameters=dict(
        data=data,
        x='date',
        y='x',
        title='Line Chart With Indicators',
    ),
    indicators_groups=indicator_groups,
)

Last updated