← All tasks
T30 · Systematic Allocation

Two is Better Than One: Regularized Shrinkage of Large Minimum Variance Portfolios

Taras Bodnar et al. (3 authors), 2024 · Journal of Machine Learning Research

0%
pass@1 across 16 systems
0/16
systems with ≥1 successful attempt
0/5
no system produced a successful attempt
80 attempts · 16 systems × 5
Claude Code + Opus 5
0%
Claude Code + Opus 4.8
0%
Claude Code + Opus 4.7
0%
Codex + GPT-5.6-sol
0%
Codex + GPT-5.5
0%
OpenCode + Kimi-K3
0%
OpenCode + Opus 4.7
0%
OpenCode + GPT-5.5
0%
OpenCode + Sonnet 4.6
0%
OpenCode + Qwen3.7-Max
0%
OpenCode + GLM-5.2
0%
OpenCode + DeepSeek V4-Pro
0%
OpenCode + GLM-5.1
0%
OpenCode + Qwen 3.6 Plus
0%
OpenCode + MiniMax-M3
0%
OpenCode + MiniMax M2.7
0%
all checkers pass Type-A clean, Type-B fail fail checking timeout no result / incomplete
Strategy

What the paper asks for.

Combine Tikhonov-regularized GMV weights with a second shrinkage toward an equally weighted target, choosing lambda and psi analytically from the paper's bona-fide random-matrix loss estimator rather than cross-validation.

Type
technical
Implementation
pandas
Rebalance
daily
Long-short
yes
Declared task setup
Data
One-command fetcher for WRDS-sourced task data
Operational scope
The paper-defined methodological core is retained; the fixed instruction instantiates only the data mappings, interfaces, and evaluation conventions needed for execution.
Six-stage quantitative strategy pipeline
  1. 01 Data loading
  2. 02 Feature engineering
  3. 03 Model fitting
  4. 04 Signal generation
  5. 05 Portfolio construction
  6. 06 Execution
Checker suite

22 properties · 80 attempts.

Each row is one requirement the strategy must satisfy. The bar reports the share of observed checker verdicts that pass; missing checker output is not converted into a property verdict.

TYPE A · DOMAIN-LEVEL (9)
  • A1
    no backfill
    stage · data loading
    55/75
  • A2
    no global normalize
    stage · feature eng
    75/75
  • A3
    no future data access
    stage · feature eng
    73/75
  • A4
    causal consistency
    stage · signal gen
    54/75
  • A5
    no survivorship bias
    stage · data loading
    65/75
  • A6
    train test temporal order
    stage · model fit
    59/75
  • A8
    transaction timing
    stage · execution
    54/75
  • A9
    signal delay test
    stage · signal gen
    57/75
  • A10
    e2e metric consistency
    75/75
TYPE B · PAPER-SPECIFIC (13)
  • B1
    double shrinkage weight formula
    §§1, Eq. 8 “ŵSh;λ,ψ = ψ ŵS;λ + (1 − ψ)b, where ψ is the shrinkage intensity.”
    provenance · paper-explicit
    stage · portfolio
    73/75
  • B2
    target portfolio equally weighted
    §§1, after Eq. 8 “In many cases, a naive portfolio b = 1/p 1 is a good choice.”
    provenance · paper-explicit
    stage · portfolio
    73/75
  • B3
    rolling window size 250
    §§4.3 “we fix the window size to n = 250 or n = 500”
    provenance · paper-explicit
    stage · data loading
    45/75
  • B4
    analytical lambda optimization not cv
    §§1, §3 “The approach we develop needs neither resampling methods nor grid search but instead relies on methods from random matrix theory. A bona fide type loss function is constructed that consistently estimates the true loss function.”
    provenance · paper-explicit
    stage · model fit
    42/75
  • B5
    analytical psi computation
    §§3, Theorem 4 (ii), Eq. 36 “ψ̂*_n(λ) = [1 - (1/(b^T S b)) d₁(η)/(1^T S_λ^{-1} 1)] / [1 - (2/(b^T S b)) d₁(η)/(1^T S_λ^{-1} 1) + (1/(b^T S b)) (1-v̂'_2(η,0)) d₂(η)/(1^T S_λ^{-1} 1)²]”
    provenance · paper-explicit
    stage · model fit
    37/75
  • B6
    log returns not simple
    §§4.3 “daily log returns on 431 assets included in the S&P 500 index”
    provenance · paper-explicit
    stage · data loading
    47/75
  • B7
    regularized gmv weights formula
    §§1, Eq. 7 “ŵS;λ = (Sn + ηI)^{-1} 1 / (1⊤(Sn + ηI)^{-1} 1)”
    provenance · paper-explicit
    stage · model fit
    70/75
  • B8
    stieltjes transform functionals
    §§3, Theorem 2 “v̂(η,0) = 1 - c(1 - η (1/p) tr((S_n + ηI)^{-1})), v̂'_1(η,0) = v̂(η,0) c [(1/p) tr((S_n+ηI)^{-1}) - η(1/p) tr((S_n+ηI)^{-2})]”
    provenance · paper-explicit
    stage · model fit
    25/75
  • B9
    auxiliary quantities d1 d2
    §§3, Eqs. 31-32 “d1(η) = λ^{-1}/v̂(η,0) [1 - (1-λ) b⊤ S_λ^{-1} 1] and d2(η) = [1/(λ v̂(η,0)) 1⊤ S_λ^{-1} 1 - (1-λ)/(λ v̂(η,0)) (1⊤ S_λ^{-2} 1 - λ^{-1} v̂'_1/v̂ 1⊤ S_λ^{-1} 1)/(1 - v̂'_1/v̂ (1/λ-1))]”
    provenance · paper-explicit
    stage · model fit
    33/75
  • B10
    bona fide loss function formula
    §§3, Theorem 4 (i), Eq. 34 “L̂_{n;2}(λ) = (1 - (1/(b⊤Sb)) d₁(η)/(1⊤S_λ^{-1}1))² / (1 - (2/(b⊤Sb)) d₁(η)/(1⊤S_λ^{-1}1) + (1/(b⊤Sb)) (1-v̂'₂(η,0)) d₂(η)/(1⊤S_λ^{-1}1)²)”
    provenance · paper-explicit
    stage · model fit
    4/75
  • B11
    sample covariance formula
    §§1, Eq. 4 “Sn = 1/n (Yn − ȳn1⊤)(Yn − ȳn1⊤)⊤ with ȳn = 1/n Yn 1”
    provenance · paper-explicit
    stage · feature eng
    37/75
  • B12
    concentration ratio c
    §Section 2 “the number of assets p and the sample size n tend to infinity, while their ratio p/n tends to a constant c > 0”
    provenance · paper-explicit
    stage · model fit
    26/75
  • B13
    eta lambda reparameterization
    §Section 1, after Equation 7 “Without loss of generality, we set eta = 1/lambda - 1 where lambda is in (0, 1].”
    provenance · paper-explicit
    stage · model fit
    53/75
What this task reveals

The lowest-passing observed requirement is bona fide loss function formula: 4 of 75 observed checker verdicts pass. The full property list above shows whether errors concentrate in domain-level validity or the paper-specific strategy logic.