Independent Quant Research Validation

Quantitative research that survives scrutiny.

I independently validate quantitative strategies, backtests and financial models for statistical validity, economic relevance, realistic execution and reproducibility.

A profitable backtest is not evidence by itself.

Results can disappear after correcting execution timing, transaction costs, benchmark selection, data leakage, turnover or researcher bias.

What gets validated

  • Methodology

    Causality, labels, validation splits, benchmarks and experimental design.

  • Economics

    Commissions and fees modelled with their source and effective date, plus how sensitive the result is to cost and turnover. Spreads, slippage, capacity and latency are reviewed as declared assumptions: if they are missing or implausible, the report says so.

  • Statistics

    Uncertainty, stability, sensitivity, multiple testing and incremental value.

  • Implementation

    Code, financial accounting, data integrity, tests and reproducibility.

Services

Pricing depends on one thing: what you send. The more prepared the material arrives, the less it costs.

  • Bias analysis

    €90

    You send: Your code.

    I look for look-ahead, label leakage and survivorship bias. An automated scanner narrows it down; I review by hand the patterns the scanner does not cover.

    You get: A findings report with severity, the exact location in your code, and what to fix.

    A clean result lowers the risk, it does not remove it: static analysis cannot prove the absence of bias.

  • Results validation

    from €150

    You send: A CSV with two columns: date and period return.

    I recompute your metrics from the series, check them against what you declared before we started, and sign the report.

    You get: A signed report with recomputed metrics, charts and a comparison against your benchmark.

    This tier covers a return series. Reproducing your code is the next tier.

  • Strategy reproduction

    from €490

    You send: Code that already runs, or a simple notebook.

    I run it in an isolated environment, reproduce your results and challenge them: costs, robustness, subperiods and statistical significance.

    You get: Everything above, plus the exact reproduction with hashes and a GO / NO-GO verdict explained by method.

    If the code does not run as delivered, it moves up a tier. I tell you before we start, not after.

  • Full validation

    from €1,500

    You send: A notebook or repository that has to be rebuilt.

    Includes the adaptation work, nested walk-forward analysis, and review of the code that would reach production.

    You get: Everything above, plus prioritised fixes and the conditions for revalidation.

    Turnaround depends on the size of the repository and whether the data is available.

A NO-GO means one of two things, and I always tell you which: the strategy failed a specific test, or the available evidence does not support a conclusion. They are not the same.

Methodology

  1. Scope

    Define the hypothesis, benchmark, evidence and success criteria.

  2. Reproduce

    Run or reconstruct the result without silently changing the original claim.

  3. Challenge

    Test causality, costs, robustness, controls and implementation.

  4. Verdict

    Deliver a clear decision, limitations and prioritized corrections.

How it is done

Three things almost nobody does, and they are the difference between an opinion and a check.

  • Bias scanner

    Reads your code looking for the future where it should not be.

    An analyser walks the structure of your code, not its text. That matters: the patterns by which the future leaks into the past are almost never written the same way twice, and a text search misses them. It is built assuming nobody writes them obviously — it resolves aliases, computed expressions, and variants that read differently but do the same thing.

    It is a filter, not a certificate. A clean result lowers the risk; it does not prove there is no bias.

  • Nested walk-forward

    Parameters are chosen without ever seeing the data they are judged on.

    Two loops. The inner one tries configurations on data that has already passed; the outer one evaluates the winner on data that loop never saw. Between them sits a purged gap the size of the label horizon, so no training label resolves inside the evaluated period.

    Verified by exhaustive perturbation: altering any future data point changes no earlier decision at all.

  • Sealed prospective holdout

    The criterion is frozen before the first observation exists.

    The exact calendar, the benchmark, the cost model and the decision rule are fixed and hash-sealed before anything starts. Each observation is appended to a signed, hash-chained ledger, in order, with no way to edit what came before. The verdict is computed against that frozen rule, never one picked afterwards.

    It is the only test that admits no reinterpretation after the fact. It is also the slowest: time has to actually pass.

Every engagement ends in one of two formal verdicts

  • GO – Shadowing
  • NO-GO
  • GO – Shadowing: I found no reason to discard the strategy once the benchmark, the costs and its stability over time were checked. It means "run it in parallel first". It is never authorisation to go to production or to trade with real capital.
  • A GO – Shadowing can carry limitations. They are only accepted if they are specific, written into the report, and do not prevent that parallel-running phase.
  • NO-GO on a real failure: the strategy did not pass one of the mandatory checks. We know what failed and why.
  • NO-GO on insufficient evidence: nothing clearly failed, but the data does not support a conclusion. This is not the same as the previous one, and I always tell you which of the two you got.
  • Whether the strategy is ready for production is a separate question, reported separately, and it does not change the verdict.

Sample report

I cannot show you a client's report. So I applied the process to a strategy of my own, published openly, and the verdict was that it does not work. Every figure below comes from that validation, and anyone can clone the repository and check it.

VALIDATION REPORT

EWMA63-CURRENT200

A REAL VALIDATION ON A PUBLIC REPOSITORY — ANYONE CAN CHECK IT

Executive summary

The strategy cuts exposure when it detects market stress and, while cutting, reduces high-beta names more. The comparison that decides the question is not buy-and-hold: it is a portfolio that cuts exactly the same exposure without looking at beta. Only then can a difference be attributed to the layer under test.

Strategy under test

CAGR
22.77%
Sharpe
1.343
Max drawdown
-21.82%

Exposure-matched control

CAGR
22.70%
Sharpe
1.324
Max drawdown
-23.46%

Contribution of the layer

Annual active return
+0.02%
Information ratio
0.025
95% bootstrap CI
[-0.31%, +0.38%]

By method

  • CausalPASS WITH LIMITATIONS
  • StatisticalPASS WITH LIMITATIONS
  • EconomicFAIL
  • RobustnessFAIL

Gates

GateWhat it checksThresholdObservedResult
Absolute evidenceWhether the strategy beats the market with significanceHAC t >= 1.963.518PASS
Matched controlWhether the layer adds anything over the exposure-matched controlHAC t >= 1.960.118FAIL
Cost stressWhether that contribution survives a 100 bps trading cost>= 0% at 100 bps-0.043%FAIL
Chronological stabilityWhether at least two of three subperiods are positive>= 66.67%33.3%FAIL

Traceability

Matched control: FAIL leads to Economic: FAIL leads to NO-GO for real failure

Limitations

  • The parameters were chosen after seeing the history they are tested on, so no untouched forward period exists.
  • The 200-name universe is companies listed today, which inflates the buy-and-hold reference by construction.
  • The price history contains corporate-action distortions that are documented but not traced to source.
  • The simulation does not model cash return, market impact, order minimums or capacity.

Conditions for revalidation

  1. Freeze the current specification and collect a genuinely prospective period, retuning nothing during it.
  2. Rebuild the universe with issuer identifiers and point-in-time constituents.
  3. Evaluate the exposure gate on its own, since it produces almost all of the improvement.
  4. Add an execution model with the portfolio's real costs and capacity limits.
DeploymentINCONCLUSIVE

INCONCLUSIVE: without a prospective period and a capacity-linked execution model, nothing can be concluded about deployment. It is reported separately from the formal verdict.

Formal verdict

NO-GO

Reason: a real economic failure — the layer adds no measurable value over the exposure-matched control

The full report

This summary is a view of the page. The document a client receives is longer: it explains what the strategy does, what it is compared against and why, and what falls outside the scope. Download it and judge it yourself.

Download the report (PDF)3 pages · PDF

View the repository on GitHub

And an evidence annex

Alongside the report comes an annex holding the series, metrics and figures behind every number: equity curve, drawdowns with their duration, rolling metrics, return distribution, and integrity fingerprints for the input data. The report is what you read to decide; the annex is what holds up when someone disputes a figure.

Extract from the evidence annex that accompanies the report.
Extract from the evidence annex that accompanies the report.

Public case studies

  • RF100Verdict: NO-GO

    RF100 — Can a Random Forest beat simple momentum?

    A causal cross-sectional Random Forest found statistically positive predictive structure but failed to beat a simple momentum benchmark under equivalent execution assumptions.

    Key ideaPredictive structure is not the same as incremental, monetizable alpha.

  • EWMA_63_StratVerdict: NO-GO

    EWMA63 — Does beta selection add value beyond de-risking?

    The audit showed that most of the historical Sharpe and drawdown improvement came from lower market exposure, while the incremental value of the EWMA63 allocation layer was approximately zero.

    Key ideaThe correct control can invalidate an apparently successful strategy.

  • F2-ANTICIPATOR-V2Verdict: NO-GO

    F2 Anticipator V2 — Can a late-book signal anticipate 5-minute BTC Up/Down markets?

    A causal, book-only model estimated the final probability of Up and traded only when expected edge exceeded costs. The temporal OOS showed that the predicted edge did not survive realistic execution assumptions.

    Key ideaPredicted edge is not monetizable alpha when it is poorly calibrated, fails to persist and deteriorates after the model freeze.

  • Simple-StrategyPUBLIC RESEARCH EXAMPLE

    Volatility Term-Structure Strategy

    A transparent SPY allocation example combining a lagged VIX term-structure filter, realized-volatility targeting, leverage limits and explicit turnover costs.

    Key ideaLower volatility and drawdown do not automatically imply benchmark outperformance or alpha.

About

I am Nicolae Filip Stanciu, a quantitative finance professional and independent researcher with a background in Finance, Banking and Insurance and a master’s degree in Quantitative Finance.

My quantitative projects focus on market behaviour derived from price, volume and OHLC data, particularly volatility, downside risk and regime changes. I have built and tested OHLC-based realized-volatility estimators, HAR and GARCH-family models, HMM-based regime detection, VaR, CVaR and CDaR, together with portfolio-construction methods such as Markowitz, HRP, risk parity and MST.

I use Python to develop and independently challenge strategies and backtests, with strict attention to look-ahead bias, execution timing, transaction costs, benchmark selection, walk-forward validation and reproducibility.

Contact

Have a strategy, backtest or model that needs an independent review?

The information you submit will be used to assess your request. Read the privacy policy.