Pular para o conteúdo
Todos os documentos da biblioteca

Regras de auditoria e evidências de paridade entre mecanismos de backtest

Código Machine Learning for Trading

Resumo

Este registro de auditoria define como várias estruturas de backtesting são comparadas com ML4T em estudos de caso com estratégias reais e uma operação sintética de estresse. Especifica regras de comparação para execuções ordenadas, horários, valores monetários da conta, quantidades e outros campos numéricos. Também registra edições das estruturas, identificadores imutáveis, status de compatibilidade, políticas de desempenho e referências a evidências de correção, tempo e escala. A medição do tempo fica restrita à chamada do mecanismo; carregamento de entradas, inferência, preparação, extração e apresentação de resultados são excluídos.

Os registros mostram por que as alegações de paridade devem se limitar a cada modelo de ativo e implementação. Por exemplo, o VectorBT OSS é marcado como incompatível com a operação de futuros da CME por não ter multiplicadores de contrato nativos nem contabilização de margem, enquanto as duas edições do VectorBT são incompatíveis com a contabilização de funding e margem de perpétuos de cripto. Os tempos da auditoria se baseiam em processos isolados e pares aprovados nas verificações de correção; portanto, não comprovam desempenho universal em diferentes conjuntos de dados ou máquinas. Este arquivo documenta evidências e políticas, em vez de ensinar um sinal de trading ou uma estratégia de alocação.

Ideias principais

  • A paridade de backtests depende de regras explícitas para ordem de execução, horários e tolerâncias numéricas.
  • As evidências de tempo abrangem chamadas do mecanismo e excluem a preparação de dados e adaptadores, além do processamento dos resultados.
  • A compatibilidade de uma estrutura deve ser avaliada conforme os requisitos contábeis do ativo.
  • A auditoria limita as comparações de tempo publicadas a pares de estruturas e estudos de caso que passam nas verificações de correção.
  • Os resultados das operações registradas não estabelecem uma classificação universal de velocidade.

Tags

Texto completo
# framework_parity_audit.json


```json
{
  "audit_generated_at": "2026-09-03T11:44:14.344493+00:00",
  "comparison_policy": {
    "account_money_fields": [
      "cash",
      "commission",
      "equity",
      "final_value"
    ],
    "account_money_quantum": "0.01",
    "fill_order": "canonical timestamp, asset, side, quantity, price, commission",
    "meaning": "account-money gaps round to zero cents; quantity gaps round to zero at 1e-5 shares or contracts; all other numeric gaps round to zero at 1e-8",
    "quantity_quantum": "0.00001",
    "record_numeric_quantum": "0.00000001",
    "rounding": "ROUND_HALF_EVEN",
    "timestamp_domain": {
      "cme_futures": "session date",
      "crypto_perps_funding": "exact UTC event timestamp",
      "etfs": "session date",
      "fx_pairs": "session date",
      "us_equities_panel": "session date"
    }
  },
  "engine_commit": "7034236519cc0a99df6ef34a21d07ec2a81fc87c",
  "engine_source_sha256": "8011ecdaf90807b4fe4fb5ada518a237311774b32891179bf1fad0a0baad8a58",
  "evidence": {
    "correctness": "https://github.com/ml4t/backtest/blob/0c3de46b1881ce6cb9fd72b672a1dba38ebc383b/validation/REAL_STRATEGY_RESULTS.json",
    "performance": "https://github.com/ml4t/backtest/blob/0c3de46b1881ce6cb9fd72b672a1dba38ebc383b/validation/REAL_STRATEGY_PERFORMANCE.json",
    "source_artifacts": [
      {
        "path": "validation/REAL_STRATEGY_RESULTS.json",
        "sha256": "d7c6460fcb5ebf9ecf74c31d06e227996c66f488de46a5beaa2145104209916b"
      },
      {
        "path": "validation/REAL_STRATEGY_PERFORMANCE.json",
        "sha256": "7276dfba4356c4ce2e6e45c256e4431a4e01cd47ca5710e9d341893286929c40"
      },
      {
        "path": "validation/LARGE_SCALE_RESULTS.json",
        "sha256": "fb3a06a7c485bfb131dfef286ff743af18fa4ba673f5f1075245d7a9123cb3f5"
      }
    ],
    "synthetic_stress": "https://github.com/ml4t/backtest/blob/0c3de46b1881ce6cb9fd72b672a1dba38ebc383b/validation/LARGE_SCALE_RESULTS.json"
  },
  "frameworks": {
    "backtrader": {
      "access": "public",
      "artifact": "backtrader-1.9.78.123-py2.py3-none-any.whl",
      "display_name": "Backtrader",
      "environment": ".venv-backtrader",
      "immutable_id": "sha256:9a07a516b0de9155539a35c56e9404d8711dd7020b3d37b30495e83e1b9d5dfd",
      "license": "GPL-3.0-or-later",
      "package": "backtrader",
      "profile": "backtrader_strict",
      "python": "3.12 audit interpreter; upstream package metadata does not declare a range",
      "python_env_var": "ML4T_BACKTRADER_PYTHON",
      "required_scenarios": 17,
      "scenario_matrix": true,
      "source": "https://pypi.org/project/backtrader/1.9.78.123/",
      "unsupported_scenarios": 0,
      "version": "1.9.78.123"
    },
    "lean": {
      "access": "public",
      "artifact": "quantconnect/lean@sha256:ecd62b0e418d40d1d7c0cd95e90a94e397642a21d2c8810614830c8a4e9a8f70",
      "cli_immutable_id": "sha256:eaa4c08f16295b76f005e429d9ca0d0453784dc1a40c1f5cbe5e50c02a05bd7c",
      "cli_version": "1.0.228",
      "display_name": "LEAN",
      "environment": ".venv-lean",
      "immutable_id": "sha256:ecd62b0e418d40d1d7c0cd95e90a94e397642a21d2c8810614830c8a4e9a8f70",
      "license": "Apache-2.0",
      "package": "lean",
      "platform_artifact": "linux/amd64@sha256:cbe3f26b3f16c57be836b2cf913253d434f58e010c84ed038360d26b9df88307",
      "profile": "lean",
      "python": "3.11",
      "python_env_var": "ML4T_LEAN_PYTHON",
      "required_scenarios": 0,
      "scenario_matrix": false,
      "source": "https://github.com/QuantConnect/Lean",
      "source_commit": "278fcb3d1b815b63ccadba68d7ae54422e34b792",
      "unsupported_scenarios": 0,
      "version": "18001"
    },
    "vectorbt_oss": {
      "access": "public",
      "artifact": "vectorbt-1.1.0.tar.gz",
      "display_name": "VectorBT OSS",
      "environment": ".venv-vectorbt-oss",
      "immutable_id": "sha256:67a3b41466234485af70c18d201da105f1ebb2c1d1fac079db20059e45ddc73b",
      "license": "Apache-2.0 WITH Commons-Clause",
      "package": "vectorbt",
      "profile": "vectorbt_oss_strict",
      "python": ">=3.11,<3.15",
      "python_env_var": "ML4T_VECTORBT_OSS_PYTHON",
      "required_scenarios": 16,
      "scenario_matrix": true,
      "source": "https://pypi.org/project/vectorbt/1.1.0/",
      "source_commit": "259d2d89fe2e7638baf3ca76c394937cd32b656d",
      "unsupported_scenarios": 1,
      "version": "1.1.0"
    },
    "vectorbt_pro": {
      "access": "licensed",
      "display_name": "VectorBT Pro",
      "environment": ".venv-vectorbt-pro",
      "immutable_id": "git:6e18cf0aa37849cfc20848f40f1d26ecfdc771b4",
      "license": "Proprietary",
      "package": "vectorbtpro",
      "profile": "vectorbt_strict",
      "python": ">=3.11",
      "python_env_var": "ML4T_VECTORBT_PRO_PYTHON",
      "required_scenarios": 17,
      "scenario_matrix": true,
      "source": "https://github.com/polakowo/vectorbt.pro",
      "source_commit": "6e18cf0aa37849cfc20848f40f1d26ecfdc771b4",
      "unsupported_scenarios": 0,
      "version": "2026.6.27"
    },
    "zipline": {
      "access": "public",
      "artifact": "zipline_reloaded-3.1.1.tar.gz",
      "display_name": "Zipline Reloaded",
      "environment": ".venv-zipline",
      "immutable_id": "sha256:4a305524616f7aad836f929e5a2ba5afc7db0e238757f47eb49487d9e2457a6f",
      "license": "Apache-2.0",
      "package": "zipline-reloaded",
      "profile": "zipline_strict",
      "python": ">=3.10",
      "python_env_var": "ML4T_ZIPLINE_PYTHON",
      "required_scenarios": 16,
      "scenario_matrix": true,
      "source": "https://pypi.org/project/zipline-reloaded/3.1.1/",
      "source_commit": "09885a2ebc7567d40942c891b3879dc03c745070",
      "unsupported_scenarios": 1,
      "version": "3.1.1"
    }
  },
  "library_commit": "0c3de46b1881ce6cb9fd72b672a1dba38ebc383b",
  "performance_policy": {
    "boundary": "engine call only",
    "excluded": [
      "input loading",
      "model inference",
      "target construction",
      "adapter preparation",
      "result extraction",
      "serialization",
      "reporting"
    ],
    "interval": "10,000-draw percentile bootstrap of the sample median",
    "measured_processes": 10,
    "process_isolation": true,
    "publication_scope": "only correctness-passing case-study/framework pairs",
    "warmup_processes": 1
  },
  "performance_records": [
    {
      "case_study": "etfs",
      "framework": "vectorbt_pro",
      "framework_ci95_seconds": [
        0.28554552848800085,
        0.2885417409997899
      ],
      "framework_median_seconds": 0.2872375610168092,
      "framework_to_ml4t_ratio": 0.6924827859284183,
      "ml4t_ci95_seconds": [
        0.4141692244884325,
        0.41945260000647977
      ],
      "ml4t_median_seconds": 0.4147937925008591
    },
    {
      "case_study": "etfs",
      "framework": "vectorbt_oss",
      "framework_ci95_seconds": [
        0.17068579950137064,
        0.17357376401196234
      ],
      "framework_median_seconds": 0.17132284450053703,
      "framework_to_ml4t_ratio": 0.4124410450618539,
      "ml4t_ci95_seconds": [
        0.41297478799242526,
        0.41699278698069975
      ],
      "ml4t_median_seconds": 0.4153874754993012
    },
    {
      "case_study": "etfs",
      "framework": "backtrader",
      "framework_ci95_seconds": [
        9.30285160850326,
        9.423639220010955
      ],
      "framework_median_seconds": 9.355300096503925,
      "framework_to_ml4t_ratio": 21.7615755934312,
      "ml4t_ci95_seconds": [
        0.42605314050160814,
        0.431600633499329
      ],
      "ml4t_median_seconds": 0.4298999425082002
    },
    {
      "case_study": "etfs",
      "framework": "zipline",
      "framework_ci95_seconds": [
        3.8670725979900453,
        3.9098115700180642
      ],
      "framework_median_seconds": 3.8715068249875912,
      "framework_to_ml4t_ratio": 6.126579592244658,
      "ml4t_ci95_seconds": [
        0.6284003740001936,
        0.6377887904964155
      ],
      "ml4t_median_seconds": 0.6319197794946376
    },
    {
      "case_study": "etfs",
      "framework": "lean",
      "framework_ci95_seconds": [
        2.4874195760057773,
        2.599079799008905
      ],
      "framework_median_seconds": 2.564114402513951,
      "framework_to_ml4t_ratio": 3.418485618498456,
      "ml4t_ci95_seconds": [
        0.7486901020165533,
        0.7566314754949417
      ],
      "ml4t_median_seconds": 0.750073186980444
    },
    {
      "case_study": "cme_futures",
      "framework": "vectorbt_pro",
      "framework_ci95_seconds": [
        0.28389174649782944,
        0.2887275889952434
      ],
      "framework_median_seconds": 0.28636373148765415,
      "framework_to_ml4t_ratio": 0.6631588833815962,
      "ml4t_ci95_seconds": [
        0.428688713509473,
        0.43454156002553646
      ],
      "ml4t_median_seconds": 0.43181768149952404
    },
    {
      "case_study": "cme_futures",
      "framework": "backtrader",
      "framework_ci95_seconds": [
        2.487967457011109,
        2.526018163494882
      ],
      "framework_median_seconds": 2.494809443000122,
      "framework_to_ml4t_ratio": 5.811638815571466,
      "ml4t_ci95_seconds": [
        0.4273611745011294,
        0.4325851899920963
      ],
      "ml4t_median_seconds": 0.4292781300027855
    },
    {
      "case_study": "crypto_perps_funding",
      "framework": "lean",
      "framework_ci95_seconds": [
        2.7094629269995494,
        2.8912153329874855
      ],
      "framework_median_seconds": 2.801038935489487,
      "framework_to_ml4t_ratio": 4.266156698399411,
      "ml4t_ci95_seconds": [
        0.6548837659938727,
        0.6614908079791348
      ],
      "ml4t_median_seconds": 0.6565719764912501
    },
    {
      "case_study": "fx_pairs",
      "framework": "vectorbt_pro",
      "framework_ci95_seconds": [
        0.2809414380026283,
        0.28584351851895917
      ],
      "framework_median_seconds": 0.28271306499664206,
      "framework_to_ml4t_ratio": 1.9393634353319569,
      "ml4t_ci95_seconds": [
        0.14505504499538802,
        0.14667728898348287
      ],
      "ml4t_median_seconds": 0.1457762170030037
    },
    {
      "case_study": "fx_pairs",
      "framework": "vectorbt_oss",
      "framework_ci95_seconds": [
        0.13754021801287308,
        0.1413268009928288
      ],
      "framework_median_seconds": 0.1387957935075974,
      "framework_to_ml4t_ratio": 0.9517668155264412,
      "ml4t_ci95_seconds": [
        0.1447887455142336,
        0.14715092899859883
      ],
      "ml4t_median_seconds": 0.14582962049462367
    },
    {
      "case_study": "fx_pairs",
      "framework": "backtrader",
      "framework_ci95_seconds": [
        0.4199030729942024,
        0.43193558798520826
      ],
      "framework_median_seconds": 0.42490502599684987,
      "framework_to_ml4t_ratio": 2.919662876838548,
      "ml4t_ci95_seconds": [
        0.14518085900635924,
        0.14739416650263593
      ],
      "ml4t_median_seconds": 0.1455322220135713
    },
    {
      "case_study": "fx_pairs",
      "framework": "lean",
      "framework_ci95_seconds": [
        0.8773026489943732,
        0.9533085440052673
      ],
      "framework_median_seconds": 0.9130055215064203,
      "framework_to_ml4t_ratio": 5.951507252400165,
      "ml4t_ci95_seconds": [
        0.1521106895088451,
        0.15719534500385635
      ],
      "ml4t_median_seconds": 0.1534074450028129
    },
    {
      "case_study": "us_equities_panel",
      "framework": "vectorbt_pro",
      "framework_ci95_seconds": [
        0.7874248115113005,
        0.8377640749968123
      ],
      "framework_median_seconds": 0.7949095129879424,
      "framework_to_ml4t_ratio": 0.03867173809347579,
      "ml4t_ci95_seconds": [
        20.48596853449999,
        20.599761563003995
      ],
      "ml4t_median_seconds": 20.555308661496383
    },
    {
      "case_study": "us_equities_panel",
      "framework": "vectorbt_oss",
      "framework_ci95_seconds": [
        16.959977449994767,
        17.023569879005663
      ],
      "framework_median_seconds": 16.9949149099848,
      "framework_to_ml4t_ratio": 0.8292416699730313,
      "ml4t_ci95_seconds": [
        20.453040241001872,
        20.533734439013642
      ],
      "ml4t_median_seconds": 20.49452593299793
    },
    {
      "case_study": "us_equities_panel",
      "framework": "backtrader",
      "framework_ci95_seconds": [
        494.2269169654901,
        510.27303914300865
      ],
      "framework_median_seconds": 495.55252874150756,
      "framework_to_ml4t_ratio": 23.08159898786381,
      "ml4t_ci95_seconds": [
        21.38583242200548,
        21.54328417198849
      ],
      "ml4t_median_seconds": 21.46959268298815
    },
    {
      "case_study": "us_equities_panel",
      "framework": "zipline",
      "framework_ci95_seconds": [
        106.83352753649524,
        109.14979357349512
      ],
      "framework_median_seconds": 107.60890489349549,
      "framework_to_ml4t_ratio": 4.862239476470224,
      "ml4t_ci95_seconds": [
        22.08169161299884,
        22.23382121999748
      ],
      "ml4t_median_seconds": 22.131551811515237
    },
    {
      "case_study": "us_equities_panel",
      "framework": "lean",
      "framework_ci95_seconds": [
        47.33300897400477,
        48.01486862101592
      ],
      "framework_median_seconds": 47.68267791901599,
      "framework_to_ml4t_ratio": 1.8083761067475683,
      "ml4t_ci95_seconds": [
        26.22179457700986,
        26.472655913996277
      ],
      "ml4t_median_seconds": 26.36767746548867
    }
  ],
  "protocol_scope": {
    "disabled_on_both_sides": [
      "transaction costs",
      "position rules"
    ],
    "shared_inputs": "frozen model-derived targets and historical market data",
    "tested": [
      "target sizing",
      "order sequencing",
      "fills",
      "cash and margin",
      "funding where applicable",
      "valuation"
    ]
  },
  "real_strategy_records": [
    {
      "case_study": "etfs",
      "equity_gap": "0.00",
      "equity_raw_gap": "0.00000000",
      "fill_gap": "0.00000000",
      "fills": 2466,
      "framework": "vectorbt_pro",
      "input_bundle_sha256": "01f38079ce47821a5379d3769e86f4a2170b88033108153bfc0f928698e946db",
      "negative_control_detected": true,
      "profile": "vectorbt_strict",
      "status": "pass",
      "terminal_gap": "0.00",
      "terminal_raw_gap": "0.00000000",
      "valuation_timestamps_match": true,
      "valuations": 1995
    },
    {
      "case_study": "etfs",
      "equity_gap": "0.00",
      "equity_raw_gap": "0.00000000",
      "fill_gap": "0.00000000",
      "fills": 2466,
      "framework": "vectorbt_oss",
      "input_bundle_sha256": "01f38079ce47821a5379d3769e86f4a2170b88033108153bfc0f928698e946db",
      "negative_control_detected": true,
      "profile": "vectorbt_oss_strict",
      "status": "pass",
      "terminal_gap": "0.00",
      "terminal_raw_gap": "0.00000000",
      "valuation_timestamps_match": true,
      "valuations": 1995
    },
    {
      "case_study": "etfs",
      "equity_gap": "0.00",
      "equity_raw_gap": "0.00000000",
      "fill_gap": "0.00000000",
      "fills": 2433,
      "framework": "backtrader",
      "input_bundle_sha256": "01f38079ce47821a5379d3769e86f4a2170b88033108153bfc0f928698e946db",
      "negative_control_detected": true,
      "profile": "backtrader_strict",
      "status": "pass",
      "terminal_gap": "0.00",
      "terminal_raw_gap": "0.00000000",
      "valuation_timestamps_match": true,
      "valuations": 1995
    },
    {
      "case_study": "etfs",
      "equity_gap": "0.00",
      "equity_raw_gap": "0.00000000",
      "fill_gap": "0.00000000",
      "fills": 2458,
      "framework": "zipline",
      "input_bundle_sha256": "01f38079ce47821a5379d3769e86f4a2170b88033108153bfc0f928698e946db",
      "negative_control_detected": true,
      "profile": "zipline_strict",
      "status": "pass",
      "terminal_gap": "0.00",
      "terminal_raw_gap": "0.00000000",
      "valuation_timestamps_match": true,
      "valuations": 1995
    },
    {
      "case_study": "etfs",
      "equity_gap": "0.00",
      "equity_raw_gap": "0.00000000",
      "fill_gap": "0.00000000",
      "fills": 2457,
      "framework": "lean",
      "input_bundle_sha256": "01f38079ce47821a5379d3769e86f4a2170b88033108153bfc0f928698e946db",
      "negative_control_detected": true,
      "profile": "lean",
      "status": "pass",
      "terminal_gap": "0.00",
      "terminal_raw_gap": "0.00000000",
      "valuation_timestamps_match": true,
      "valuations": 1995
    },
    {
      "case_study": "cme_futures",
      "equity_gap": "0.00",
      "equity_raw_gap": "0.00000010",
      "fill_gap": "0.00000000",
      "fills": 3545,
      "framework": "vectorbt_pro",
      "input_bundle_sha256": "c7191027f550ef1be0c9528dac08e7c2bf6a76c86d935f593efeb1ad8b628c39",
      "negative_control_detected": true,
      "profile": "vectorbt_futures_strict",
      "status": "pass",
      "terminal_gap": "0.00",
      "terminal_raw_gap": "0.00000007",
      "valuation_timestamps_match": true,
      "valuations": 1595
    },
    {
      "case_study": "cme_futures",
      "equity_gap": "0.00",
      "equity_raw_gap": "0.00000015",
      "fill_gap": "0.00000000",
      "fills": 3376,
      "framework": "backtrader",
      "input_bundle_sha256": "c7191027f550ef1be0c9528dac08e7c2bf6a76c86d935f593efeb1ad8b628c39",
      "negative_control_detected": true,
      "profile": "backtrader_strict",
      "status": "pass",
      "terminal_gap": "0.00",
      "terminal_raw_gap": "0.00000015",
      "valuation_timestamps_match": true,
      "valuations": 1595
    },
    {
      "case_study": "crypto_perps_funding",
      "equity_gap": "0.00",
      "equity_raw_gap": "0.00000000",
      "fill_gap": "0.00000000",
      "fills": 8408,
      "framework": "lean",
      "input_bundle_sha256": "2acee3c8542043266e6f9c0dfc9434c95b4469ef6fcaf0556efc569fc9721cdd",
      "negative_control_detected": true,
      "profile": "lean_crypto_future",
      "status": "pass",
      "terminal_gap": "0.00",
      "terminal_raw_gap": "0.00000000",
      "valuation_timestamps_match": true,
      "valuations": 2426
    },
    {
      "case_study": "fx_pairs",
      "equity_gap": "0.00",
      "equity_raw_gap": "0.00000000",
      "fill_gap": "0.00000000",
      "fills": 279,
      "framework": "vectorbt_pro",
      "input_bundle_sha256": "48922296cea03bfc9867a9c4e1a1d352a0bd54c0b48671e3ca8d1fdddb95d762",
      "negative_control_detected": true,
      "profile": "vectorbt_strict",
      "status": "pass",
      "terminal_gap": "0.00",
      "terminal_raw_gap": "0.00000000",
      "valuation_timestamps_match": true,
      "valuations": 2108
    },
    {
      "case_study": "fx_pairs",
      "equity_gap": "0.00",
      "equity_raw_gap": "0.00000000",
      "fill_gap": "0.00000000",
      "fills": 279,
      "framework": "vectorbt_oss",
      "input_bundle_sha256": "48922296cea03bfc9867a9c4e1a1d352a0bd54c0b48671e3ca8d1fdddb95d762",
      "negative_control_detected": true,
      "profile": "vectorbt_oss_strict",
      "status": "pass",
      "terminal_gap": "0.00",
      "terminal_raw_gap": "0.00000000",
      "valuation_timestamps_match": true,
      "valuations": 2108
    },
    {
      "case_study": "fx_pairs",
      "equity_gap": "0.00",
      "equity_raw_gap": "0.00000000",
      "fill_gap": "0.00000000",
      "fills": 279,
      "framework": "backtrader",
      "input_bundle_sha256": "48922296cea03bfc9867a9c4e1a1d352a0bd54c0b48671e3ca8d1fdddb95d762",
      "negative_control_detected": true,
      "profile": "backtrader_strict",
      "status": "pass",
      "terminal_gap": "0.00",
      "terminal_raw_gap": "0.00000000",
      "valuation_timestamps_match": true,
      "valuations": 2108
    },
    {
      "case_study": "fx_pairs",
      "equity_gap": "0.00",
      "equity_raw_gap": "0.00000000",
      "fill_gap": "0.00000000",
      "fills": 279,
      "framework": "lean",
      "input_bundle_sha256": "48922296cea03bfc9867a9c4e1a1d352a0bd54c0b48671e3ca8d1fdddb95d762",
      "negative_control_detected": true,
      "profile": "lean",
      "status": "pass",
      "terminal_gap": "0.00",
      "terminal_raw_gap": "0.00000000",
      "valuation_timestamps_match": true,
      "valuations": 2108
    },
    {
      "case_study": "us_equities_panel",
      "equity_gap": "0.00",
      "equity_raw_gap": "0.00001950",
      "fill_gap": "0.00000000",
      "fills": 54295,
      "framework": "vectorbt_pro",
      "input_bundle_sha256": "02926d8a7f1c1f5b4855b2393d1763885288ef64950d5cf521ca96c61f454d88",
      "negative_control_detected": true,
      "profile": "vectorbt_strict",
      "status": "pass",
      "terminal_gap": "0.00",
      "terminal_raw_gap": "0.00001880",
      "valuation_timestamps_match": true,
      "valuations": 4146
    },
    {
      "case_study": "us_equities_panel",
      "equity_gap": "0.00",
      "equity_raw_gap": "0.00001910",
      "fill_gap": "0.00000000",
      "fills": 49120,
      "framework": "vectorbt_oss",
      "input_bundle_sha256": "02926d8a7f1c1f5b4855b2393d1763885288ef64950d5cf521ca96c61f454d88",
      "negative_control_detected": true,
      "profile": "vectorbt_oss_strict",
      "status": "pass",
      "terminal_gap": "0.00",
      "terminal_raw_gap": "0.00001870",
      "valuation_timestamps_match": true,
      "valuations": 4146
    },
    {
      "case_study": "us_equities_panel",
      "equity_gap": "0.00",
      "equity_raw_gap": "0.00000170",
      "fill_gap": "0.00000000",
      "fills": 54242,
      "framework": "backtrader",
      "input_bundle_sha256": "02926d8a7f1c1f5b4855b2393d1763885288ef64950d5cf521ca96c61f454d88",
      "negative_control_detected": true,
      "profile": "backtrader_strict",
      "status": "pass",
      "terminal_gap": "0.00",
      "terminal_raw_gap": "0.00000160",
      "valuation_timestamps_match": true,
      "valuations": 4146
    },
    {
      "case_study": "us_equities_panel",
      "equity_gap": "0.00",
      "equity_raw_gap": "0.00000190",
      "fill_gap": "0.00000000",
      "fills": 54259,
      "framework": "zipline",
      "input_bundle_sha256": "02926d8a7f1c1f5b4855b2393d1763885288ef64950d5cf521ca96c61f454d88",
      "negative_control_detected": true,
      "profile": "zipline_strict",
      "status": "pass",
      "terminal_gap": "0.00",
      "terminal_raw_gap": "0.00000030",
      "valuation_timestamps_match": true,
      "valuations": 4027
    },
    {
      "case_study": "us_equities_panel",
      "equity_gap": "0.00",
      "equity_raw_gap": "0.00000460",
      "fill_gap": "0.00000000",
      "fills": 54265,
      "framework": "lean",
      "input_bundle_sha256": "02926d8a7f1c1f5b4855b2393d1763885288ef64950d5cf521ca96c61f454d88",
      "negative_control_detected": true,
      "profile": "lean",
      "status": "pass",
      "terminal_gap": "0.00",
      "terminal_raw_gap": "0.00000420",
      "valuation_timestamps_match": true,
      "valuations": 4027
    }
  ],
  "schema_version": 2,
  "scope": {
    "case_protocols": {
      "fx_pairs": "USD-quoted pairs from the frozen target stream, preserving native USD valuation in every required engine"
    },
    "case_studies": [
      "etfs",
      "cme_futures",
      "crypto_perps_funding",
      "fx_pairs",
      "us_equities_panel"
    ],
    "frameworks": [
      "vectorbt_pro",
      "vectorbt_oss",
      "backtrader",
      "zipline",
      "lean"
    ],
    "real_strategy_equivalence_gate_passed": true,
    "required_pairs": 17,
    "unsupported_pairs": 8
  },
  "synthetic_stress": {
    "assets": 250,
    "bars": 1260000,
    "comparison_policy": {
      "account_money_quantum": "0.01",
      "record_numeric_quantum": "1E-8"
    },
    "generated_at": "2026-09-03T08:44:03.035191+00:00",
    "records": [
      {
        "fills": 423313,
        "framework": "vectorbt_pro",
        "intents": 427790,
        "status": "pass",
        "terminal_value": 1285886.32,
        "trades": 222751
      },
      {
        "fills": 417941,
        "framework": "vectorbt_oss",
        "intents": 427790,
        "status": "pass",
        "terminal_value": 1345348.85,
        "trades": 211322
      },
      {
        "fills": 343813,
        "framework": "backtrader",
        "intents": 427790,
        "status": "pass",
        "terminal_value": -9166273.56,
        "trades": 182019
      },
      {
        "fills": 427696,
        "framework": "zipline",
        "intents": 427790,
        "status": "pass",
        "terminal_value": 10504095.9,
        "trades": 226434
      },
      {
        "fills": 361297,
        "framework": "lean",
        "intents": 427790,
        "status": "pass",
        "terminal_value": 184538.13,
        "trades": 191297
      }
    ],
    "sessions": 5040,
    "synthetic": true
  },
  "unsupported_records": [
    {
      "case_study": "cme_futures",
      "framework": "vectorbt_oss",
      "reason": "no native futures contract multiplier and margin-account model",
      "source": "https://vectorbt.dev/api/portfolio/base/",
      "status": "unsupported"
    },
    {
      "case_study": "cme_futures",
      "framework": "zipline",
      "reason": "the frozen workload has continuous root series but no dated contract chain or roll map",
      "source": "https://zipline.ml4trading.io/api-reference.html",
      "status": "unsupported"
    },
    {
      "case_study": "cme_futures",
      "framework": "lean",
      "reason": "the frozen workload has continuous root series but no dated contract chain or roll map",
      "source": "https://www.quantconnect.com/docs/v2/writing-algorithms/securities/asset-classes/futures",
      "status": "unsupported"
    },
    {
      "case_study": "crypto_perps_funding",
      "framework": "vectorbt_pro",
      "reason": "no native perpetual-futures funding and margin-account model",
      "source": "https://vectorbt.pro/features/portfolio/",
      "status": "unsupported"
    },
    {
      "case_study": "crypto_perps_funding",
      "framework": "vectorbt_oss",
      "reason": "no native perpetual-futures funding and margin-account model",
      "source": "https://vectorbt.dev/api/portfolio/base/",
      "status": "unsupported"
    },
    {
      "case_study": "crypto_perps_funding",
      "framework": "backtrader",
      "reason": "no native perpetual-futures funding model",
      "source": "https://www.backtrader.com/docu/commission-schemes/commission-schemes/",
      "status": "unsupported"
    },
    {
      "case_study": "crypto_perps_funding",
      "framework": "zipline",
      "reason": "no crypto perpetual-futures asset and funding model",
      "source": "https://zipline.ml4trading.io/api-reference.html",
      "status": "unsupported"
    },
    {
      "case_study": "fx_pairs",
      "framework": "zipline",
      "reason": "no native spot-forex asset, currency cashbook, or conversion model",
      "source": "https://zipline.ml4trading.io/api-reference.html",
      "status": "unsupported"
    }
  ]
}

```

Exibido na íntegra, com atribuição conforme a licença da fonte. Licença: MIT

Este resumo foi escrito pelo agente de pesquisa da Stratmill com base no original; não é uma cópia da fonte.