Position-Size Caps
Set absolute or percentage-of-equity limits per instrument, per sector, and per strategy. An order that would breach any cap is refused at the gateway layer before it reaches the venue — not logged as a warning, refused entirely.
Features
Heritage Workshop's module set covers the full trading lifecycle — from data ingestion to post-trade analytics — with no compromises on precision.

The data layer is the foundation on which every strategy decision rests.
Heritage Workshop sources consolidated price feeds from regulated venues across EU equity markets, major FX ECNs, and leading crypto exchanges. Each tick is timestamped at source, validated against our anomaly-detection model, and delivered to the strategy engine within 50 milliseconds of receipt. When a feed degrades or a venue goes dark, the system routes to a pre-configured fallback and surfaces an alert in the dashboard — your strategy continues on clean data, and you are informed immediately. Data history is stored at tick resolution for up to ten years, forming the foundation of the backtesting module.

Define your logic once; the terminal enforces it without exception across every session.
The strategy builder accepts condition trees of arbitrary depth: time-of-day filters, multi-leg spread entries, scaling plans, and trailing stops can all be expressed without writing code. For quantitative practitioners, the JSON import schema supports the same logic in a format compatible with standard Python backtesting libraries. Once a strategy is deployed, the execution engine polls conditions at 100-millisecond intervals, submits orders via FIX or REST depending on venue, and records every decision — including rejected signals — in an immutable audit log. You can inspect exactly why any order was or was not placed at any point in time.
Hard limits operate at the order layer, below strategy logic — they cannot be disabled by a signal.
Set absolute or percentage-of-equity limits per instrument, per sector, and per strategy. An order that would breach any cap is refused at the gateway layer before it reaches the venue — not logged as a warning, refused entirely.
Define daily, weekly, or per-strategy drawdown thresholds. When a threshold is crossed, the engine halts new entries for that scope, closes positions to the defined safe-size level, and sends an alert to your registered contact address.
Block all order activity outside defined market windows — useful for strategies that should not trade in illiquid pre-market hours or across specific economic release windows.
Push notifications and email alerts are fired on drawdown thresholds, data-feed anomalies, order rejections, and position limit approaches — keeping you informed without requiring you to watch the screen.
A strategy untested on historical data is a hypothesis, not a plan.
The backtesting module runs strategies against tick-level historical data using a realistic fill model that accounts for bid-ask spread, partial fills, and configurable slippage assumptions. Each completed backtest produces a structured HTML and PDF report covering: annualised return, Sharpe ratio, Sortino ratio, maximum drawdown, average win and loss, and a trade-by-trade log. You can run multiple parameter sets in parallel — what practitioners call a walk-forward grid — and compare results across a normalised performance table. Backtesting compute runs server-side; results are typically available within two to eight minutes depending on strategy complexity and data range.

“The backtesting report format is the most thorough I have encountered in five years of evaluating systematic trading tools. Walk-forward results, slippage-adjusted returns, and a clean trade log — all in one PDF. It removed weeks of manual analysis from our strategy validation process.”
— Ana Petrič, portfolio analyst, Maribor
Select a plan that matches your trading volume and data requirements.
See Pricing