Quantitative Infrastructure

Infrastructure for Quantitative Research & Market Execution

A JSON DSL small enough for an AI to generate safely, running against real market data — without you having to build your own backtesting infrastructure.

Works withClaudeChatGPTCursor+ any MCP client
~260ms · 5 years · 15M · server-side
POST /api/public/v1/backtest
{
  "assetPair": "BTC-USDC",
  "initialDate": "2020-01-01",
  "finalDate": "2024-12-31",
  "strategySnapshotJson": {
    "configuration": { "timeframe": "1H" },
    "inputs": {
      "emaFast": "ema(close, 9)",
      "emaSlow": "ema(close, 21)",
      "rsi": "rsi(close, 14)"
    },
    "conditions": {
      "trend": "emaFast > emaSlow",
      "momentum": "rsi > 45 AND rsi < 70"
    },
    "score": { "trend": 30, "momentum": 20 },
    "decision": { "entry": "score >= 40" }
  }
}
ClaudeOnline
Backtest an EMA 9/21 crossover on BTC-USDC, last 5 years
ChatGPTOnline
Run the same EMA crossover backtest on BTC-USDC, 5 years
scroll
Platform

Programmable infrastructure, ready for you to plug into.

EmidLabs is the infrastructure layer for quantitative research and market execution — ready to use, with no environment for you to build. Integrate via API, connect an AI agent via MCP, or operate it directly like a ready-made lab. Every capability is already there, waiting to be used.

One API per Capability

Send a JSON payload, get structured results back. Backtesting, live execution, and strategy storage — each is an endpoint, not a screen to click through.

Execution at Scale

~260ms for 5 years of market data, warm cache, server-side. Run thousands of concurrent workflows with no queue.

1% Stop, 1:3 Reward, Always in R

Configurable risk model, defaulting to that. Results in R-units, not dollar amounts — easier to compare one strategy against another. Full condition diagnostics and score distribution on every backtest.

From Dev to Trader — No Environment to Set Up

For dev-traders, independent quants, and companies integrating via API or MCP. And for the trader who just wants to connect an AI agent and start operating — no code to write, no infrastructure to stand up. Same platform, whichever entry point you pick.

API-First
Every product is programmable by default
Server-Side
Execution happens in the infrastructure, not your machine
R-Unit Model
Focus on statistical edge, not dollar amounts
Products

Infrastructure modules for quantitative workflows.

Start with the Backtesting API, then subscribe a validated strategy for live signals. More modules are being built as the infrastructure evolves.

Live

Backtesting API

Quantitative research infrastructure

Execute backtests server-side via API. Define strategies using our DSL, send JSON payloads, and receive detailed quantitative results — trades, metrics, score distributions, and condition diagnostics.

Capabilities

~260ms for 5 years of BTC at 15M timeframe
Configurable risk model, 1% / 1:3 by default — results in R-units
Condition frequency and score distribution tracking
Concurrent execution support
JSON payload input, structured response output
AI-assisted strategy generation workflows
Beta

Live Execution API

Beta

Real-time strategy signals

Subscribe a validated strategy to live market data. The same Strategy DSL and evaluation engine as the Backtesting API, running continuously — get a signal the moment your entry or exit condition fires on a real, closed candle.

Capabilities

Subscribe a strategy to any supported asset and timeframe
Signals emitted the instant a closed candle triggers Entry or Exit
Same Strategy DSL and evaluation engine as the Backtesting API
Per-subscription signal log via API
Available on every plan, including Free
Live

MCP Servers

Native connector for AI agents

Connect Claude, ChatGPT, or any MCP-compatible agent directly to the Backtesting, Live Execution, and Strategy Storage APIs — no SDK, no custom integration code to write.

Works withClaudeChatGPTCursor+ any MCP client

Capabilities

Three scoped servers — backtest-mcp, live-mcp, and strategy-mcp
Streamable HTTP transport, works with any MCP client
OAuth sign-in from Claude, or pass an API key directly
Listed on the official MCP Registry
Research Workflow

The quantitative research loop.

EmidLabs exposes the entire research lifecycle as a programmable API workflow — not a dashboard. Each step is an execution node. The loop runs until you have edge.

01

Hypothesis

Define what market behavior you're trying to capture. Frame it as a quantitative thesis, not a gut feeling.

outQuantitative thesis
02

Strategy DSL

Formalize the hypothesis using the EmidLabs DSL — or generate it with an AI model. Composable inputs, conditions, score weights, decision rules.

outStrategy object
03

JSON Payload

Serialize the strategy into a structured JSON payload. Specify asset pair, date range, and execution parameters.

outPOST /backtest
04

API Execution

The infrastructure receives the payload, evaluates the strategy server-side against historical OHLCV data, candle by candle.

outBacktest ID
05

Metrics & Analysis

Receive structured quantitative output: trades, win rate, expectancy R, profit factor, condition diagnostics, score distribution.

outresult{}
06

Iterate

Feed results back into the strategy. Tighten conditions. Adjust weights. Run concurrent variations. Loop until the edge is validated.

out→ back to 01
Research Loop
Strategy System

A composable DSL for machine-readable strategies.

Define quantitative strategies as structured JSON objects. Composable inputs, boolean conditions, scoring weights, and decision rules — designed to be generated, iterated, and executed programmatically.

Configuration

Set the execution timeframe for your strategy.

5M15M30M1H2H4H1D

Inputs

Reusable computed values from market data and built-in functions.

ema(close, 9)
rsi(close, 14)
atr(14)
volume > sma(volume, 20) * 1.5

Conditions

Boolean expressions evaluated per candle using inputs, operators, and market data.

><>=<===!=ANDOR

Score & Decision

Weight conditions and define the entry threshold. Focus on statistical edge over raw signals.

Built-in Functions

Indicators

ema(series, period)
sma(series, period)
rsi(series, period)
atr(period)
adx(period)
adxPlusDi(period)
adxMinusDi(period)

Signals

crossUp(a, b)
crossDown(a, b)

Series Operators

highest(series, n)
lowest(series, n)
change(series)
shift(series, n)
any(boolSeries, n)
all(boolSeries, n)
count(boolSeries, n)

Structure

swingHigh(series, confirmBars)
swingLow(series, confirmBars)

Candle Anatomy

body()
range()
upperWick()
lowerWick()
isBullish()
isBearish()

Candlestick Patterns

hammer()
shootingStar()
doji()
bullishMarubozu()
bearishMarubozu()
spinningTop()
dragonflyDoji()
gravestoneDoji()
longLeggedDoji()
bullishEngulfing()
bearishEngulfing()
piercingLine()
darkCloudCover()
bullishHarami()
bearishHarami()
haramiCross()
tweezerTop()
tweezerBottom()
morningStar()
eveningStar()
threeWhiteSoldiers()
threeBlackCrows()
threeInsideUp()
threeInsideDown()
threeOutsideUp()
threeOutsideDown()
risingThreeMethods()
fallingThreeMethods()
strategy.json
{
  "configuration": {
    "timeframe": "1H"
  },
  "inputs": {
    "emaFast": "ema(close, 9)",
    "emaSlow": "ema(close, 21)",
    "rsiValue": "rsi(close, 14)"
  },
  "conditions": {
    "trendUp": "emaFast > emaSlow",
    "rsiHealthy": "rsiValue > 40 AND rsiValue < 65"
  },
  "score": {
    "trendUp": 20,
    "rsiHealthy": 30
  },
  "decision": {
    "entry": "score >= 40"
  }
}
Benchmarks

Execution performance at infrastructure scale.

Latency, throughput, and concurrency numbers for the Backtesting API. Measured on production infrastructure. All results are reproducible via the API.

~10ms
Daily timeframe
5 years BTC/USDC · 1D · ~1.2k candles
~260ms
15M timeframe
5 years BTC/USDC · 15M · ~119k candles
~1.3s
5M timeframe
5 years BTC/USDC · 5M · ~357k candles, the heaviest granularity
1,000+
Concurrent workflows
Horizontal scaling · no queue blocking

Execution time by timeframe · BTC/USDC · 5 years

1D
~5ms
4H
~34ms
2H
~51ms
1H
~67ms
30M
~104ms
15M
~262ms
5M
~1263ms

Benchmarks measured on production infrastructure using BTC/USDC data from Coinbase, warm data cache, maxOpenPositions: 1. One execution per timeframe. Results are reproducible via the API.

Rigorous by design.

The backtest engine enforces deterministic execution with a configurable risk model — no ambiguity, no lookahead bias.

1

Entry on close

Entries execute on the same candle close where the entry condition evaluates to true.

2

Configurable risk model

Stop-loss and take-profit are configurable per strategy (percent or ATR-based stop-loss; risk-reward or percent take-profit). Defaults to 1% stop-loss / 1:3 risk-reward. Results in R-units, not dollar amounts.

3

Signal exits

An optional decision.exit expression closes a position on signal, independent of stop-loss/take-profit. If both trigger on the same candle, stop-loss/take-profit wins.

4

Multiple positions

Every valid entry signal opens a new independent trade by default. Positions can coexist simultaneously — or cap concurrency with configuration.maxOpenPositions.

5

Fee simulation

Optional configuration.entryFeePct/exitFeePct simulate a per-leg exchange fee, converted into R-units using each trade's own stop distance. Results are net-of-fee by construction — a trade that's marginally profitable pre-fee can correctly flip to a loss.

6

Conservative ambiguity

If stop-loss and take-profit hit in the same candle, stop-loss is assumed to trigger first.

7

No lookahead bias

Strict enforcement: all calculations use only past or current candle data. Randomness forbidden.

8

Strategy diagnostics

Condition frequency and score distribution tracked per candle for deep strategy quality analysis.

Pricing

Infrastructure Plans for Quantitative Research

Monthly execution capacity, renewed automatically. Start free, upgrade as your research scales.

Free

$0

  • 5 execution units / month
  • 1 concurrent live subscriptions

Try the platform before committing — a handful of backtests to see it work.

Typical for

  • Validating the platform before committing
  • One-off exploratory tests
Start Free

Explorer

$9.90/mo

  • 100 execution units / month
  • 3 concurrent live subscriptions

Exploratory research, workflow development, and initial backtesting.

Typical for

  • Single-pair or focused-pair studies
  • Strategy prototyping and exploratory development
  • Shallow to mid-depth historical backtests
Subscribe

Research

$29.90/mo

  • 500 execution units / month
  • 10 concurrent live subscriptions

Production capacity for systematic multi-pair backtesting and strategy iteration.

Typical for

  • Systematic multi-pair backtesting
  • Strategy iteration and parameter sensitivity testing
  • Extensive historical depth across asset classes
Subscribe

Institutional

$99.90/mo

  • 2,500 execution units / month
  • 25 concurrent live subscriptions

High-volume capacity for research teams running continuous, large-scale backtesting operations.

Typical for

  • High-volume backtesting across a full research cycle
  • Broad pair coverage with deep historical data
  • Continuous, ongoing research operations
Subscribe

All plans include API, Console, and Documentation access, plus all three MCP servers (backtest-mcp, live-mcp, strategy-mcp) for AI agent workflows.

Need more mid-cycle? Buy top-up capacity anytime — it never expires and is spent only after your monthly plan allowance runs out.

Enterprise Agreements

Custom infrastructure agreements for large-scale quantitative workloads.

Contact Sales

Infrastructure usage is calculated proportionally to processed market data workloads. Consumption details available in the documentation.

Infrastructure FAQ

How is infrastructure usage calculated?

Usage is calculated proportionally to processed market workloads, including asset count, timeframe resolution, and execution range.

How do I get access to the platform?

Create an account at the console to get immediate access to the Backtesting API, documentation, and included starter execution capacity.

Where the infrastructure is going.

The Backtesting API is the first module. The vision is a complete quantitative infrastructure stack.

Current

Backtesting API

Server-side backtest execution. DSL strategy system. Long/short direction and signal-based exits. JSON API. Metrics and diagnostics. Pay-as-you-go pricing.

Current

MCP Server

Hosted Model Context Protocol server at mcp.backtest.emidlabs.com. Connect any MCP-compatible AI agent directly — submit backtests, read results, and discover available assets, no custom integration.

Beta

Live Execution API

Subscribe a validated strategy to live market data and get a signal the moment its entry or exit condition fires on a real, closed candle. Same DSL and evaluation engine as the Backtesting API.

Future

Signal Infrastructure

Programmable signal generation, distribution, and processing. Build signal pipelines as composable infrastructure.

Future

Quantitative Infrastructure Expansion

New markets, new datasets, portfolio management, multi-strategy orchestration, and automated quantitative pipelines.

Start building quantitative infrastructure.

Open the console. Run your first backtest in minutes — no environment to set up.

Or view Benchmarks