Skip to main content

run_from_signals

run_from_signals(
    data: pandas.core.frame.DataFrame | vectorbtpro.data.base.Data,
    signals: systematica.signals.base.Signals,
    *,
    metrics: str | List[str= None,
    metrics_kwargs: Dict[str, Any] = None,
    use_rolling: bool = False,
    to_numpy: bool = False,
    **portfolio_config,
) ‑> vectorbtpro.portfolio.base.Portfolio | collections.OrderedDict | pandas.core.frame.DataFrame | numpy.ndarray
Simulate a single trading strategy. Parameters:
NameTypeDefaultDescription
datavbt.Data--Historical market data.
signalsSignals--Generated trading signals.
metricsstrNoneMetrics to evaluate the portfolio, by default None.
use_rollingboolFalseUse rolling metrics. See metrics config. Defauts to False.
metrics_kwargstp.KwargsNoneAdditional arguments for metric config. Parameters such as window of minp for rolling metrics should be specificed. Defaults to None.
validate_metricsboolTrueCheck if metric is valid in the config. Might slow-down code if set to True. Defaults to True.
to_numpyboolFalseIf True, returns a numpy ndarray. Defaults to False, which means returns a pandas SeriesFrame.
portfolio_configtp.Kwargs--Additional arguments for portfolio simulation.
Returns:
TypeDescription
vbt.PF | OrderedDict | pd.DataFrame | tp.ArraySimulated portfolio or requested metrics.

run_from_signals_nb

run_from_signals_nb(
    open: numpy.ndarray,
    high: numpy.ndarray,
    low: numpy.ndarray,
    close: numpy.ndarray,
    signals: systematica.signals.base.Signals,
    size: int = 50,
    sl_stop: float = nan,
    tsl_stop: float = nan,
    tp_stop: float = nan,
) ‑> vectorbtpro.portfolio.enums.SimulationOutput
Simulate strategy using Numba. Parameters:
NameTypeDefaultDescription
closeArray1d--Array of closing prices.
signalsSignals--Generated trading signals.
sizeint50Size of each order, default is 50.
sl_stopfloatnp.nanStop-loss level, default is np.nan (no stop-loss).
tsl_stopfloatnp.nanTrailing stop-loss level, default is np.nan (no trailing stop-loss).
tp_stopfloatnp.nanTake-profit level, default is np.nan (no take-profit).
Returns:
TypeDescription
SimulationOutputSimulated portfolio.
<Note>
The output of this function is an instance of the type SimulationOutput,
which can be used to construct a new Portfolio instance for analysis:
</Note>
Examples:
>>> pf = vbt.Portfolio(
...     data.symbol_wrapper.regroup(group_by=True),  
...     sim_out,  
...     open=data.open,  
...     high=data.high,
...     low=data.low,
...     close=data.close,
...     cash_sharing=True,
...     init_cash=100  
... )
>>> pf.total_return
# 0.19

run_from_optimize_func

run_from_optimize_func(
    data: vectorbtpro.data.base.Data,
    returns: numpy.ndarray,
    signals: systematica.signals.base.Signals,
    optimize_func: Callable,
    *,
    config: Dict[str, Any] = None,
) ‑> vectorbtpro.portfolio.pfopt.base.PortfolioOptimizer
Sets up and returns a portfolio optimizer instance, using custom sampling and optimization functions. Parameters:
NameTypeDefaultDescription
datavbt.Data--Historical market data.
returnstp.Array--Array of returns to be used for optimization.
signalsSignals--Generated trading signals.
optimize_functp.Callable--Custom optimization function that takes the returns and signals as input. This function should return a dictionary of optimized parameters or metrics.
configtp.KwargsNoneDictionary with optimization parameters. Defaults to None.
Returns:
TypeDescription
vbt.PortfolioOptimizerConfigured portfolio optimizer instance ready for backtesting.
Examples:
>>> strategy = ...
>>> portfolio_optimizer = strategy.optimizer(
...     ...,
...     config={'obj': 'Sharpe', 'every': 'M'}
... )
>>> portfolio = portfolio_optimizer.simulate()