Algorithmic Trading Research Log: How to Build in Public Without Hiding Failed Results

Daniel Ratke
Research & Engineering

Term map
Backtesting vocabulary for this article
Treat signal timestamp, point-in-time universe, quote-aware fill, reject reason, replay artifact, walk-forward test, and cache key as first-class terms. They separate reproducible research from a backtest that only preserves the final performance table.
Follow the linked definitions for Point-in-time contracts, Quote-aware fills, Reject reasons, Replay artifact, Cache key, Signal timestamp, Look-ahead leakage, Walk-forward test, Slippage model, Same-bar fill, Promotion gate, and Options data API.
Repository reference: cutebacktests
Abstract
An algorithmic trading research log becomes valuable when it records changing conclusions rather than only attractive ideas. That is the main reason this repository has become more useful over the last two months. The project collected more than survivors. It also made the simulator harsher, narrowed the strategy map, and published why several branches were closed.
The clearest evidence for that claim is the sequence of documents already in the repo: Backtesting Framework Issue Summary, ORB Framework Audit, Toward The One Piece Of Sharpe, and the Series Index. Together they show a research log changing its mind in public as the evidence changes.
For a more technical reading, connect the log to Backtesting Robustness, Backtesting Data Model, and Paper Trading Bot Backtest Parity Runbook. A credible build-in-public record should preserve signal timestamp, entry timestamp, fill policy, reject reason, Sharpe, Sortino, DSR, PBO, drawdown, walk-forward split, and promotion-gate terminology so readers can audit why a branch moved forward or died.
Question
The practical question is not how to publish more content. It is how to publish research in a way that becomes more trustworthy over time.
For trading, that usually means doing the opposite of what marketing encourages. It means publishing bug-fix audits, strategy mismatches, zero-trade branches, and near-misses that still failed admission. Without those pieces, the research log becomes a highlight reel.
Method: What an Algorithmic Trading Research Log Should Contain
The most credible research log in this domain usually contains five elements:
- framework changes that alter the meaning of prior results, such as the March 8 audit with five patched issues and
91targeted passing tests - strategic pivots, including the move in Episode 5 from broad frontier search toward portfolio thinking under
framework_sound_strategy_mismatch - negative results, especially the Episode 7 failed branches with named blockers,
0-trade lanes, and the LFCM catalyst lane that still found0valid catalyst days after the data path was repaired - near-misses that were not flattened into victory or failure, such as c36 and c4
- current status, with
PAPER_BOTS.mdand the portfolio roadmap namingc66as the lead paper bot, keeping c36 as backup, and leaving QQQ dispersion as research-only
Evidence / Results
This repo already provides a good public-build skeleton:
- framework realism audit on March 8
- ORB family audit on March 10
- pivot from broad frontier search to portfolio assembly
- failure-week cemetery for c23, c26, c29, c30, c32, c37, and LFCM
- explicit paper-bot ladder led by c66
That sequence shows causal learning. The simulator got stricter, the survivors became easier to see, and the portfolio objective got clearer.
What Worked
What worked was treating negative information as central. The artifacts show what changed, what failed, and what stayed uncertain.
The other thing that worked was specific evidence. The log does more than say c66 is the best branch. It gives base 19.18%, stress-medium 16.70%, stress-harsh 15.56%, and 76 out-of-sample trades. It does more than say broad ORB weakened. It names the narrow surviving pocket and the broad lanes that did not hold up.
What Failed
What failed was the idea that credibility comes from certainty. The repo got more credible when it became more selective and more explicit about what died. Several broad or intuitive ideas stopped surviving. The public story improved when those losses were written down.
That is an important negative lesson because many build-in-public trading projects undermine themselves by narrating confidence while hiding reversals. A real research log should sound more precise over time, more than enthusiastic.
Takeaway
An algorithmic trading research log becomes worth following when it records the dead ends, the audits, the pivots, and the surviving branches in one place. This repository is increasingly valuable for exactly that reason. It is accumulating evidence about which ideas deserve less attention, more than stacking new ideas.
If you want the portfolio-level outcome of that process, Building a Portfolio of Trading Models: Why One Good Backtest Is Not Enough and The One Piece of Sharpe: What Months of Intraday Options Backtesting Actually Taught Us are the next two reads. Join the research log to get the next backtest and failure report.
How the terminology applies
For Algorithmic Trading Research Log: How to Build in Public Without Hiding Failed Results, the backtesting workflow should treat Point-in-time contracts, Quote-aware fills, Reject reasons, Replay artifact, Cache key, and Signal timestamp as operational state rather than glossary decoration. That framing keeps the research claim causal: the strategy can only select instruments, prices, and labels that existed at the decision time.
A developer implementing this Research Log idea should persist Look-ahead leakage, Walk-forward test, Slippage model, Same-bar fill, Promotion gate, and Options data API beside the result, instead of leaving those words in a term card. It also turns attractive performance into an auditable record where fills, skips, thresholds, and replay inputs can be challenged independently.
The review artifact for Algorithmic Trading Research Log: How to Build in Public Without Hiding Failed Results becomes more useful when OPRA-originating data, OCC option symbol, Bid/ask spread, Midpoint, Quote/trade condition, and Quote vs trade semantics appear in the same body of evidence as the selected rows. When a result is promoted, these fields should appear in the run manifest, rather than a prose summary or final equity curve.
In production notes for this backtesting workflow, REST snapshot, WebSocket stream, Entitlement gate, Quote freshness, Timestamp semantics, and Pagination cursor define the checks that decide whether the workflow is reproducible. The result is a backtest that can be rerun, compared across threshold families, and rejected when the evidence is not strong enough.
For Algorithmic Trading Research Log: How to Build in Public Without Hiding Failed Results, the practical acceptance test is simple: another developer should be able to read the body, identify the exact inputs, reproduce the request sequence, and explain the accepted and rejected rows without relying on the bottom terminology grid. If a phrase appears in the page vocabulary, it should correspond to a stored field, a validation check, a replay step, or an implementation decision in the backtesting workflow.
This is also the reason the article should not measure success only by the final chart, table, or headline metric. The better standard is whether the data path, timing model, entitlement state, and evidence trail survive review. When those pieces are written directly into the body, the terminology becomes part of the workflow readers can implement.
Public logs should expose the data contract
Build-in-public research works only if the public artifact names the data contract behind each claim. A useful log entry should include dataset, endpoint family, symbol universe, schema version, contract symbology rule, market session, backfill window, and response envelope fields. When the work uses options, it should also name the OCC option symbol, NBBO quote, trade condition filters, quote condition filters, open interest, implied volatility, and side-specific fill policy.
That does not mean publishing every raw row. It means publishing enough structure for readers to know whether the result came from tick-level trades, top-of-book quotes, OHLCV aggregate bars, or a chain snapshot. A result built from aggregate bars should not be described like a quote-aware execution test. A result with delayed-source data should not be described like a realtime monitor.
The research log should also preserve failure mechanics. If a run died because the rate-limit budget was too tight, a pagination cursor was incomplete, or a cache key crossed incompatible inputs, say that. Those details make the next iteration sharper and keep the public series from turning every update into a performance anecdote.
Terminology
Market-data terms used in this article
These terms keep the article connected to the CuteMarkets knowledge base and to the exact API workflow behind the research.
Point-in-time contracts
Contract discovery anchored to the research date so a backtest does not use future listings.
Quote-aware fills
Entry and exit assumptions based on bid/ask quotes, quote age, spread width, and side-specific fill rules.
Reject reasons
Logged explanations for skipped contracts or fills, including stale quote, wide spread, no bid, or missing data.
Replay artifact
The saved request, selection, fill, reject, and metric record that lets another developer audit the backtest.
Cache key
The structured identifier that keeps provider, endpoint, ticker, timestamp, plan, and schema state from being mixed.
Signal timestamp
The exact time a strategy made a decision, used to reconstruct the visible universe and quote window causally.
Look-ahead leakage
A research error where a fill, contract, indicator, or label uses information unavailable at decision time.
Walk-forward test
A validation method that repeatedly trains and evaluates across separated time windows instead of trusting one optimized sample.
Slippage model
A fill-cost assumption based on bid/ask side, midpoint, spread percent, quote age, and liquidity policy.
Same-bar fill
An intraday backtest assumption that can become invalid when signal, entry, stop, and target ordering is ambiguous.
Promotion gate
The written threshold that decides whether a research candidate can move into paper trading or production monitoring.
Options data API
The product surface for chains, contracts, quotes, trades, aggregates, Greeks, IV, open interest, and expirations.
OPRA-originating data
The U.S. listed-options source context behind quotes, trades, exchange participation, and consolidated option-market records.
OCC option symbol
The exact option contract identifier that preserves root, expiration, call or put side, and strike.
Bid/ask spread
The execution interval between bid and ask that determines whether a contract is realistically tradable.
Midpoint
The computed center between bid and ask, useful as a reference price but not proof that an order would fill.
Quote/trade condition
The condition-code, exchange, correction, sequence, and timestamp context that explains how a quote or trade row can be used.
Quote vs trade semantics
The distinction between executable bid/ask markets, printed transactions, and bar-level summaries.
REST snapshot
A reproducible request for current or historical market state, used for initialization, backfills, and audit logs.
WebSocket stream
A persistent live connection that needs subscription topics, reconnect tracking, freshness labels, and REST repair paths.
Entitlement gate
The product, plan, quote, live, delayed, historical, or commercial-use boundary checked before data is shown.
Quote freshness
The age, timestamp, and live or delayed state of a bid/ask record before it is used in a scanner, backtest, or UI.
Timestamp semantics
The exchange, provider, ingestion, session, and application time context attached to a market-data record.
Pagination cursor
The continuation token or next URL that keeps large chains, trades, quotes, and historical windows complete.

Written by
Daniel Ratke
Research & Engineering
Daniel covers the deeper research notes: options backtesting, execution realism, robustness testing, data engineering, and strategy validation.
Product links
Build the workflow with CuteMarkets
This article is part of the broader CuteMarkets product and research stack. Use the landing pages below to move from the blog into the specific API workflow you want to evaluate.
Beginner options path
Send newcomers to the beginner path for calls, puts, chains, Greeks, IV, and risk.
Options Data API
See the main options overview for real-time and historical options data.
Historical Options Data API
Inspect the historical contracts, quotes, trades, and aggregates workflow.
Options Chain API
Go straight to chain snapshots, expirations, and strike discovery.
Pricing
Review plans before you move from free evaluation into production usage.