First time on the top traders desk?

The desk runs its own numbers and publishes its calls next to the account that trades them. The short route:

toptraders · cross-lab v2 · algorithm report

smacross 4h, long and short — works in every phase

xl-smacross-4h-ls · 4h bar · window 2020-09-01 to 2026-08-13 · 548 instruments · book $1m

Leverage 1.0: it cannot lose more than the book. There is no hedge. It shorts, and funding accrues its way.

total
+47%
annualised
+6.7%
drawdown
-15.5%
sharpe
0.62
trades
7112
profitable
53%

1. What it does

2. The two constraints

Leverage 1.0 and no hedge: it cannot lose more than the book on any price move.

Both sides are never open on one instrument at once; a share of the book holds one position at a time. The short side accrues funding its way, and that is in every number above.

The equity curve

1001201401602020-09-012026-08-13book, % of startthe rule

3. The nulls

Every number above is quoted against a distribution, not an average. p95 means five per cent of the random runs came out better than that level. A rule that sits inside the cloud has proved nothing.

compared againstrunsthe rulecontrol mediancontrol p95verdict
the rule+47%
random entry200+47%+0%+9%beats p95
relabelled instruments200+47%+6%+10%beats p95
filter reshuffled60+47%+13%+24%beats p95
random entry inside the accumulation phase60+25%-1%+6%beats p95
alt index: hold the whole list+47%-18%the rule is ahead
BTC buy and hold+47%+432%beats the rule

Each control prints its number of runs: a p95 without its n is not a band but a single number of unknown precision. The relabelling takes ONE fixed permutation per run and holds it for the whole window; reshuffling on every bar would pay turnover the real book never pays and would understate the control.

random entry
the rule +47%p95 +9%-9%+47%
relabelled instruments
the rule +47%p95 +10%-0%+47%

The own-phase null is measured on that phase, not the whole window: comparing a phase result with the noise total would compare three years with one.

4. What it traded

The instrument list is rebuilt quarterly by dollar turnover, with no survivor selection: a name that was large and died is traded in the quarter where it stood at the top. Instruments measured: 548. Trades in the window: 7112, trades started before it: 0.

Never touched: names the desk does not trade, leveraged tokens, and anything past a seam in the series — past a seam it is a different instrument.

5. The timing audit

Verdict: clean. Trades checked: 100 of 7112. Mismatches: 0.

A clean audit proves the absence of look-ahead AND NOTHING ELSE. It does not say the rule works, that it will keep working, or that the costs are right.

DSR and the trial count

valuenumber
DSR0.007
threshold0.50
trials in total17046
annual sharpe0.62
expected maximum of the noise1.64

The rest of the metrics

The six tiles above are a headline, not the set. Here it is in full, including the tail check: the share of the best three trades and the total without them. One without the other reads wrong in both directions.

valuenumber
sortino0.92
calmar0.43
pf1.29
recovery3.02
stagnation, days767
time in market+14%
median trade+1.0%
median trade in R0.307
mean trade in R0.508
win to loss1.13
losses in a row23
best month+8.1%
worst month-13.3%
positive months+56%
share of the best three trades+8.7%
total without the best three+11282%

Distribution of trades in R

R is how many units of risk a closed trade returned. The passport carries percentiles, not buckets, so percentiles are what stands here: a histogram off five numbers would draw a shape nobody measured.

pointR
p5-8.22
p25-2.58
p500.31
p753.48
p959.17
worst trade-57.05
mean loss-3.95
mean win4.45
best trade89.72

The rules in full

The field and what it means. Thresholds, windows and multipliers are not here: an algorithm is reproduced from those, and the desk does not print them. The bot reads them from an internal file on its own machine.

fieldwhat it means
timeframe4h bar; decided at the close, filled at the next open
entryprice crosses a moving average whose slope points the same way
sidelong and short
filtershort-window volatility is above long-window volatility — the market speeds up rather than fading out
exiton time: the position is held a fixed number of bars and closed on the next open
exit checka bar counter from the entry
exit fillthe close of the exit bar — the engine fills there, not at the next open
intrabar stopno: only closes trigger, otherwise the test would see a price the decision did not have
trailingnone
averaging downnone
position % of equityequal shares: the book is split across the instrument list and each share compounds inside itself
simultaneous positionsone per instrument on the list; a share holds one position at a time
instrument lista per-bar basket ranked quarterly by dollar turnover; names measured: 548
excludednames the desk does not trade; leveraged tokens; the series is cut at seams, and return is never computed across a seam
window and why2020-09-01 to 2026-08-13; each bar has its own window and it is printed, not generalised
costs0.1% per side: perp taker plus slippage; funding always accrues, the long pays and the short receives
leverage / short / hedge1.0 / yes / no
enginethe same file runs the backtest and the bot's book

Returns by year

The years come from the same months as the grid below. A partial year carries its month range. The controls have no monthly series in the artefact — only their window total is printed, and the desk will not invent yearly numbers for them.

yeartotal
2020 (09-12)-1.9%
2021+39.5%
2022+5.7%
2023-0.2%
2024-2.3%
2025+8.5%
2026 (01-08)-4.0%
BTC buy and hold, whole window+431.9%
alt index, whole window-18.2%

The shape of the result

The four figures below are drawn from the same published values as the tables: the monthly grid, the drawdown, the windowed sharpe and the trades in R. No rule settings are in them.

By month

01020304050607080910111220202021+82022-132023202420252026

The sign of the month is the colour, the size is the saturation.

Drawdown over time

-15%-10%-5%0%2020-09-012026-08-13

How long the book sat below its own peak. More honest than the single worst-drawdown number: both the depth and the length are visible.

Sharpe over a rolling six-month window

-20242021-022026-08

One window for every desk report. It shows whether the sharpe was bought by a single lucky stretch.

Trades in units of risk

p5-8.22p25-2.58p500.31p753.48p959.17five measured percentiles, not a histogram

The halves of the window

spantotalannualiseddrawdownsharpetradesprofitable
2020-09-01..2023-08-23+38%+11.4%-15.5%0.833274+54%
2023-08-23..2026-08-13+6%+2.1%-11.9%0.303838+52%
the tuning part+43%0.75
the check part+2%0.20

Cycle phases

An algorithm is not required to work in every phase. Its best phase is in the headline; the statistics outside that phase are printed too, and the drawdown outside it is part of the passport, not a footnote.

phasedaysshare of timetotalannualisedsharpedrawdown
bull116454%+19.5%+5.7%0.54-8.3%
bear60528%-1.8%-1.1%-0.04-14.8%
accumulation40319%+25.1%+22.5%1.72-4.8%

Costs and funding

runtotalsharpedifference from the base
x0 of the fee+53%0.67+6.4%
x2 of the fee+41%0.56-5.9%
x3 of the fee+35%0.51-11.5%
funding switched off+50%0.64-3.2%

On $1m

total
+47%
sharpe
0.62
orders that did not fit
0
0%20%40%60%80%100%$250k$500k$1m$2m$4msharpetotal% of the paper run
booktotalsharpedrawdowntradesorders that did not fitshare skipped
on paper+47%0.62-15.5%7112
$250k+47%0.62-15.5%711200%
$500k+47%0.62-15.5%711200%
$1m+47%0.62-15.5%711200%
$2m+47%0.62-15.5%711200%
$4m+47%0.62-15.5%711200%
the execution model: a rough model: participation = notional / the bar's dollar turnover, the addition to the per-side cost is linear in participation, and an order above the bar-share cap does not fill. An exact model needs an order book, which the desk does not have

6. What this leaves

controls failed: DSR, sharpe

Failed: DSR, sharpe. No account and no panel row are opened for such an algorithm. The row stays here because a negative result is published the same way as a winning one.

every number comes from this file and from the run that built it. A negative result is published the same way as a winning one