Skip to content
New: Star-import, signal unraveling, Python 3.12 support, and more

#
pivotinfo module

Module with PIVOTINFO.

## PIVOTINFO class

    PIVOTINFO(
        wrapper,
        input_list,
        input_mapper,
        in_output_list,
        output_list,
        param_list,
        mapper_list,
        short_name,
        level_names
    )

Indicator that returns various information on pivots identified based on thresholds.

- `conf_pivot`: the type of the latest confirmed pivot (running)
- `conf_idx`: the index of the latest confirmed pivot (running)
- `conf_value`: the high/low value under the latest confirmed pivot (running)
- `last_pivot`: the type of the latest pivot (running)
- `last_idx`: the index of the latest pivot (running)
- `last_value`: the high/low value under the latest pivot (running)
- `pivots`: confirmed pivots stored under their indices (looking ahead - use only for plotting!)
- `modes`: modes between confirmed pivot points (looking ahead - use only for plotting!)

Superclasses

- Analyzable
- AttrResolverMixin
- Cacheable
- Chainable
- Comparable
- Configured
- ExtPandasIndexer
- HasSettings
- IndexingBase
- IndicatorBase
- PandasIndexer
- Pickleable
- PlotsBuilderMixin
- Prettified
- StatsBuilderMixin
- Wrapping
- `vectorbtpro.indicators.custom.pivotinfo.ParamIndexer`

Inherited members

- AttrResolverMixin.deep_getattr()
- AttrResolverMixin.post_resolve_attr()
- AttrResolverMixin.pre_resolve_attr()
- AttrResolverMixin.resolve_attr()
- AttrResolverMixin.resolve_shortcut_attr()
- Cacheable.get_ca_setup()
- Chainable.pipe()
- Configured.copy()
- Configured.equals()
- Configured.get_writeable_attrs()
- Configured.prettify()
- Configured.replace()
- Configured.resolve_merge_kwargs()
- Configured.update_config()
- HasSettings.get_path_setting()
- HasSettings.get_path_settings()
- HasSettings.get_setting()
- HasSettings.get_settings()
- HasSettings.has_path_setting()
- HasSettings.has_path_settings()
- HasSettings.has_setting()
- HasSettings.has_settings()
- HasSettings.reset_settings()
- HasSettings.resolve_setting()
- HasSettings.resolve_settings_paths()
- HasSettings.set_settings()
- IndexingBase.indexing_setter_func()
- IndicatorBase.cls_dir
- IndicatorBase.column_only_select
- IndicatorBase.column_stack()
- IndicatorBase.config
- IndicatorBase.dropna()
- IndicatorBase.group_select
- IndicatorBase.iloc
- IndicatorBase.in_output_names
- IndicatorBase.indexing_func()
- IndicatorBase.indexing_kwargs
- IndicatorBase.input_names
- IndicatorBase.lazy_output_names
- IndicatorBase.level_names
- IndicatorBase.loc
- IndicatorBase.output_flags
- IndicatorBase.output_names
- IndicatorBase.param_names
- IndicatorBase.plots_defaults
- IndicatorBase.range_only_select
- IndicatorBase.rec_state
- IndicatorBase.row_stack()
- IndicatorBase.run_pipeline()
- IndicatorBase.self_aliases
- IndicatorBase.short_name
- IndicatorBase.stats_defaults
- IndicatorBase.to_dict()
- IndicatorBase.to_frame()
- IndicatorBase.unpack()
- IndicatorBase.wrapper
- IndicatorBase.xloc
- PandasIndexer.xs()
- Pickleable.decode_config()
- Pickleable.decode_config_node()
- Pickleable.dumps()
- Pickleable.encode_config()
- Pickleable.encode_config_node()
- Pickleable.file_exists()
- Pickleable.getsize()
- Pickleable.load()
- Pickleable.loads()
- Pickleable.modify_state()
- Pickleable.resolve_file_path()
- Pickleable.save()
- PlotsBuilderMixin.build_subplots_doc()
- PlotsBuilderMixin.override_subplots_doc()
- PlotsBuilderMixin.plots()
- StatsBuilderMixin.build_metrics_doc()
- StatsBuilderMixin.override_metrics_doc()
- StatsBuilderMixin.stats()
- Wrapping.regroup()
- Wrapping.resample()
- Wrapping.resolve_column_stack_kwargs()
- Wrapping.resolve_row_stack_kwargs()
- Wrapping.resolve_self()
- Wrapping.resolve_stack_kwargs()
- Wrapping.select_col()
- Wrapping.select_col_from_obj()
- Wrapping.split()

Subclasses

- `vectorbtpro.indicators.custom.pivotinfo._PIVOTINFO`

### apply_func method

    PIVOTINFO.apply_func(
        high,
        low,
        up_th,
        down_th
    )

2-dim version of `pivot_info_1d_nb`.

### cache_func class variable

### conf_idx property

Output array.

### conf_idx_above method

    PIVOTINFO.conf_idx_above(
        other,
        level_name=None,
        allow_multiple=True,
        **kwargs
    )

Return True for each element where `conf_idx` is above `other`.

See combine_objs().

### conf_idx_below method

    PIVOTINFO.conf_idx_below(
        other,
        level_name=None,
        allow_multiple=True,
        **kwargs
    )

Return True for each element where `conf_idx` is below `other`.

See combine_objs().

### conf_idx_crossed_above method

    PIVOTINFO.conf_idx_crossed_above(
        other,
        level_name=None,
        allow_multiple=True,
        **kwargs
    )

Return True for each element where `conf_idx` is crossed_above `other`.

See combine_objs().

### conf_idx_crossed_below method

    PIVOTINFO.conf_idx_crossed_below(
        other,
        level_name=None,
        allow_multiple=True,
        **kwargs
    )

Return True for each element where `conf_idx` is crossed_below `other`.

See combine_objs().

### conf_idx_equal method

    PIVOTINFO.conf_idx_equal(
        other,
        level_name=None,
        allow_multiple=True,
        **kwargs
    )

Return True for each element where `conf_idx` is equal `other`.

See combine_objs().

### conf_idx_stats method

    PIVOTINFO.conf_idx_stats(
        *args,
        **kwargs
    )

Stats of `conf_idx` as generic.

### conf_pivot property

Output array.

### conf_pivot_readable property

`conf_pivot` in readable format based on the following mapping:

    {
        -1: 'Valley',
        1: 'Peak',
        0: None
    }

### conf_pivot_stats method

    PIVOTINFO.conf_pivot_stats(
        *args,
        **kwargs
    )

Stats of `conf_pivot` based on the following mapping:

    {
        -1: 'Valley',
        1: 'Peak'
    }

### conf_value property

Custom property.

### conf_value_above method

    PIVOTINFO.conf_value_above(
        other,
        level_name=None,
        allow_multiple=True,
        **kwargs
    )

Return True for each element where `conf_value` is above `other`.

See combine_objs().

### conf_value_below method

    PIVOTINFO.conf_value_below(
        other,
        level_name=None,
        allow_multiple=True,
        **kwargs
    )

Return True for each element where `conf_value` is below `other`.

See combine_objs().

### conf_value_crossed_above method

    PIVOTINFO.conf_value_crossed_above(
        other,
        level_name=None,
        allow_multiple=True,
        **kwargs
    )

Return True for each element where `conf_value` is crossed_above `other`.

See combine_objs().

### conf_value_crossed_below method

    PIVOTINFO.conf_value_crossed_below(
        other,
        level_name=None,
        allow_multiple=True,
        **kwargs
    )

Return True for each element where `conf_value` is crossed_below `other`.

See combine_objs().

### conf_value_equal method

    PIVOTINFO.conf_value_equal(
        other,
        level_name=None,
        allow_multiple=True,
        **kwargs
    )

Return True for each element where `conf_value` is equal `other`.

See combine_objs().

### conf_value_stats method

    PIVOTINFO.conf_value_stats(
        *args,
        **kwargs
    )

Stats of `conf_value` as generic.

### custom_func method

    IndicatorFactory.with_apply_func.<locals>.custom_func(
        input_tuple,
        in_output_tuple,
        param_tuple,
        *_args,
        input_shape=None,
        per_column=False,
        split_columns=False,
        skipna=False,
        return_cache=False,
        use_cache=True,
        jitted_loop=False,
        jitted_warmup=False,
        execute_kwargs=None,
        **_kwargs
    )

Custom function that forwards inputs and parameters to `apply_func`.

### down_th_list property

List of `down_th` values.

### high property

Input array.

### high_above method

    PIVOTINFO.high_above(
        other,
        level_name=None,
        allow_multiple=True,
        **kwargs
    )

Return True for each element where `high` is above `other`.

See combine_objs().

### high_below method

    PIVOTINFO.high_below(
        other,
        level_name=None,
        allow_multiple=True,
        **kwargs
    )

Return True for each element where `high` is below `other`.

See combine_objs().

### high_crossed_above method

    PIVOTINFO.high_crossed_above(
        other,
        level_name=None,
        allow_multiple=True,
        **kwargs
    )

Return True for each element where `high` is crossed_above `other`.

See combine_objs().

### high_crossed_below method

    PIVOTINFO.high_crossed_below(
        other,
        level_name=None,
        allow_multiple=True,
        **kwargs
    )

Return True for each element where `high` is crossed_below `other`.

See combine_objs().

### high_equal method

    PIVOTINFO.high_equal(
        other,
        level_name=None,
        allow_multiple=True,
        **kwargs
    )

Return True for each element where `high` is equal `other`.

See combine_objs().

### high_stats method

    PIVOTINFO.high_stats(
        *args,
        **kwargs
    )

Stats of `high` as generic.

### last_idx property

Output array.

### last_idx_above method

    PIVOTINFO.last_idx_above(
        other,
        level_name=None,
        allow_multiple=True,
        **kwargs
    )

Return True for each element where `last_idx` is above `other`.

See combine_objs().

### last_idx_below method

    PIVOTINFO.last_idx_below(
        other,
        level_name=None,
        allow_multiple=True,
        **kwargs
    )

Return True for each element where `last_idx` is below `other`.

See combine_objs().

### last_idx_crossed_above method

    PIVOTINFO.last_idx_crossed_above(
        other,
        level_name=None,
        allow_multiple=True,
        **kwargs
    )

Return True for each element where `last_idx` is crossed_above `other`.

See combine_objs().

### last_idx_crossed_below method

    PIVOTINFO.last_idx_crossed_below(
        other,
        level_name=None,
        allow_multiple=True,
        **kwargs
    )

Return True for each element where `last_idx` is crossed_below `other`.

See combine_objs().

### last_idx_equal method

    PIVOTINFO.last_idx_equal(
        other,
        level_name=None,
        allow_multiple=True,
        **kwargs
    )

Return True for each element where `last_idx` is equal `other`.

See combine_objs().

### last_idx_stats method

    PIVOTINFO.last_idx_stats(
        *args,
        **kwargs
    )

Stats of `last_idx` as generic.

### last_pivot property

Output array.

### last_pivot_readable property

`last_pivot` in readable format based on the following mapping:

    {
        -1: 'Valley',
        1: 'Peak',
        0: None
    }

### last_pivot_stats method

    PIVOTINFO.last_pivot_stats(
        *args,
        **kwargs
    )

Stats of `last_pivot` based on the following mapping:

    {
        -1: 'Valley',
        1: 'Peak'
    }

### last_value property

Custom property.

### last_value_above method

    PIVOTINFO.last_value_above(
        other,
        level_name=None,
        allow_multiple=True,
        **kwargs
    )

Return True for each element where `last_value` is above `other`.

See combine_objs().

### last_value_below method

    PIVOTINFO.last_value_below(
        other,
        level_name=None,
        allow_multiple=True,
        **kwargs
    )

Return True for each element where `last_value` is below `other`.

See combine_objs().

### last_value_crossed_above method

    PIVOTINFO.last_value_crossed_above(
        other,
        level_name=None,
        allow_multiple=True,
        **kwargs
    )

Return True for each element where `last_value` is crossed_above `other`.

See combine_objs().

### last_value_crossed_below method

    PIVOTINFO.last_value_crossed_below(
        other,
        level_name=None,
        allow_multiple=True,
        **kwargs
    )

Return True for each element where `last_value` is crossed_below `other`.

See combine_objs().

### last_value_equal method

    PIVOTINFO.last_value_equal(
        other,
        level_name=None,
        allow_multiple=True,
        **kwargs
    )

Return True for each element where `last_value` is equal `other`.

See combine_objs().

### last_value_stats method

    PIVOTINFO.last_value_stats(
        *args,
        **kwargs
    )

Stats of `last_value` as generic.

### low property

Input array.

### low_above method

    PIVOTINFO.low_above(
        other,
        level_name=None,
        allow_multiple=True,
        **kwargs
    )

Return True for each element where `low` is above `other`.

See combine_objs().

### low_below method

    PIVOTINFO.low_below(
        other,
        level_name=None,
        allow_multiple=True,
        **kwargs
    )

Return True for each element where `low` is below `other`.

See combine_objs().

### low_crossed_above method

    PIVOTINFO.low_crossed_above(
        other,
        level_name=None,
        allow_multiple=True,
        **kwargs
    )

Return True for each element where `low` is crossed_above `other`.

See combine_objs().

### low_crossed_below method

    PIVOTINFO.low_crossed_below(
        other,
        level_name=None,
        allow_multiple=True,
        **kwargs
    )

Return True for each element where `low` is crossed_below `other`.

See combine_objs().

### low_equal method

    PIVOTINFO.low_equal(
        other,
        level_name=None,
        allow_multiple=True,
        **kwargs
    )

Return True for each element where `low` is equal `other`.

See combine_objs().

### low_stats method

    PIVOTINFO.low_stats(
        *args,
        **kwargs
    )

Stats of `low` as generic.

### modes property

Custom property.

### modes_readable property

`modes` in readable format based on the following mapping:

    {
        -1: 'Downtrend',
        1: 'Uptrend',
        0: None
    }

### modes_stats method

    PIVOTINFO.modes_stats(
        *args,
        **kwargs
    )

Stats of `modes` based on the following mapping:

    {
        -1: 'Downtrend',
        1: 'Uptrend'
    }

### param_select_func_nb method

    PIVOTINFO.param_select_func_nb(
        i,
        args_before,
        high,
        low,
        up_th,
        down_th,
        *args
    )

### pivots property

Custom property.

### pivots_readable property

`pivots` in readable format based on the following mapping:

    {
        -1: 'Valley',
        1: 'Peak',
        0: None
    }

### pivots_stats method

    PIVOTINFO.pivots_stats(
        *args,
        **kwargs
    )

Stats of `pivots` based on the following mapping:

    {
        -1: 'Valley',
        1: 'Peak'
    }

### plot method

    _PIVOTINFO.plot(
        column=None,
        conf_value_trace_kwargs=None,
        last_value_trace_kwargs=None,
        add_trace_kwargs=None,
        fig=None,
        **layout_kwargs
    )

Plot PIVOTINFO.conf_value and PIVOTINFO.last_value.

Args

`column` :`str`
  Name of the column to plot.
`conf_value_trace_kwargs` :`dict`
  Keyword arguments passed to `plotly.graph_objects.Scatter` for PIVOTINFO.conf_value line.
`last_value_trace_kwargs` :`dict`
  Keyword arguments passed to `plotly.graph_objects.Scatter` for PIVOTINFO.last_value line.
`add_trace_kwargs` :`dict`
  Keyword arguments passed to `fig.add_trace` when adding each trace.
`fig` :`Figure` or `FigureWidget`
  Figure to add traces to.
`**layout_kwargs`
  Keyword arguments passed to `fig.update_layout`.

Usage

    >>> fig = ohlcv.vbt.ohlcv.plot()
    >>> vbt.PIVOTINFO.run(ohlcv['High'], ohlcv['Low'], 0.1, 0.1).plot(fig=fig).show()

### plot_zigzag method

    _PIVOTINFO.plot_zigzag(
        column=None,
        zigzag_trace_kwargs=None,
        add_trace_kwargs=None,
        fig=None,
        **layout_kwargs
    )

Plot zig-zag line.

Args

`column` :`str`
  Name of the column to plot.
`zigzag_trace_kwargs` :`dict`
  Keyword arguments passed to `plotly.graph_objects.Scatter` for zig-zag line.
`add_trace_kwargs` :`dict`
  Keyword arguments passed to `fig.add_trace` when adding each trace.
`fig` :`Figure` or `FigureWidget`
  Figure to add traces to.
`**layout_kwargs`
  Keyword arguments passed to `fig.update_layout`.

Usage

    >>> fig = ohlcv.vbt.ohlcv.plot()
    >>> vbt.PIVOTINFO.run(ohlcv['High'], ohlcv['Low'], 0.1, 0.1).plot_zigzag(fig=fig).show()

### run class method

    PIVOTINFO.run(
        high,
        low,
        up_th,
        down_th,
        short_name='pivotinfo',
        hide_params=None,
        hide_default=True,
        **kwargs
    )

Run PIVOTINFO indicator.

- Inputs: `high`, `low`
- Parameters: `up_th`, `down_th`
- Outputs: `conf_pivot`, `conf_idx`, `last_pivot`, `last_idx`
- Lazy outputs: `conf_value`, `last_value`, `pivots`, `modes`

Pass a list of parameter names as `hide_params` to hide their column levels, or True to hide all. Set `hide_default` to False to show the column levels of the parameters with a default value.

Other keyword arguments are passed to IndicatorBase.run_pipeline().

### run_combs class method

    PIVOTINFO.run_combs(
        high,
        low,
        up_th,
        down_th,
        r=2,
        param_product=False,
        comb_func=itertools.combinations,
        run_unique=True,
        short_names=None,
        hide_params=None,
        hide_default=True,
        **kwargs
    )

Create a combination of multiple PIVOTINFO indicators using function `comb_func`.

- Inputs: `high`, `low`
- Parameters: `up_th`, `down_th`
- Outputs: `conf_pivot`, `conf_idx`, `last_pivot`, `last_idx`
- Lazy outputs: `conf_value`, `last_value`, `pivots`, `modes`

`comb_func` must accept an iterable of parameter tuples and `r`. Also accepts all combinatoric iterators from itertools such as `itertools.combinations`. Pass `r` to specify how many indicators to run. Pass `short_names` to specify the short name for each indicator. Set `run_unique` to True to first compute raw outputs for all parameters, and then use them to build each indicator (faster).

Other keyword arguments are passed to PIVOTINFO.run().

Note

This method should only be used when multiple indicators are needed. To test multiple parameters, pass them as lists to PIVOTINFO.run().

### up_th_list property

List of `up_th` values.

#### Cookie consent

We use cookies to recognize your repeated visits and preferences, as well as to measure the effectiveness of our documentation and whether users find what they're searching for. With your consent, you're helping us to make our documentation better.

- Google Analytics
- GitHub

Manage settings