FAQ · Finding a tool for a specific need

Can Reamer Research backtest tick, volume or dollar bars?

Yes. Reamer Research takes bars of any type: time, tick, volume, dollar, imbalance or your own custom rule. You build the bars and the engine treats every type the same way. Each bar's real trade count can drive its fills, and instruments sampled at different moments can share one portfolio.

Yes. Reamer Research takes bars of any type: time, tick, volume, dollar, imbalance or your own custom rule. OHLCV is the record format, not a limit on how a bar was built. You build the bars, and the engine treats every type the same way.

The harder question is whether a backtest stays correct once bars stop arriving on a clock. Accepting the file is the easy part. Two assumptions usually break.

What breaks when bars stop being time bars

Activity gets read from the clock. A simulator that walks through a bar often decides how much happened from the bar's length. On a dollar bar that is backwards. A bar that fills in seconds at the open can hold hundreds of trades, and one that takes half an hour at lunch can hold a few.

Instruments stop lining up. Two instruments with their own dollar bars almost never close at the same moment. An engine that wants every instrument on each step finds few steps, or none. One that forces them onto a fixed grid brings back the time sampling you built activity bars to avoid.

How Reamer Research handles them

  • One record for every bar type. Each bar holds a timestamp, open, high, low, close, volume, notional and tick count. Volume and notional are separate fields, so neither has to change meaning with the bar type.
  • The real trade count drives the fills. Inside each bar the engine walks a seeded synthetic tick path, and limit and stop orders fill on the first tick that qualifies. Supply tick_count and the path uses it as given: a dollar bar built from 40 trades gets 40 ticks, however long it took. Without it, the tick count comes from the time gap to the next bar.
  • Instruments do not need to line up. One wall clock runs the whole backtest, and every bar of every instrument is an event on it at its own timestamp. Your strategy runs the moment a bar closes. Instruments with a new bar at that moment are marked through window_valid, and the rest carry their last known state, so your strategy can tell a new price from an old one.
  • The same rules apply to every bar. Spread, slippage, commission, swap and margin work as they do on time bars, under the public execution specification. Fixed seeds still give byte-identical runs.

What stays your job

  • Building the bars. The engine does not turn ticks into bars. Buy and sell classification, threshold estimates and bucketing belong in your own pipeline or a vendor's tool.
  • Keeping the future out of them. A threshold estimated over the whole dataset leaks later data into earlier bars. The engine cannot see this, because it only receives finished bars.
  • Annualising the ratios. Bars at irregular intervals do not map to a calendar. Pass periods_per_year to reamer_get_summary() to set the convention for Sharpe and Sortino.

Pass finished bars as arrays from any language, or convert a CSV with bin/reamer-csv-build, which picks up notional and trade count columns. Timestamps are whole seconds, so each instrument can have one bar per second.

Order-book, high-frequency and options strategies are a different kind of engine. For anything built on bars, the rule that decides what a bar contains is yours. See Does it include market data?

Next questions

Does it include market data?No. Neither Reamer Research nor Reamer Server includes market data. For Reamer Research you bring your own bars of any type in OHLCV format, as arrays from any source or as memory-mapped files built from CSV, and equities must already be adjusted for splits and dividends. The engine checks that bars are well formed, not that the data is right. Reamer Server takes orders from your strategies, which get their prices from your own feed.What is Reamer Research?Reamer Research is a deterministic research engine for mid-frequency quants. It is a library with a stable C interface that you call from Python, C++ or any language that can call C, on your own machine. It tests a strategy, diagnoses it trade by trade, sweeps it, reports it, and sends its orders live to Reamer Server. The same data, settings and seed give byte-identical results every run. It costs $1,800 per seat per year, with a $225 30-day trial.What makes a backtest deterministic, and why does it matter?A backtest is deterministic when the same strategy, data, settings and seed give the same output, byte for byte, on every run. That requires fixed randomness, a guaranteed order of events, and nothing that depends on the clock, the machine or a previous run. It matters because every comparison depends on it: when the tool adds no variation of its own, any difference between two results comes from something you changed, and you can check what.Why don't my backtest results match live trading?Usually because the backtest assumed cheaper costs and easier fills than the market gives, used information that was not available at the time, or tested a slightly different strategy from the one that went live. Each cause can be found and closed before real money is at stake.

Every answer here restates the documents that ship in the kit, which are authoritative. All questions.

Buy a licence30-day trial or annual licence. Key and kit by email on payment.