qaudit
Independent audit of trading systems — deterministic engine 1.0.0

qaudit audit report

temoin-sain · Audit complet
Verdict
GO
blocking0major0minor0info6
Period covered
2021-01-11 → 2024-02-24
Usable / supplied trades
600 / 600
Initial balance
10 000.00 USD
Number of trials used (N)
10

Header

Audited systemtemoin-sain
Engine version1.0.0
Method version1.0
Seed0
SHA-256 fingerprint of the datad4f73aca2abb4c9fc7d98e36556914619a30fd503e57dbe4ac6471c2fb446d5f
Monte Carlo iterations10 000
Number of trials used (N)10
Period covered2021-01-11T16:40:28 → 2024-02-24T04:29:18
Usable / supplied trades600 / 600
CurrencyUSD
Initial balance10 000.00
ServiceAudit complet (audit_complet)

Verdict

Verdict: GO.

Findings: 0 blocking, 0 major, 0 minor, 6 informational.

In plain words: what this report says

Green light. The results provided passed all five statistical tests and no serious flaw was found in the way the trading is done. This means the observed performance is neither explained by chance, nor carried by a few lucky trades, nor manufactured by questionable data — over the period and data provided.

The verdict covers only what was given to the auditor: the closed trades in the file, over the period covered. It rests on no human judgement and no overall score: every test has a threshold fixed in advance by the method, and the verdict follows mechanically from those thresholds. The same file, audited again tomorrow with the same version, yields exactly the same report.

The five questions put to the results, and the numeric answer for this file:

passed
Is chance ruled out?

When several versions of a strategy are tried before one is kept, the best one always looks good, even if none has an edge. This test computes the probability that the performance is real once that effect is corrected, for 10 declared variant(s): 97.6 %. Pass threshold: 50.0 %. Test passed.

passed
And with bad luck?

The profit factor is the total won divided by the total lost (1.00 = break-even). The same trades were replayed 10 000 times in a different order, in blocks, to see what the same strategy would yield with less luck: in the 5 % least favourable scenarios the profit factor falls to 1.187. Threshold: 1.00 — below it, the strategy loses money in those scenarios. Test passed.

passed
Do the losses come clustered?

The drawdown is the largest fall between a peak and the trough that follows it. The observed one (2 042.87) is larger than in 78.1 % of random reorderings of the same trades. A very low value (under 5 %) would signal a curve too smooth to be honest; a very high value means the losses came clustered, which is harder to live through than the final result suggests. Test passed.

passed
Would a system with no edge do as well?

10 000 systems with no edge at all, but winning and losing amounts of the same size as this one, were simulated; 0.0 % of them did as well or better. Threshold: 5.0 % — above it, this system cannot be told apart from a system with no edge. Test passed.

passed
Does it hold outside the periods it was tuned on?

A strategy tuned on one period tends to shine there and disappoint afterwards. This test compares its performance on periods not used for tuning: it keeps 65.4 % of it. Threshold: 40.0 %. Test passed.

No serious flaw was found in the way the trading is done: no martingale, no grid, no abnormal concentration of profit, no sign of tampered data.

What remains true despite the green light: a statistical test measures the past that was provided, not the future. The drawdown figures in the “Benchmarks” section show the size of temporary losses it is reasonable to expect from this system as it was observed.

This report states facts; it recommends no settings and predicts nothing.

Key indicators

Net profit
12 751.41
Profit factor
1.380
Hit rate
46.2 %
Average win / average loss
1.609
Expectancy per trade
21.25
Sharpe per trade
0.143
Annualised Sharpe (measured frequency)
1.98
Trades per year (measured)
192.5
Maximum drawdown
2 042.87
Maximum drawdown (% of equity peak)
12.9 %
Compound annual growth rate
30.2 %
Longest losing streak
9

Decision barriers

The verdict follows mechanically from the barriers below; no composite score.

BarrierValueNO-GO thresholdIndecision bandStatus
Deflated Sharpe ratio (DSR)0.976< 0.500[0.450 ; 0.550]passed
Profit factor, 5th percentile of the block bootstrap1.187< 1.000[0.950 ; 1.050]passed
Percentile of the observed drawdown among order permutations78.140< 5.000[3.000 ; 8.000]passed
p-value against the no-edge null0.000≥ 0.050[0.030 ; 0.080]passed
Out-of-sample walk-forward efficiency0.654< 0.400[0.350 ; 0.500]passed

Critical findings

No finding at this level.

All findings

info
dsr_lo_variance

Variance of Sharpe ratios across variants unknown: Lo approximation (V = 0.0017) for N = 10 trials. Conservative correction: the true DSR is probably lower.

info
execution_realism_skipped

Detector “execution_realism” not run: no price series provided.

info
lookahead_skipped

Detector “lookahead” not run: no price series provided.

info
missing_optional

Fields absent from the source: commission, swap. Analyses that depend on them are disabled and reported as such.

info
null_empirical

The “no-edge” null keeps the empirical distributions of gains and losses and only neutralises their frequency (p₀ = 0.3832). It answers: “is the observed hit rate explainable by luck, given this gain/loss profile?” — it is not an efficient-market null.

info
stop_geometry_skipped

Detector “stop_geometry” not run: no price series provided.

Probabilistic and deflated Sharpe

PSR: probability that the true Sharpe is positive, corrected for skewness and fat tails. DSR: the same probability evaluated against the best Sharpe expected by chance after N trials.

Probabilistic Sharpe ratio (PSR)0.9998
Deflated Sharpe ratio (DSR)0.9760
Expected maximum Sharpe under the null (SR₀)0.0646
Number of trials used (N)10
Variance of Sharpe ratios across variants (V)0.001684
Source of VLo approximation (conservative: the true DSR is probably lower)

Sensitivity to the number of trials

This system stays significant up to at least 1 000 tested variants (grid bound).

0.250.751.001.000N = 10.976N = 100.894N = 500.838N = 1000.728N = 3000.592N = 1 000DSR 0.50
N trialsDSR
10.9998
100.9760
500.8942
1000.8377
3000.7279
1 0000.5923

Resampling

Three simulations, three questions: the bootstrap measures how unlucky the same edge can get; the permutation tests whether performance owes to trade order; the null counts edge-less systems that would do as well.

The “no-edge” null keeps the empirical distributions of gains and losses and only neutralises their frequency (p₀ = 0.3832). It answers: “is the observed hit rate explainable by luck, given this gain/loss profile?” — it is not an efficient-market null.

Bootstrap methodstationary blocks (Politis-Romano), automatic length
Mean block length1.00
Profit factor p05 / p50 / p951.187 / 1.378 / 1.596
Net profit p05 / p50 / p956 679.99 / 12 692.53 / 18 690.96
Drawdown p50 / p95 / p991 706.73 / 2 897.87 / 3 678.94
Observed drawdown2 042.87
Percentile of the observed drawdown among permutations78.1
Permutation drawdown p50 / p951 670.50 / 2 608.53
Equilibrium hit rate p₀38.3 %
p-value (net profit ≥ observed)0.0005
Net profit of null systems p50 / p95-103.24 / 5 835.66

Regimes and periods

Classifier used: volatility terciles (rolling standard deviation of P&L, no prices); unclassified trades: 2.

RegimeTradesNet profitPFHit rateShare of net
low volatility2006 002.331.52347.0 %47.1 %
medium volatility1992 065.671.18844.2 %16.2 %
high volatility1994 849.491.44647.7 %38.0 %
QuarterTradesNet profitPF
2021-Q1311 840.052.473
2021-Q2521 132.661.399
2021-Q3471 388.941.605
2021-Q449826.581.275
2022-Q151-1 007.030.712
2022-Q2482 181.531.880
2022-Q3451 269.351.569
2022-Q4621 066.971.331
2023-Q149684.721.234
2023-Q238-647.490.754
2023-Q3601 302.221.350
2023-Q4421 886.741.931
2024-Q126826.171.579

Drawdown markers

Statistical drawdown markers from the block bootstrap, to compare with the live drawdown. They are not strategy settings.

Observed maximum drawdown2 042.87
Bootstrap drawdown, 95th percentile2 897.87
Bootstrap drawdown, 99th percentile3 678.94

Conditions for production

No condition.

Scope and limits

Footer

qaudit 1.0.0 — method 1.0 — schema 1.0 — seed 0 — fingerprint d4f73aca2abb4c9fc7d98e36556914619a30fd503e57dbe4ac6471c2fb446d5f — service audit_complet.

Reproducible: same inputs + same version + same seed = same report, byte for byte.