Files
QuantEngineByItz/docs/WBS_10_DOTNET_PARITY_CONTRACT.yaml
kjh2064 eb3a33f124
Validators (Pushes and Pull Requests) / validate-ui-and-storage (push) Successful in 24s
CI Workflow Lint / validate-ci-workflow-lint (push) Failing after 12s
Validators (Pushes and Pull Requests) / validate-core (push) Has been cancelled
feat(dotnet): add parity contract and wiring
2026-07-13 00:06:48 +09:00

84 lines
2.8 KiB
YAML

formula_id: WBS_10_DOTNET_PARITY_CONTRACT_V1
owner: QuantEngine
status: draft
source_of_truth:
- src/dotnet/QuantEngine.Core/Domain/FormulaEngine.cs
- src/dotnet/QuantEngine.Core/Domain/ExitDecisions.cs
- src/dotnet/QuantEngine.Core/Domain/FactorCalculator.cs
- src/dotnet/QuantEngine.Core.Tests/FormulaEngineTests.cs
- src/dotnet/QuantEngine.Core.Tests/FactorCalculatorTests.cs
- src/dotnet/QuantEngine.Core.Tests/ParityTests/DomainParityTests.cs
goal: "Python reference와 .NET domain 결과를 데이터 기반 parity 계약으로 고정한다."
targets:
- target_id: formula_engine_timing
symbol: FormulaEngine.ComputeTimingDecision
tolerance:
numeric: 0
text: exact
evidence:
- src/dotnet/QuantEngine.Core.Tests/FormulaEngineTests.cs
- src/dotnet/QuantEngine.Core.Tests/ParityTests/DomainParityTests.cs
pass_condition: "timing action/reason이 reference와 동일"
- target_id: formula_engine_sell
symbol: FormulaEngine.ComputeSellDecision
tolerance:
numeric: 0
text: exact
evidence:
- src/dotnet/QuantEngine.Core.Tests/FormulaEngineTests.cs
- src/dotnet/QuantEngine.Core.Tests/ParityTests/DomainParityTests.cs
pass_condition: "sell action/ratio/validation이 reference와 동일"
- target_id: formula_engine_final
symbol: FormulaEngine.ComputeFinalDecision
tolerance:
numeric: 0
text: exact
evidence:
- src/dotnet/QuantEngine.Core.Tests/FormulaEngineTests.cs
- src/dotnet/QuantEngine.Core.Tests/ParityTests/DomainParityTests.cs
pass_condition: "final action/priority/source가 reference와 동일"
- target_id: exit_stop_price
symbol: ExitDecisions.ComputeStopPriceCore
tolerance:
numeric: 0.0001
text: exact
evidence:
- src/dotnet/QuantEngine.Core.Tests/ParityTests/DomainParityTests.cs
pass_condition: "stop price within tolerance"
- target_id: exit_stop_ladder
symbol: ExitDecisions.ComputeStopActionLadder
tolerance:
numeric: 0
text: exact
evidence:
- src/dotnet/QuantEngine.Core.Tests/ParityTests/DomainParityTests.cs
pass_condition: "exit action ladder exact match"
- target_id: exit_heat_thresholds
symbol: ExitDecisions.ComputeDynamicHeatThresholds
tolerance:
numeric: 0
text: exact
evidence:
- src/dotnet/QuantEngine.Core.Tests/ParityTests/DomainParityTests.cs
pass_condition: "heat thresholds exact match"
- target_id: factor_calculator
symbol: FactorCalculator.CalculateFactors
tolerance:
numeric: 0.000001
text: exact
evidence:
- src/dotnet/QuantEngine.Core.Tests/FactorCalculatorTests.cs
pass_condition: "factor outputs stable and deterministic"
execution_notes:
- "Parity is a contract, not a guess."
- "Do not add new parity targets without updating reference fixtures and tolerances."