Repository navigation
Preserve failure evidence and improve bounded executable portfolio repair - #29
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The previous integer repair could stop at local constraint-violation plateaus even when a legal account target existed. Retain the continuous objective and add an independently constrained minimum-risk seed, multi-lot moves, unequal exchanges and bounded backtracking. Exact fees, cash, sellability and post-fee risk still gate every published target; the shared default deadline remains 30 seconds.
Preserve the complete numerical objective, constraints, continuous candidate and repair trace on errors. Typed unavailable inputs remain distinct from infeasibility, numerical failure, timeout and unsuccessful integer search. Add diagnostic-only minimum-TE and minimum-turnover problems with independently checked residuals. Legal odd-lot selling requires an explicit execution venue policy.
Validation: full optimizer suite 545 passed/one skipped (80.84% coverage); subsequent solver/diagnostic regression 231 passed, plus the final Windows/Linux Python 3.10–3.12 CI matrix. The final ordinary-environment 102-case frozen-account audit repaired 65 and retained 37
repair_failed. All 65 passed an independent Decimal fee/cash, quantity, turnover and factor-risk calculation, including both 2024-01-05 witnesses (41/46). Remaining searches exhausted their allotted search time; their best unverified residuals range from 4.23e-6 to 1.14e-3, above the unchanged 1e-7 gate. They have no integer-infeasibility proof. The completed evolved-account study independently verifies 5,431 published targets across 132 strict/sensitivity account runs, with maximum normalized residual 9.9433e-8 and maximum successful rebalance 29.954 seconds. Those sequential paths remain distinct from the fixed 102-case counterfactual audit; retained search failures and unavailable inputs are reported explicitly. Full evidence and cross-risk conclusions are in PureSaber/quant-risk-monitor#33. No global integer optimality claim or relaxed trading constraint.Depends on PureSaber/quant-data-kit#47 and PureSaber/quant-execution#35. Default Barra definitions and frozen accounts remain unchanged.