The Loop Is Slow In The Places That Matter
The execution tick is five seconds and runs in-process, which sounds fast until you try to learn something from it. The states worth understanding — a structure qualifying where others are rejected, a breach confirming rather than passing, protection released only once the short legs are closed — sit minutes or hours apart and arrive without announcement. Watch a paper session in real time and you mostly watch the idle parts.
Fast replay exists for that problem. It is the third execution mode beside paper and live, and it runs the same engine against a market the software invents. Selecting it writes a line into the journal saying exactly that: a synthetic market, virtual time advancing ten minutes per tick, results that are a software demonstration.
What The Generator Produces
Replay prices are a function of the tick counter and nothing else. Spot starts at 2400 and moves in epochs of twenty-four ticks, which is four hours of virtual time each: one epoch drifts upward by as much as 150, the next oscillates within about eight dollars of the base, and the two alternate for as long as you run it. The path is deterministic. The same tick count gives the same price every time.
The chain is built around it. Strikes run from 2200 to 2750 in 50-dollar steps, calls and puts, across three expiry cycles at a time with expiries four hours apart. Each mark is intrinsic value plus a time term that decays with the square root of the hours remaining and falls away with distance from spot. Delta comes from a logistic curve. Implied volatility is the constant 0.45 for every contract at every step. Bid and ask are the mark rounded outward to the 0.0001 tick, so spreads are one or two ticks wide, and each side of the book carries twenty contracts.
Instruments carry a replay prefix and the market is stamped with a replay source, so no generated contract can be mistaken for an OKX one. The consequences are not subtle. Implied volatility never moves, the spread never widens, depth never thins, and a shock never arrives, because nothing in the generator can produce one.
It Is Not A Backtest And Cannot Become One
The word backtest appears here only to be denied. A backtest replays observations that were recorded; replay generates observations that never existed anywhere. No part of it is drawn from a market: no historical order book, no observed trade, no recorded chain, no moment being reconstructed. A completed replay cycle establishes nothing about what happened in any market and nothing about what will.
The limit applies backwards too. Old trades cannot acquire option-chain observations that were never recorded at the time, and replay does not repair that. It would fill the gap with invented prices, which is worse than leaving the gap visible where a later review can see it.
A replay figure is an output of the price generator, not a measurement. It is evidence about the software and about nothing else.
The Clock Is Where The Distortion Lives
One tick is five seconds of real time and ten minutes of virtual time, so every rule measured in time collapses. The 30-second exit confirmation window and the 120-second minimum hold are both cleared by a single tick. The 15-minute cooldown between cycles is a tick and a half. The scheduled exit 60 minutes before expiry is six ticks, and the whole four-hour expiry cycle is twenty-four.
Waiting behaviour is therefore not reproduced. What does survive compression is the count, not the duration: a confirmed risk exit still requires at least two distinct observations of the same breach, because that half of the test counts observations rather than seconds. In replay you see two ticks. At the same settings in paper or live you would see the same two observations plus thirty seconds of real waiting. The rule is identical; the experience of living through it is not, and that difference is the one most likely to be mistaken for a property of the strategy.
Two smaller clock facts matter. The freshness guards that refuse to act on a stale book are waived for a replay market, since a generated quote is stamped with the virtual moment it was generated for. And the virtual clock advances only while the loop is running or a position is open, so an idle replay workspace holds still; the step counter and the time origin are both stored, and the demonstration resumes where it stopped rather than starting over.
Fills Are Granted, Not Obtained
Outside live mode an order is created and marked filled in the same pass, for the full quantity, at the limit price the engine has just computed, with a fee derived from the taker rate. There is no queue, no rejection, no partial fill and no order left unfilled until the reason for placing it has gone. The fill identifier carries a paper prefix, so the record is legible as what it is.
Hold onto that while watching an exit. Exit rules attempt to close with limit orders. In a real book quotes move between the decision and the order, liquidity can disappear, and an order can fill partially or not at all. Replay shows none of this, and not because it is concealing it: the generator pins twenty contracts to each side of the book and stamps every quote with the current virtual time, so the two refusals a real session genuinely produces — a stale book, and insufficient size at the top of it — cannot fire.
Expiry works the same way. A replay position still held at expiry is settled against the generator’s own spot and recorded as a simulated settlement, in place of the exchange settlement bills that a live cycle waits for before any cash is booked.
Transitions Worth Stopping On
The table is a reading aid for a replay session, not a score and not a checklist. The middle column is what the mode is for. The right column is what it is silent about, which is the column that matters when you leave.
| Transition | What replay reproduces | What it stays silent about |
|---|---|---|
| Scan to eligible candidate | The filters that reject a structure and the count that survives them | Whether a rejected structure was executable in a real book |
| Candidate to entry | Protection bought before premium is sold, checked leg by leg | Entry pricing moving away between one leg and the next |
| Entry to open position | The recorded entry cash flow, and that premium is not realized profit | The credit an actual book would have paid for it |
| Open to closing | Which rule fired, and the confirmation of a sustained breach | How long that confirmation takes when seconds are real |
| Closing to settled | Short legs closing before protective contracts are released | Whether those closing orders would fill, or fill in full |
| Settled to next entry | The cooldown gate and the cumulative loss allowance pausing the loop | Anything at all about the size of the realized numbers |
One detail changes what you will actually see. The delta exit and the trailing giveback are both switched off at their defaults, since each is gated by a threshold that defaults to zero. In a default replay session the rules that fire are the premium capture target, the loss threshold and the scheduled exit before settlement. If you want to watch the other two, enable them deliberately and know that you changed the policy.
Taking The Lesson Without Taking The Number
The records keep replay separate by construction. Every cycle, journal event and observation carries its mode and is read back by mode, so a replay portfolio never merges into the paper or live one. The research export is per mode and states that it never combines simulated outcomes with live labels. Each observation stores two times: the event time, virtual in replay, and the observed time, the real moment the row was written. The divergence is in the record, not in a caveat attached to it.
What is worth carrying out is a question, not a figure. Run the loop until you can name the state the workspace is in and the rule that will move it next. Then open a paper or live record and ask the same question of evidence that was actually observed: which quote, at which time, under which recorded settings, and what the venue returned. Replay makes the vocabulary familiar. The evidence still has to come from somewhere it was observed.
Some things are unavailable here. Venue route comparison uses live markets and is disabled while the mode is replay; the panel says so rather than showing a synthetic comparison. Automated live execution is paused in any case, since the live flag defaults to off in the service environment. Paper and replay both run without it.
First Steps
- Switch to fast replay with no position open — the mode change is refused while a cycle is active — and read the banner and the journal line it writes before starting anything.
- Start the loop and follow one cycle end to end, stopping at each transition in the table to name the rule that moved it; the virtual clock advances while the loop is running or a cycle is open, so pausing with no position holds the state still.
- Return to paper mode and find the same states in records that were actually observed, then write down which of your replay conclusions survived the change of evidence.
What It Is Good For
Replay does one thing and does it well: it makes an automated loop legible in an afternoon instead of a month. The mechanism on display is real code — the same scanner, the same exit evaluation, the same protection checks, the same journal — driven by a market that is not real.
So treat every number on the screen as an artifact of the generator, because that is what it is. Carry the sequence, the vocabulary and the questions into a session with real observations behind it. Leave the results in the replay portfolio, where the software already keeps them apart.
Read the risk information and check the current product scope before evaluating a workflow.
