Research SDK Products

Quantitative research infrastructure for systematic trading desks.

A C++ execution core and Python strategy API verified against a formal execution spec — local, deterministic, and built to defend a research process under real scrutiny.

Every fill is priced by a published execution spec and checked against a 267-check conformance suite.

From on_bar to a reproducible result.

Python strategy on_bar
Backtest engine synthetic ticks · order matching · fills
DefaultExecutionModel commission · slippage · spread · swap
Portfolio timeline multi-asset, union alignment
BacktestResult
Metrics / console report Monte Carlo bootstrap equity curves export_html_report() save_result()→ .reamer file

Every fill on the way to that result is priced by the same published execution spec the 267-check conformance suite verifies against.

The execution core itself runs single-threaded by design — on_bar calls into multi-threaded or GPU-accelerated model code exactly as it would in any other Python script.

Everything the loop needs. Nothing it doesn't.

Implementation
01

Python Research SDK

Write strategies in ordinary Python. NumPy, Pandas, AI-generated code — everything works naturally, without learning a proprietary language.

02

Connect Any Data Source

Pull bars straight from whatever you already run — a database, an internal service, a feed like kdb+ — and hand them directly to a backtest, no file ever written to disk. A data loader is a plain function that fetches bars and calls one of two functions: write them to a reusable local file, or pass them straight into the backtest run. The Connectors SDK Guide walks through four complete, copy-and-adapt implementations — Databento, Alpaca, Massive.com (Polygon.io), and Parquet — full code inline, not a bundled feature, plus the direct database-to-backtest pattern above. A custom loader for your own source is deliberately simple to write, not something you wait on us to support. Read the Connectors SDK Guide →

Scope
01

Exogenous Data

Attach arbitrary JSON to any timestamp — earnings, macro releases, sentiment, anything your research depends on — resolved to the latest value actually known as of that bar, so a strategy can never see a fact before it happened.

02

Multi-Asset Portfolio

Run one strategy across dozens of instruments with synchronized timelines and a single portfolio equity curve.

Execution Model
01

Monte Carlo

Risk-of-ruin, drawdown percentiles, probability-of-loss — computed from bootstrapped equity curves over actual trade returns.

02

Deterministic Synthetic Ticks

Same seed, same intra-bar tick path, every run — including which side of a same-bar bracket collision fires first.

03

Full Execution Cost Model

Commission, slippage, spread, and swap all modeled explicitly by DefaultExecutionModelConfig, not assumed.

A complete strategy, start to result.

#include "reamer_research_abi.h"

ReamerResearchStrategyVtable strategy = {
    .user_data = NULL,
    .on_bar = on_bar_callback
};

ReamerBacktestHandle result = NULL;
ReamerResearchStatus status = reamer_research_run_backtest(
    &bars_by_ticker, bar_counts, ticker_ids, ticker_count,
    &strategy, &exec_config,
    initial_capital, leverage);

if (status == REAMER_RESEARCH_SUCCESS) {
    ReamerBacktestSummary summary;
    reamer_research_get_summary(result, &summary);
    printf("Net PnL: %.2f\n", summary.net_pnl);
    reamer_research_free_result(result);
}

Real, runnable code — trimmed from the full quickstart, which also covers execution config, save_result(), and the HTML report.

Scope and fit.

Designed for: mid-frequency OHLCV strategies — intraday to multi-day holding periods, across forex/CFD, futures, and equities. See the docs for full scope details.
Not designed for: order-book and options strategies — no L2/L3 depth data or real tick data for high-frequency/order-book strategies, and no implied vol, Greeks, or exercise/assignment modeling for options.

Per-seat, perpetual licenses.

No subscription, no forced renewal, no self-serve checkout. A one-time payment covers unlimited use on one machine forever, with free updates to every Reamer product indefinitely — no version scoping, no renewal required. Contact us for pricing, multi-seat/invoicing terms, or a free time-limited test license to evaluate reamer_research first.