Skip to main content

Variables

  • SIGNAL_MAPPER: Mapping of signal keys to human-readable names.
  • VALID_SIGNALS: Get valid signal keys to human-readable names.

no_signals_found_nb

no_signals_found_nb(
    model_output: numpy.ndarray,
) ‑> systematica.signals.base.Signals
Create a Signals object with no signals found. Parameters:
NameTypeDefaultDescription
model_outputtp.Array--A 2d array representing model predictions for two assets.
Returns:
TypeDescription
SignalsA Signals object with all entries and exits set to False.

Thresholds

Thresholds(
    long_entries: float,
    long_exits: float,
    short_entries: float,
    short_exits: float,
)
Named tuple to represent signal thresholds.

Ancestors

  • builtins.tuple

Instance variables

  • long_entries: float: Long entry signals.
  • long_exits: float: Long exit signals.
  • short_entries: float: Short entry signals.
  • short_exits: float: Short exit signals.

Signals

Signals(
    long_entries: numpy.ndarray | pandas.core.series.Series | pandas.core.frame.DataFrame = nan,
    long_exits: numpy.ndarray | pandas.core.series.Series | pandas.core.frame.DataFrame = nan,
    short_entries: numpy.ndarray | pandas.core.series.Series | pandas.core.frame.DataFrame = nan,
    short_exits: numpy.ndarray | pandas.core.series.Series | pandas.core.frame.DataFrame = nan,
)
Named tuple to represent trading signals.

Ancestors

  • builtins.tuple

Instance variables

  • long_entries: numpy.ndarray | pandas.core.series.Series | pandas.core.frame.DataFrame: Array or DataFrame indicating long entry signals.
  • long_exits: numpy.ndarray | pandas.core.series.Series | pandas.core.frame.DataFrame: Array or DataFrame indicating long exit signals.
  • short_entries: numpy.ndarray | pandas.core.series.Series | pandas.core.frame.DataFrame: Array or DataFrame indicating short entry signals.
  • short_exits: numpy.ndarray | pandas.core.series.Series | pandas.core.frame.DataFrame: Array or DataFrame indicating short exit signals.
  • ndim: int: Get the number of dimensions of the signals.
  • has_latest_signal: Signals: Check if the latest row in any of the entry or exit signals has a True value.

Methods

get_latest_signals

get_latest_signals(
    self,
    data: vectorbtpro.data.base.Data,
) ‑> Dict[strstr]
Get the names of the signals where the latest row contains a True value. Initially checks if latest row in any of the entry or exit signals has any True values. Then maps signal names and symbols.
Convert signals to pandas.DataFrame object automatically.
Returns:
TypeDescription
Dict[str, str]Dict of symbols and mapped names if latest row has a True value. Empty dict otherwise.

to_frame

to_frame(
    self,
    data: pandas.core.frame.DataFrame | vectorbtpro.data.base.Data,
    clean: bool = False,
) ‑> systematica.signals.base.Signals
Convert signals to pandas DataFrame objects. Parameters:
NameTypeDefaultDescription
datapd.DataFrame--or vbt.Data Market data used to structure the output signals.
cleanboolFalseWhether to clean the signals before converting.
Raises:
TypeDescription
ValueErrorIf signal cleaning fails due to Numba-related errors.
Returns:
TypeDescription
SignalsConverted signals wrapped as DataFrame objects.

asframe

asframe(
    self,
    data: pandas.core.frame.DataFrame | vectorbtpro.data.base.Data,
    clean: bool = False,
    level_names: List[str= None,
) ‑> pandas.core.frame.DataFrame
Convert Signals object to a pandas DataFrame. Parameters:
NameTypeDefaultDescription
datapd.DataFrame--or vbt.Data Market data used to structure the output signals.
cleanboolFalseWhether to clean the signals before converting.
level_namestp.List[str, str], default None“--Names for the levels in the resulting hierarchical index. if None defaults to ['signals', 'symbol']. Defaults to None
Returns:
TypeDescription
pd.DataFramepandas DataFrame objects.

clean_signals

clean_signals(
    self,
) ‑> systematica.signals.base.Signals
Clean raw signals using pre-defined cleaning functions. Returns:
TypeDescription
SignalsCleaned signals with noise reduction.

fshift

fshift(
    self,
    n: int = 1,
) ‑> systematica.signals.base.Signals
Shift forward by n positions. Numba equivalent to pd.Series(arr).shift(n). Parameters:
NameTypeDefaultDescription
nint, optional--Number of steps. Defaults to 1.
Returns:
TypeDescription
SignalsCleaned signals with noise reduction.

plot

plot(
    self,
    df_or_data: pandas.core.series.Series | pandas.core.frame.DataFrame | vectorbtpro.data.base.Data,
    symbol: str | List[str],
    clean: bool = False,
    start: str | pandas._libs.tslibs.timestamps.Timestamp = None,
    end: str | pandas._libs.tslibs.timestamps.Timestamp = None,
    fig: vectorbtpro.utils.figure.FigureWidget = None,
    **plot_kwargs,
) ‑> vectorbtpro.utils.figure.FigureWidget
Plot trading signals over the provided market data. Parameters:
NameTypeDefaultDescription
df_or_datatp.SeriesFrame--or vbt.Data Market data to use for plotting.
symbolstr--or list of str Symbol(s) to plot.
cleanboolFalseWhether to clean signals before plotting.
startstrNoneThe start date. Defaults to None.
endstrNoneThe end date. Defaults to None.
figvbt.FigureWidgetNoneFigure widget to update with new plots.
plot_kwargstp.Kwargs--Additional keyword arguments for the plot function.
Raises:
TypeDescription
ValueErrorIf signal cleaning fails due to Numba-related errors.
Returns:
TypeDescription
vbt.FigureWidgetA figure widget containing the plotted signals.

select_symbols

select_symbols(
    self,
    symbols: str | int | list[str | int],
) ‑> systematica.signals.base.Signals
Select specified symbol(s) unchanged and set all other columns to False. Parameters:
NameTypeDefaultDescription
symbolsstr, int, or list[str | int]--The symbol name(s) (e.g., BTCUSDT or ETHUSDT) or column index(es) (e.g., 0 or 1) to keep unchanged. All other columns will be set to False.
Raises:
TypeDescription
ValueErrorIf any symbol name is invalid or any index is out of bounds.
Returns:
TypeDescription
SignalsNew Signals instance with only the specified symbol(s) retained, others set to False.