Pandas acceleration: Compiled versions of most popular pandas functions, such as mapping, reducing, rolling, grouping, and resamping. For best performance, most operations are done strictly using NumPy and Numba. Attaches a custom accessor on top of pandas to easily switch between pandas and vectorbt functionality. Flexible broadcasting: Mechanism for broadcasting array-like objects of arbitrary shapes, including pandas objects with MultiIndex. Pandas utilities: Grouping columns, wrapping NumPy arrays, transforming pandas objects and their indexes, and more.
Data
1 2 3 4 5
Data acquisition: Supports various data providers, such as Yahoo Finance, Binance, CCXT and Alpaca. Can merge multiple symbols with different index, as well as update them. Data generation: Supports various (random) data generators, such as GBM. Scheduled data updates: Can periodically update any previously downloaded data. Data preparation: Transformation, rescaling, and normalization of data. Custom splitters for cross-validation. Supports Scikit-Learn splitters, such as for K-Folds cross-validation. Labeling for ML: Discrete and continuous label generation for effective training of ML models.
Indicators
1 2
Technical indicators: Most popular technical indicators with full Numba support, including Moving Average, Bollinger Bands, RSI, Stochastic, MACD, and more. Out-of-the-box support for 99% indicators in Technical Analysis Library, Pandas TA, and TA-Lib thanks to built-in parsers. Each indicator is wrapped with the vectorbt's indicator engine and thus accepts arbitrary hyperparameter combinations - from arrays to Cartesian products. Indicator factory: Sophisticated factory for building custom technical indicators of any complexity. Takes a function and does all the magic for you: generates an indicator skeleton that takes inputs and parameters of any shape and type, and runs the vectorbt's indicator engine. The easiest and most flexible way to create indicators you will find in open source.
Signals
1 2 3
Signal analysis: Generation, mapping and reducing, ranking, and distribution analysis of entry and exit signals. Signal generators: Random and stop loss (SL, TSL, TP, etc.) signal generators with full Numba support. Signal factory: Signal factory based on indicator factory specialized for iterative signal generation.
Modeling
1
Portfolio modeling: The fastest backtesting engine in open source: fills 1,000,000 orders in 70-100ms on Apple M1. Flexible and powerful simulation functions for portfolio modeling, highly optimized for highest performance and lowest memory footprint. Supports two major simulation modes: 1) vectorized backtesting using user-provided arrays, such as orders, signals, and records, and 2) event-driven backtesting using user-defined callbacks. Supports shorting and individual as well as multi-asset mixed portfolios. Combines many features across vectorbt into a single behemoth class.
Analysis
1 2 3 4 5
Performance metrics: Numba-compiled versions of metrics from empyrical and their rolling versions. Adapter for QuantStats. Stats builder: Class for building statistics out of custom metrics. Implements a preset of tailored statistics for many backtesting components, such as signals, returns, and portfolio. Records and mapped arrays: In-house data structures for analyzing complex data, such as simulation logs. Fully compiled with Numba. Trade analysis: Retrospective analysis of trades from various view points. Supports entry trades, exit trades, and positions. Drawdown analysis: Drawdown statistics of any numeric time series.
Plotting
1 2 3
Data visualization: Numerous flexible data plotting functions distributed across vectorbt. Figures and widgets: Custom interactive figures and widgets using Plotly, such as Heatmap and Volume. All custom widgets have dedicated methods for efficiently updating their state. Plots builder: Class for building plots out of custom subplots. Implements a preset of tailored subplots for many backtesting components, such as signals, returns, and portfolio.
Extra
1 2 3 4
Notifications: Telegram bot based on Python Telegram Bot. General utilities: Scheduling using schedule, templates, decorators, configs, and more. Caching: Property and method decorators for caching most frequently used objects. Persistance: Most Python objects including data and portfolio can be saved to a file and retrieved back using Dill.