Copilot’s vector-based backtesting engine allows you to evaluate trading strategies efficiently by simulating how they would have performed over time, without relying on individual trade-by-trade execution. This guide explains how it works and provides a detailed breakdown of each setting available in the backtesting panel.
🧠 How Vector-Based Backtesting Works
At its core, vector backtesting is rule-based and signal-agnostic unless you explicitly define entry conditions. Here's how it behaves by default:
- If no entry signals are selected, the system will automatically attempt to enter a position on the last business day of every calendar year in the backtesting range.
- Each position is held for the entire following year, unless you exit earlier based on your role or exit settings.
- Trades are rolled or closed using the parameters you've defined in the interface.
This makes it easy to benchmark long-term strategies or evaluate rolling exposure without needing to write custom entry logic.
⚙️ Backtesting Settings Explained
You can access Backtesting settings by clicking the following button in the Backtesting app.
There, you'll find all relevant backtesting settings, including rolls, exits, range, and more.
Equity Settings
| Setting | Description | Example |
|---|---|---|
| Start Equity (M$) | The amount of capital (in millions) the backtest begins with. | 1 = $1,000,000 starting equity. |
| Equity Type | Determines how equity is calculated over time. Options: compounding, static. - Compounding reinvests profits/losses into new trades. - Static assumes a fixed notional base throughout the test. |
Use compounding to simulate portfolio growth over time. |
Backtesting Range
| Setting | Description | Example |
|---|---|---|
| Backtesting Range | Defines the time span for the test. The system will compute the backtest annually within this range. | From 2000-01-01 to 2025-07-04. |
Roll Settings
| Setting | Description | Example |
|---|---|---|
| DTE Roll | If yes, the system will roll contracts when Days to Expiration (DTE) hits your threshold. | Use "no" if you don't want to roll based on DTE |
| Inherit Rolls from the First Leg | If yes, all legs in a multi-leg strategy will roll when the first leg hits the DTE threshold. If no, each leg is rolled independently. | Use yes if you want rolls in all legs to align. |
Contract Settings
| Setting | Description | Example |
|---|---|---|
| Option Expiry Types | Choose whether to use Standard monthly options or Standard and Serial | Use Standard to use in a backtest only options tied to the futures contrac months. |
Exit Settings
Note: Exit settings in backtesting are only available when DTE roll is disabled, as they are not compatible with the automated option-rolling functionality based on DTE.
| Setting | Description | Example |
|---|---|---|
| Close Legs on Individual Min DTE | If yes, each leg closes independently when it reaches its own Min DTE. | You entered 5 min dte call whicj at entry had 15 dte. If "yes" is used, the options will be closed exatly at 5 dte and not kept to expiry. |
| Close Entire Structure on Every Min DTE | If yes, the entire trade structure closes as soon as selected Min DTE is reached in time. | You used "yes" and 5 days to expiry. We're looking at all expiration dates for selected option underlying. All the expiration dates - selected 5 dte become exits for entire structure. |
| Min DTE | The minimum number of days to expiration before a entire structure is considered for exit. | |
| Max B.Days in Trade | Maximum business days a position can be held. After this, the trade will close even if DTE hasn’t been reached. 0 means no limit. | Set to 21 to close legs after one calendar month. |
📌 Want Support for More Controls?
This setup is designed for flexibility and fast iteration. We’re actively expanding the types of instruments and exit logic supported. If you’d like to see new settings or asset types prioritized, contact us and let us know—your input helps shape the roadmap.
Comments
0 comments
Please sign in to leave a comment.