QuantProp. Analyze a trade file ↗
research / article

Flat opens.
Real cost arithmetic.

A synthetic execution-cost demonstration with manufactured prices. These results describe software accounting, not a trading opportunity.

QUANTPROP EDITORIAL  /  UPDATED 2026-10-27  /  EDUCATIONAL

What we tested

We preregistered one fixed experiment before running it once on 27 October 2026. The question was whether repeated next-open fills at an unchanged reference price could still reduce account equity after costs. This is an educational accounting fixture. It contains no observed stock, cryptocurrency or broker data, and it is not evidence that a market strategy works or fails.

The manufactured data and fixed design

The fixture has 240 daily UTC rows starting on 1 January 2025. Every open is 100, high 101, low 99 and volume 1,000; closes alternate between 100.5 on even-numbered rows (starting at zero) and 99.5 on odd-numbered rows. A three-close arithmetic moving average with zero threshold sets a long target when the close is above that average. A target becomes executable only at the following open. The chronological split uses 156 training rows and 84 validation rows, with each account starting flat at 10,000 units. Each entry allocates 95% of available cash, allows fractional units and charges costs on both entry and exit. A remaining position is closed at the final manufactured close of 99.5; terminal liquidation therefore also contributes price loss.

Costs and independent arithmetic

The base scenario charges a 10-basis-point fee and 5-basis-point slippage on each side, with no sell tax. These are illustrative inputs, not current broker rates. For one ordinary round trip at a reference open of 100 on both sides, quantity equals 9,500 divided by (100 times 1.0005 times 1.001). Sale proceeds equal that quantity times 100 times 0.9995 times 0.999. The resulting loss is 28.46 units on a 10,000-unit account. Slippage changes fill prices; the separate fees-and-tax field does not include slippage.

All preregistered scenarios

Training: 77 completed trades and a net account return of -20.0840%. Validation: 42 trades and -11.7019%. Higher-slippage validation: 42 trades and -18.4729%, with slippage increased from 5 to 15 basis points on each side while the fee stays at 10 basis points. All three scenarios are reported. The train and validation periods differ in length and are not directly comparable performance estimates. The only controlled cost comparison is validation against higher-slippage validation on the same rows.

What the result means

Repeated costs reduced account value in this manufactured sequence, and greater assumed slippage made the same validation sequence worse. The screen was rejected. A loss in a designed fixture says nothing about the existence of profitable strategies in actual markets. Synthetic training and validation labels are software partitions, not independent empirical confirmation. The fixture omits market impact, partial fills, queue priority, funding, leverage, taxes and corporate actions. No confidence interval, live track record, recommended trade or prop-evaluation outcome is claimed.

Reproduction and publication boundary

The private immutable run identifier is SYNTHETIC-COST-DEMO-20261027-001. The UTF-8 CSV SHA-256 is 438a56a8ff1002a77ea30c95ce246c782c2e4d236701c588eaa5173eda22fd3a. The fixture generator and one-run preregistration are preserved in scripts/run_cost_fixture.py in the local project, with a fixed seed of 23 and 100 block-bootstrap paths per scenario; bootstrap outputs are not presented as market evidence. The public text was checked against the completed ledger hash. No legacy research file, market-data row, proprietary candidate or strategy discovery was used in this article.