Live Execution Is Off Until Somebody Turns It On
Trading in CVEST is paused. The service reads CVEST_LIVE_ENABLED from its environment and that variable defaults to false, so the live loop refuses to start and live orders are rejected before they are built. A workspace that has never been configured opens in paper mode, and a restart restores paper and replay to whatever they were running while live always comes back paused. The order of those defaults is the product’s opinion: the workflow is learned before it is funded.
That leaves a practical question. A paper run produces a cycle, a journal, fills, fees and a closed position. It looks like a record of trading. It is a record of one thing only — how the CVEST loop behaves under a chosen set of preferences — and it is worth being exact about where the resemblance to a live account stops.
Paper Substitutes One Step, Not The Workflow
Paper mode is not a separate program. It runs the same execution tick every five seconds, in the same process, against the same current OKX market data the live loop would use. The same scanner compares call credit spreads, put credit spreads, iron condors and iron butterflies against the same preferences. The same opening sequence acquires every protective contract before any short leg is sold, and refuses a short order that would exceed the confirmed protection. The same exit monitor evaluates take profit, loss, delta and trailing rules, and the same scheduled exit begins 60 minutes before expiry. Order intent is written down before an order is created, exactly as it is in live.
One step differs. When the loop reaches the point where a live cycle would hand an order to the exchange, a paper cycle marks the order filled in full, at its own limit price, in the same instant. That limit is the opposite side of the current book, rounded to the exchange tick band: the ask when buying, the bid when selling. The fee is estimated from the account’s own OKX taker tier when read-only credentials are present, and from a default rate when they are not. The interface labels the result honestly — the fees line reads as estimated simulation fees, and the track record panel is stamped with simulated fills.
What A Simulated Fill Does And Does Not Settle
Two real constraints survive into paper. The quote used to price an order must be no more than 30 seconds old, and the displayed size on that side of the book must cover the order, or the loop waits instead of filling. Entry pricing is re-checked against the scanned structure: if the tick-rounded limit is worse than the price the scanner used, the cycle stops and closes rather than paying up. Those are genuine rehearsals of waiting.
Everything between the intent and the confirmation is skipped. A paper fill never joins a queue, never partially fills, is never rejected, never waits on exchange latency, and never consumes the size it just traded against. It is a price the book was showing, not a price anyone transacted. Nothing about it establishes the fill a live order would have received, and a paper cycle’s closed cash flow is not a return that was available.
Settlement is closer to real and still not identical. A paper cycle at expiry waits for the official OKX settlement price of each instrument, as a live cycle does, but books estimated settlement fees and records the evidence as estimated. A live cycle refuses to book anything until it has the exchange’s own settlement bills.
The Checks Paper Never Runs
A set of preconditions exists only on the live path, and none of them can fail in paper — which means a paper cycle can open where a live cycle would decline. Resuming entries in live re-reads the account and refuses unless every readiness check passes. Opening a live position additionally requires a stable account identity, no existing position or resting order on any of the selected instruments, and available ETH worth at least the strategy reserve. Where a funded route is compared, it must be fresh, on the intended venue, and bound to the exact execution account. On another supported venue, execution is refused unless the account is named explicitly and the gateway certificate matches a configured SHA-256 pin.
Recovery differs too. If the service is interrupted mid-order, a live cycle reconciles the outstanding order against the exchange before anything else happens, and treats a partial entry as a reason to close. A paper cycle cancels the interrupted step and closes with a note that a simulation step was recovered. The reconciliation logic is therefore the one part of the workflow paper cannot rehearse.
Settings Worth Exercising Deliberately
The useful way to spend a paper run is not to watch a number; it is to move one preference at a time and see which rule starts binding. Preferences can only be saved when no cycle is active, which forces the discipline of changing one thing between cycles rather than mid-position. The defaults below are the shipped ones.
| Setting | Default | What a paper run shows | What it cannot show |
|---|---|---|---|
| Short delta target | 0.30 | How often a strike at that delta is approached, and how the monitor reads it | Whether that strike was sellable at the premium the scanner quoted |
| Take profit at | 0.50 captured | How long a cycle waits before the modeled cost of closing every leg reaches the target | The cost of actually buying back both legs at that moment |
| Loss exit | 0.50 of terminal loss estimate | Which breaches trigger, and how the estimate behaves as the short strike is approached | Whether a real exit would have filled near the price that triggered it |
| Confirm risk signal | 30 seconds | How many momentary breaches the confirmation window and its two-observation requirement absorb | How far the market moves during that window when the book is thin |
| Minimum risk-exit hold | 120 seconds | Whether freshly opened cycles are exiting on their own entry noise | The exposure carried during a hold that a live position could not close out of |
| Execution budget and type | $500, gross notional | Which structures the scanner rejects as too large, and when a rising spot stops a partial entry | Whether the account would have had the margin for the ones it accepted |
This table is a reading aid for deciding what to vary next. It is not a score, not a ranking of settings, and no row implies that one value is better than another.
Rehearse The Interruptions, Not Only The Entry
The entry is the easy part to watch. The parts that matter under pressure are the ones an operator reaches for when something is already uncomfortable, and every one of them is available in paper. Pausing entries stops new cycles and keeps managing the open one. Requesting a close pauses entries, marks the cycle closing, and exits the short legs before the protection is released. Time, profit and manual exits bypass the risk confirmation period; risk exits do not.
- Pause mid-cycle and confirm that management continues while entries stop.
- Request a manual close and watch the order in which the legs are unwound.
- Try to change preferences with a position open, and read the refusal.
- Try to switch modes with a position open; the selector is blocked until it settles.
- Let one cycle reach the scheduled exit window and another reach expiry and settlement.
Each mode keeps its own cycles, its own journal and its own cumulative loss allowance, and that allowance counts realized losing cycles across restarts without being replenished by gains. A paper track record therefore never leaks into a live one, and a paper loss never consumes live capacity. The separation is also a limitation: nothing learned in paper reduces what has to be re-verified live.
Record What The Simulation Cannot Tell You
CVEST records the mechanical side of a cycle without being asked. Every order carries its intent, its limit, its fills and its fees; the journal keeps the events in order; a scanner evaluation and a position monitor observation are written on a schedule, and every exit decision is written when it changes. That is the part a simulation can be trusted on, because it is describing its own behaviour rather than the market’s response.
The other half has to be written down by the person running it, because the software has no way to produce it. How long did a breach sit at the edge of the confirmation window before it resolved? How wide was the spread on the leg the exit had to buy back? How much displayed size stood behind the quote the fill was priced from? Would the decision have been the same with real money at stake rather than a simulated portfolio? A paper run answers none of those, and they are the questions that decide whether the preferences are usable.
A simulated fill is evidence about software, not evidence about a market.
First Steps
- Run the defaults untouched through several complete cycles, including a scheduled exit and an expiry settlement, and read the journal in order rather than the closing figure.
- Change exactly one preference between cycles — the short delta target, then the confirmation window, then the budget type — and note which rule started binding as a result.
- Beside each closed cycle, record the spread, the displayed size and the delay that the simulation assumed away, as the list of things that must be re-verified before any live order.
Rehearsal First, Then A Separate Decision
Paper mode is worth running because the CVEST workflow has opinions that are easier to feel than to read: protection is acquired before exposure, short legs close before protection is released, preferences are locked while a position is open, and a risk exit has to survive a confirmation window and two distinct observations before it acts. Those are learned cheaply, and once learned they transfer.
The numbers do not transfer. Live execution is a separate decision that stays gated behind an explicit service flag, a readiness check against the real account, a named account identity and, on the venue that requires it, a verified certificate pin. None of those gates is opened by a satisfying paper result, and today none of them is open at all. The honest use of a rehearsal is to arrive at that decision knowing what the workflow does and holding a written list of everything the rehearsal could not answer.
Read the risk information and check the current product scope before evaluating a workflow.
