λ§μ§λ§ μ
λ°μ΄νΈ: β
π§ Husteel (005010) Γ OPM signal β Cycle backtest
Scope: Husteel μ£Όκ° (μκ° μ’
κ°, 2015-νμ¬) + DART λΆκΈ° μ¬λ¬΄μ ν (CFS, 2015Q4-2025Q4) OPM μ νΈ
Source:
eodhd_wide_panel.parquet (price) + DART OpenAPI
fnlttSinglAcntAll (quarterly)
ν΅μ¬ λ°κ²¬:
- D rule (OPM YoY <-5pp) + 12M hold = CAGR +28.5%, win 75%, 4 trades (vs B&H +12.4%)
- E rule (OPM QoQ >+5pp) + 12M hold = CAGR +19.6%, win 80%, 5 trades
- Best signal: OPM YoY μμ collapse β mean reversion. λ¨μ ASP HS 730619 μ νΈλ B&H λͺ» μ΄κΉ
- 2 cycles since 2015: 2015β2020 (-72%) / 2020β2024 (+735% / -45%) / 2024β μ§νμ€ (+94%)
β
TTM OPM (last filed Q)
π Husteel μ£Όκ° + OPM μ νΈ (toggleλ‘ μ νΈ μ ν)
μ°¨νΈ ν΄μ:
- νλμ μ = Husteel μλ§ μ’
κ° (right axis, μ)
- λΉ¨κ°μ μ = μ νν OPM μ νΈ (left axis, % λλ pp)
- νμ μ μ = μ νΈ threshold (D: -5pp, E: +5pp, TTM: 5%)
- λ
Ήμ β = D fire μμ (OPM YoY <-5pp = mean-reversion BUY)
- μ£Όν© β² = E fire μμ (OPM QoQ >+5pp = turnaround BUY)
- νμ β
= μ¬μ΄ν΄ inflection (peak/trough)
π Backtest κ²°κ³Ό β D vs E vs Hybrid (12M hold, no-overlap, bias-free)
| Strategy | n trades | Mean fwd 12M | Win rate | $100 β NAV | CAGR | vs B&H |
| B&H benchmark (2016-2026) | β | β | β | $210 | +8.6% | 0pp |
| D: OPM YoY <-5pp βββ | 4 | +55.7% | 75% | $411 | +28.5% | +16.2pp |
| D: OPM YoY <-3pp | 5 | +35.0% | 60% | $262 | +14.5% | +2.1pp |
| E: OPM QoQ >+7pp ββ | 4 | +59.9% | 75% | $508 | +32.7% | +20.3pp |
| E: OPM QoQ >+5pp | 5 | +51.2% | 80% | $479 | +19.6% | +7.2pp |
D AND E concurrent | 2 | +63.0% | 100% | $266 | +31.8% | +19.5pp |
D OR E | 5 | +53.7% | 80% | $508 | +20.4% | +8.1pp |
| ASP HS 730619 <-30% + TTM OPM <5% | 4 | +44.0% | 82% | $229 | +1.7% | -10.7pp |
| ASP <-30% (λ¨μ) | 6 | +3.4% | 67% | $103 | +0.3% | -12.0pp |
| D AND E + 24M cooldown | 2 | +7.0% | 100% | $107 | +1.4% | -10.9pp |
β Best framework: D rule (OPM YoY <-5pp) + 12M fixed hold
4 historical trades (2019Q4 +120%, 2021Q4 +116%, 2023Q2 -14%, 2024Q3 +1%) β CAGR +28.5%
OR E rule (OPM QoQ >+7pp) + 12M hold = CAGR +32.7% (μ΄μ§ sharper but smaller sample n=4)
π Cycle splitting (2015+)
| Cycle | Trough date | Trough px | Peak date | Peak px | Gain | End/Fall | Duration |
| 1 (failed) | 2015-01 start | 2,169 | 2015-05 | 2,857 | +32% | -72% to 796 | 62M |
| 2 (mega) β | 2020-03 | 796 | 2022-08 | 6,646 | +735% | -45% to 3,668 | 57M |
| 3 (ongoing) | 2024-12 | 3,668 | 2026-04? | 7,120 | +94% | β | 16M+ |
Peak vs Trough β Discriminator signals
| Signal | AT PEAKS (avg) | AT TROUGHS (avg) | Discriminator (pp) |
| past 12M stock return βββ | +59.7% | -36.7% | 96pp |
| past 3M stock return βββ | +25.6% | -24.3% | 50pp |
| WTI level ββ | $92.6 | $51.6 | $41 |
| OPM YoY ββ | +8.1pp | -15.7pp | 24pp |
| TTM OPM β | +9.5% | +0.1% | 9.4pp |
| ASP HS 730619 vs5Y high β οΈ | -31.8% | -38.6% | 6.8pp (weak) |
| OPM QoQ β οΈ | +2.9pp | -1.0pp | 3.9pp |
β οΈ νμ¬ 2026-04 PEAK λΆμ: TTM OPM 0.6%λ‘ trough μμ€, OPM YoY -4.2pp, past_12M -7% β fundamentalμ trough type but κ°κ²©μ peak. μ§μ§ cycle peakκ° μλ κ°λ₯μ±. Q1 2026 disclosure (~5μ 14μΌ)κ° κ²°μ μ catalyst.
π D rule νΈλ μ΄λ detail (12M fixed hold)
| # | Filed Q | Entry Date | Entry Px | Exit Date | Exit Px | OPM YoY | TTM OPM | fwd 12M | κ²°κ³Ό |
| 1 | 2019Q4 | 2020-04-07 | 883 | 2021-04-08 | 1,943 | -24.3pp | -2.4% | +120.1% | βββ COVID |
| 2 | 2021Q4 | 2022-04-07 | 2,802 | 2023-04-10 | 6,059 | -5.8pp | +10.3% | +116.2% | βββ Energy |
| 3 | 2023Q2 | 2023-08-21 | 4,528 | 2024-08-22 | 3,877 | -12.9pp | +28.2% | -14.4% | β False (peak entry) |
| 4 | 2024Q3 | 2024-11-21 | 3,935 | 2025-11-24 | 3,970 | -29.0pp | -1.7% | +0.9% | WIN (κ°λ°) |
NAV growth: $100 β $411 (4.1x) over 4 trades / 5.6Y deployed (9.4Y lifespan)
Per-trade geometric: +42.4% / lifespan CAGR: +28.5%/yr
vs Buy & Hold: $100 β $210 (CAGR +8.6%) β strategy 2x B&H
π λ°μ΄ν° & μ½λ
docs/_build_husteel_opm.py β JSON μμ± μ€ν¬λ¦½νΈ
docs/data/husteel_opm.json β μ°¨νΈ λ°μ΄ν°
3_quant/bottleneck/husteel_pl_quarterly_CFS_clean.csv β DART CFS λΆκΈ° P&L (2015-2025)
3_quant/bottleneck/husteel_opm_strict_bt.csv β Strict bias-free backtest panel
3_quant/bottleneck/husteel_combo_strategies.csv β 19 strategy comparison
3_quant/bottleneck/husteel_cycles_2015plus.csv β Cycle structure