Files
fidc-backtest-engine/docs/evidence/stock-state-calendar-index-reuse-20260905.json

93 lines
4.3 KiB
JSON

{
"schemaVersion": "fidc-stock-state-calendar-index-reuse-ab/v1",
"measuredAt": "2026-09-05T00:02:00+08:00",
"host": "192.168.31.177",
"engineCommit": "6d458dbbc6fa3acb1bff0824307281c82170031a",
"serviceCommit": "9fd5a9e6d5668af57f6942fc3c4127953545d9c6",
"serviceBinarySha256": "bcd918407de2aa3fdc230d8e9976be5cbf5d3b53185f2a528d55beb10f5f1552",
"runnerBinarySha256": "e33dd75aa7b481975c0991cf634d07900cdefa51756802e28e64f18b980a83dc",
"implementation": {
"description": "resolve the trading-calendar index once when the per-day stock-state cache advances, then reuse it for decision and current rolling-series boundaries",
"cachedFactorValues": false,
"cachedSelectionResults": false,
"cachedOrderState": false,
"pitSemanticsChanged": false,
"adjustmentSemanticsChanged": false,
"fallback": "dates outside the indexed calendar retain the existing date-based rolling fallback"
},
"componentBenchmark": {
"samples": 6,
"iterationsPerSample": 5000000,
"dateLookupSeconds": 0.400282218,
"reusedCalendarIndexSeconds": 0.070751718,
"speedup": 5.657561813552005,
"checksum": 90000000,
"equal": true
},
"testGate": {
"coreUnitTotal": 419,
"corePassed": 413,
"ignoredManualBenchmarks": 6,
"failed": 0,
"integrationSuitesPassed": true
},
"primaryFiveYearContract": {
"startDate": "2021-08-23",
"endDate": "2026-08-28",
"frequency": "1d",
"matchingType": "next_bar_open",
"totalReturn": 0.9219861819172002,
"tradeCount": 26088,
"canonicalSha256": "b42fea66237d06eadb24f6b8c9e2760e7319fe3699f315b99e01f433ef2aa234",
"resultStoreSha256": "92343fb369fea68b2544b654151c5c43a935940580b14afbe8eefb3844f72a54",
"beforeEngineSeconds": [6.764, 6.391, 12.387],
"beforeMedianEngineSeconds": 6.764,
"afterHotEngineSeconds": [6.224, 6.497, 6.405, 6.539, 6.386],
"afterMedianEngineSeconds": 6.405,
"observedMedianImprovementPercent": 5.307510348905976,
"benchmarkSummaryProcessHotMedianSeconds": {
"before": 9.389,
"after": 6.451
},
"note": "The explicit all-run medians are reported above. The benchmark tool excludes its first run when calculating processHotMedian; concurrent non-FIDC load makes the tool summary less comparable than the complete sample list."
},
"secondaryFiveYearContract": {
"description": "same frozen source and execution contract with target positions changed from 30 to 20",
"totalReturn": 1.1342962298106998,
"tradeCount": 19404,
"canonicalSha256": "0dbd3fad624097c673c4a5ec2f545f95e9c21d1d5337bb2b48ffeb22b16cb2b9",
"resultStoreSha256": "416d2f87241fb4c6b917f6aeecb588f82f6e7d51a103f4c53a74d11971f16839",
"engineSeconds": [6.217, 9.279, 10.771],
"resultConsistent": true,
"performanceClaimed": false,
"reason": "two runs overlapped high external host contention; the strategy is retained as cross-strategy semantic evidence only"
},
"excludedHighContentionBatch": {
"hostLoadAverageObserved": [65.08, 44.49, 35.56],
"engineSeconds": [11.601, 12.061, 33.904, 23.149, 7.391],
"resultConsistent": true,
"performanceComparisonExcluded": true,
"reason": "independent tan processes and active FIDC symbolic workers caused material host scheduling contention; no external process was modified"
},
"runtime": {
"servicePid": 2548679,
"serviceUser": "boris",
"serviceState": "active/running",
"allowedCpus": "0 2 4 6 8 10 12 14 48 50 52 54 56 58 60 62",
"memoryCurrentBytes": 11426254848,
"memoryPeakBytes": 11427790848,
"maxConcurrentRuns": 1,
"runnerThreadsPerRun": 8
},
"remoteArtifacts": [
"/srv/fidc/canonical/run/fidc-private/evidence/calendar-index-before-20260904.json",
"/srv/fidc/canonical/run/fidc-private/evidence/calendar-index-after-20260904.json",
"/srv/fidc/canonical/run/fidc-private/evidence/calendar-index-after-hot-20260904.json",
"/srv/fidc/canonical/run/fidc-private/evidence/calendar-index-secondary-20260905.json"
],
"acceptance": {
"status": "accepted_component_and_primary_end_to_end_no_regression",
"reason": "the component path is materially faster, the stable primary five-year batch improves, and both frozen business contracts preserve exact returns, trade counts, canonical digests, result-store digests, and clean terminal audits"
}
}