Documentazione e guide per l'utente

Imparate le basi o perfezionate le vostre abilità con le esercitazioni pensate per ispirarvi.

Ultimo aggiornamento il 23 aprile 2026 a cura di Kornel Mazur

Cross-Checks – Robust Testing – Overview

Cross-Checks – Automated Strategy Robustness Tests

A key challenge in algorithmic strategy development is overfitting (also known as curve-fitting), where a strategy is too closely tailored to historical data and fails to generalize to future, unseen market conditions. Cross-checks in StrategyQuant X are designed to address this challenge by applying automated robustness testing.

What is Robustness?

Robustezza refers to a strategy's ability to perform consistently across varying market conditions and data sets. A robust strategy should:

  • Perform well on unseen (Out of Sample) data, assuming market behavior remains consistent.
  • Be tolerant to minor variations in input parameters (e.g., indicator periods, trade entry/exit settings).
  • Handle market anomalies, such as changes in spread, slippage, or missing trades, without significant performance degradation.

A basic robustness validation is testing strategy performance on Out of Sample data, especially after genetic evolution, which is performed only on the In Sample portion.

Why Use Cross-Checks?

Cross-checks help eliminate overfitted strategies by simulating alternate market conditions, modifying input variables, or retesting under different assumptions. They are applied after a strategy passes its initial generation and filtering phase.

Cross-checks can include:

  • Precision retesting
  • What If Simulations
  • Simulazioni Monte Carlo
  • Multi-market retesting
  • Walk-Forward Analysis
  • Matrice di avanzamento


Strategies that fail a cross-check can be automatically excluded, allowing only robust candidates to proceed through the development funnel.

How Cross-Checks Work

Cross-checks can be used during both costruzione della strategia e post-analysis in the Retester. Within a build process, you can configure multiple cross-checks, arranged in order of increasing complexity. If a strategy fails at any stage, it is immediately discarded, and no further checks are performed on it.

Cross-check types are typically categorized by complexity and computational cost:

  • Basi
  • Standard
  • Extensive

Important Note: Cross-checks can significantly increase processing time. A strategy generated in 0.2 seconds might require 10–200 seconds when subjected to cross-checks, depending on the complexity and number of simulations.

Example Usage: Robustness Filtering Funnel

Below is an example of a multi-layer cross-check process used to ensure strategy reliability:

  1. Initial Strategy Generation
    • Strategy is generated and backtested with basic precision settings.
  2. Global Filtering
    • Strategy is discarded if it fails core metrics (e.g., Net Profit < $1,000 or insufficient trade count).
  3. Cross-Check: Retest with Higher Precision
    • Retesting at minute or real-tick precision to validate initial results.
  4. Cross-Check: Monte Carlo – Trade Manipulation
    • Simulates alternate equity curves by rearranging or modifying trades to detect randomness.
  5. Cross-Check: Retest on Additional Markets
    • Verifies strategy profitability on different symbols or timeframes.
  6. Optional Cross-Check: Monte Carlo – Retest Methods
    • Conducts hundreds of independent backtests with minor variations (e.g., changes in slippage, spreads, or indicator parameters).
    • If 100 simulations are run, each taking 0.2 seconds, this step alone may require 20 seconds per strategy.
  7. Final Outcome
    • Only strategies that pass all selected cross-checks are saved to the Banca dati.

This layered approach helps ensure strategies are not only profitable under test conditions but also statistically reliable and resilient.

Additional Notes

  • Cross-checks are not mandatory during the build phase. You can choose to apply them later in the Ritestatore, especially for time-intensive evaluations.
  • Cross-check filters and thresholds can be fully customized based on your performance criteria and computational capacity.

Questo articolo è stato utile? L'articolo è stato utile L'articolo non è stato utile

0 Commenti
Vecchi
Più recenti Le più votate