Traadence's Backtest Futures Strategy is a completed quantitative research package for testing whether CRT session-range sweeps and reclaims gain statistical value when price is extended from session VWAP. It evaluates YM/MYM in New York and GC/MGC or SI/Micro Silver in London and New York, using one-minute history to construct five-minute signals.
Objective rules in, trade-level evidence out—without automated order execution or broker routing.
The Question This Research Package Answers
The package answers one narrow question: does a confirmed CRT high or low sweep followed by a range reclaim behave differently when price is also statistically extended from session VWAP? The same definitions, fill assumptions, friction model, and report schema are applied to five market/session combinations so comparisons are not distorted by changing rules.
Three cohorts are evaluated separately: CRT-only events, VWAP-deviation events, and confirmed confluence. Entries occur at the next eligible bar after confirmation, preventing a signal from using the closing price that created it. The output is evidence, not an order ticket or financial recommendation.
Core Features
| Feature | Description |
|---|---|
| Eastern Time Session Engine | Fixed UTC offsets misclassify bars when daylight saving changes. The engine stores London and New York windows in Eastern Time with timezone-aware conversion and session-specific reset rules. |
| Session VWAP and Deviation Model | A plain distance-from-VWAP filter cannot compare instruments with different volatility. Within each session, VWAP uses cumulative Σ(typical price × volume) / Σvolume, followed by weighted dispersion and configurable z-score thresholds. |
| CRT Sweep and Reclaim Detector | Visual chart labels are too subjective for statistical testing. A sweep requires a session extreme breach, while a reclaim requires a confirmed close back inside the defined range. |
| Comparable Signal Cohorts | Mixed signals hide which condition contributes information. Every event is classified as CRT-only, VWAP-only, or combined, then measured with the same entry, exit, and friction assumptions. |
| Realistic Fill and Friction Ledger | Idealized fills overstate research quality. The simulator applies next-bar timing, contract-aware tick values, commissions, configurable slippage, and separate long and short trade records. |
| Chronological Out-of-Sample Validation | Random train/test splits leak later regimes into earlier decisions. Expanding walk-forward folds evaluate only later observations, while session-cluster bootstrap intervals quantify uncertainty without treating every trade as independent. |
| Sensitivity and Stability Grid | A single favorable threshold can be a coincidence. Nearby VWAP deviation, reclaim confirmation, stop, target, and holding-time parameters are tested to expose fragile regions. |
| Trade Ledger and Evidence Report | Summary statistics alone cannot be audited. The package exports every signal, fill, excursion, commission, slippage value, exit reason, session label, parameter set, and evidence grade to CSV and written reports. |
Data Continuity and Contract Handling
The input layer accepts timestamped OHLCV data and preserves the original one-minute bars before aggregation. Contract continuity can follow a supplied roll calendar or a volume-led series aligned with the methodology behind CME Group Continuous Price Series. The instrument registry keeps multipliers and tick sizes separate for YM/MYM, GC/MGC, and SI/micro contracts.
Market context is checked against the exchange's E-mini Dow product overview and COMEX Gold and Silver report. These references support contract interpretation and liquidity context; they do not replace the supplied historical dataset or the backtest's own commission and slippage assumptions.
Technical Stack and Reproducibility
The delivered engine runs on Python because its standard library supports deterministic configuration, timezone handling, and portable command-line execution. pandas manages indexed bar data and grouped session reports, while NumPy handles vectorized VWAP dispersion, z-scores, and excursion arrays.
Chronological folds follow the ordering principle documented for scikit-learn TimeSeriesSplit: later observations are never used to evaluate earlier ones. A companion chart module is written in TradingView Pine Script to plot session VWAP, deviation bands, CRT levels, reclaim markers, confluence signals, and alerts.
Configuration files hold session windows, instrument metadata, signal thresholds, commission and slippage assumptions, and validation periods. For alternate data schemas, additional markets, or revised research rules, our trading strategy backtesting service extends the same evidence pipeline without changing prior results.
Validation Outputs and Evidence Grades
| Output | What is reported |
|---|---|
| Trade quality | Trade count, win rate, profit factor, net expectancy per trade, average winner, average loser, and average holding time. |
| Risk path | Maximum drawdown, average adverse excursion, average favorable excursion, stop behavior, and results after commissions and slippage. |
| Segment analysis | Monthly results, long versus short performance, time-of-day groups, instrument/session splits, and VWAP deviation threshold buckets. |
| Mean-reversion behavior | Percentage of trades returning to VWAP, time taken to return, and differences between CRT-only, VWAP-only, and combined events. |
| Research verdict | Each market/session pair is labeled supported, preliminary, inconclusive, or not supported using out-of-sample consistency, sample size, friction-adjusted expectancy, and parameter stability. |
A result is not promoted because one headline metric is positive. The evidence grade considers whether the effect survives commissions and slippage, appears in later data, remains directionally similar across nearby parameters, and has enough observations to avoid treating a small sample as a durable finding.
Use Cases
- Quant researchers can convert discretionary CRT language into auditable event rules and inspect every qualifying sweep, reclaim, and fill.
- Futures traders can compare New York YM behavior with London and New York metals sessions without changing the core signal definition.
- Strategy reviewers can challenge a promising threshold by reading walk-forward results and the nearby-parameter sensitivity surface.
- TradingView users can display only the logic that survived research, then create visual alerts without enabling automated execution.
Project Directory
crt-vwap-futures-validator/
├── README.md
├── pyproject.toml
├── config/
│ ├── research.yml
│ ├── sessions.yml
│ ├── instruments.yml
│ ├── friction.yml
│ └── parameters.yml
├── data/
│ ├── raw/
│ ├── interim/
│ └── processed/
├── src/
│ └── crt_vwap/
│ ├── __init__.py
│ ├── cli.py
│ ├── data/
│ │ ├── loaders.py
│ │ ├── contracts.py
│ │ └── resample.py
│ ├── sessions/
│ │ ├── calendar.py
│ │ └── windows.py
│ ├── features/
│ │ ├── vwap.py
│ │ ├── deviation.py
│ │ └── crt.py
│ ├── signals/
│ │ ├── cohorts.py
│ │ ├── entries.py
│ │ └── exits.py
│ ├── backtest/
│ │ ├── engine.py
│ │ ├── fills.py
│ │ └── friction.py
│ ├── validation/
│ │ ├── walk_forward.py
│ │ ├── sensitivity.py
│ │ └── evidence.py
│ ├── analytics/
│ │ ├── metrics.py
│ │ ├── excursions.py
│ │ └── segments.py
│ ├── reporting/
│ │ ├── csv_export.py
│ │ ├── report.py
│ │ └── charts.py
│ └── tradingview/
│ └── crt_vwap_indicator.pine
├── tests/
│ ├── test_sessions.py
│ ├── test_vwap.py
│ ├── test_crt_events.py
│ ├── test_no_lookahead.py
│ └── test_friction.py
└── outputs/
├── trades/
├── reports/
└── figures/
Reproduction Command
python -m venv .venv
source .venv/bin/activate
pip install -e .
crt-vwap validate --config config/research.yml
How to Validate CRT and VWAP Confluence Using Traadence's Backtest Futures Strategy
Download & Set Up the Project
Download, set up, and install Traadence's Backtest Futures Strategy to get the project running. If you hit any difficulty, contact us here.
Load Historical Bars
Open config/research.yml, point each instrument to its one-minute OHLCV file, and verify timestamp timezone, contract code, tick size, and session mapping.
Set Research Parameters
Choose CRT range windows, reclaim confirmation, VWAP z-score thresholds, commission, slippage, stop, target, holding limit, and chronological validation periods for each instrument.
Run and Review Evidence
Run crt-vwap validate; the package writes trade-level CSV files, grouped metrics, sensitivity tables, charts, and evidence grades into the outputs directory.
Questions
Does the research package place trades or connect to Tradovate?
No. The delivered package performs signal research, simulation, and reporting only; it does not route orders, manage brokerage authentication, or connect to Tradovate. This boundary keeps the statistical findings separate from execution infrastructure.
How does the backtester control lookahead bias and overfitting?
Signals are confirmed on completed bars and filled no earlier than the next eligible bar. Validation is chronological, with later periods reserved for out-of-sample evaluation, while nearby parameters are tested to show whether a result is stable or dependent on one narrow setting.
Can the validated logic be displayed in TradingView?
Yes. The companion Pine Script plots session VWAP, deviation bands, CRT highs and lows, sweep/reclaim markers, confirmed confluence signals, and alert conditions. It mirrors the validated rule definitions but remains a charting and alert layer rather than an execution engine.
