コード例 #1
0
from vectorbt.utils.figure import make_figure
from vectorbt.indicators.configs import flex_col_param_config, flex_elem_param_config
from vectorbt.signals.enums import StopType
from vectorbt.signals.factory import SignalFactory
from vectorbt.signals.nb import (rand_enex_apply_nb, rand_by_prob_choice_nb,
                                 stop_choice_nb, ohlc_stop_choice_nb)

# ############# Random signals ############# #

RAND = SignalFactory(
    class_name='RAND',
    module_name=__name__,
    short_name='rand',
    param_names=[
        'n'
    ]).from_apply_func(  # apply_func since function is (almost) vectorized
        rand_enex_apply_nb,
        require_input_shape=True,
        param_settings=dict(n=flex_col_param_config),
        kwargs_to_args=['entry_wait', 'exit_wait'],
        entry_wait=1,
        exit_wait=1,
        seed=None)


class _RAND(RAND):
    """Random entry and exit signal generator based on the number of signals.

    Generates `entries` and `exits` based on `vectorbt.signals.nb.rand_enex_apply_nb`.

    !!! hint
        Parameter `n` can be either a single value (per frame) or a NumPy array (per column).
コード例 #2
0
ファイル: generators.py プロジェクト: jingmouren/vectorbt
from vectorbt.indicators.configs import flex_col_param_config, flex_elem_param_config
from vectorbt.signals.enums import StopType
from vectorbt.signals.factory import SignalFactory
from vectorbt.signals.nb import (rand_enex_apply_nb, rand_by_prob_choice_nb,
                                 stop_choice_nb, ohlc_stop_choice_nb,
                                 rand_choice_nb)
from vectorbt.utils.config import Config
from vectorbt.utils.figure import make_figure

# ############# RAND ############# #

RAND = SignalFactory(class_name='RAND',
                     module_name=__name__,
                     short_name='rand',
                     mode='entries',
                     param_names=['n']).from_choice_func(
                         entry_choice_func=rand_choice_nb,
                         entry_settings=dict(pass_params=['n']),
                         param_settings=dict(n=flex_col_param_config),
                         seed=None)


class _RAND(RAND):
    """Random entry signal generator based on the number of signals.

    Generates `entries` based on `vectorbt.signals.nb.rand_choice_nb`.

    !!! hint
        Parameter `n` can be either a single value (per frame) or a NumPy array (per column).
        To generate multiple combinations, pass it as a list.