Saltar a contenido

Sector concentration rules

Regla inicial era "30% cap por sector GICS". Resuelve SR-03. Refinamiento: agregar cap por sub-industry (ej. "Software-Systems", "Semiconductors") de 15% para evitar "big-tech concentration" disfrazada.

El problema del GICS sector

GICS tiene 11 sectors principales:

  1. Communication Services
  2. Consumer Discretionary
  3. Consumer Staples
  4. Energy
  5. Financials
  6. Health Care
  7. Industrials
  8. Information Technology
  9. Materials
  10. Real Estate
  11. Utilities

Problema: Information Technology incluye AAPL, MSFT, NVDA, AMD, INTC, ORCL, ADBE, etc. Todos con exposición similar a mega-cap tech + AI boom.

Un portfolio con 30% tech = 3 holdings en tech con ~10% cada uno. Todos moverán juntos durante tech correction.

Ejemplo reciente: marzo 2022 → nov 2022, IT sector perdió 35% mientras Energy subió 50%. Un portfolio sin cap sub-industry habría quedado expuesto.

Sub-industries — GICS nivel 4

Dentro de Information Technology, sub-industries incluyen:

  • Software - Systems (MSFT, ORCL, SAP)
  • Software - Applications (ADBE, CRM)
  • Semiconductors (NVDA, AMD, INTC)
  • Technology Hardware (AAPL, Dell)
  • IT Services (Accenture, IBM)
  • etc.

Cap por sub-industry reduce correlación dentro del portfolio.

Recomendación

Stack de 3 caps:

1. Por posición (ya existente)

  • Max 10% por ticker (equal weight con 10 posiciones).
  • Hard rule — Risk Agent reject.

2. Por sector GICS (ya existente)

  • Max 30% por sector nivel 1 (11 sectors).
  • Soft rule — si el composite ranking tiene 4 top holdings en un sector, accept pero warn.

3. Por sub-industry GICS nivel 4 (NUEVO)

  • Max 15% por sub-industry.
  • Hard rule — si agregar una posición llevaría sub-industry sobre 15%, rank check el siguiente en composite.

4. Correlation cap adicional (avanzado, post-MVP)

  • Max 3 holdings con correlation 0.7+ en último 6m.
  • Captura correlation emergente que GICS no refleja (ej. empresas que no son "mismo sector" pero reaccionan similar a FED rates).
  • Requiere correlation matrix del portfolio — complejidad adicional.

Implementación

SECTOR_CAP = 0.30
SUB_INDUSTRY_CAP = 0.15
POSITION_CAP = 0.10

def check_concentration(proposed_position, current_portfolio):
    new_port = current_portfolio + [proposed_position]

    # Position
    if position_pct(new_port, proposed_position) > POSITION_CAP:
        return REJECT, "position cap"

    # Sector
    sector_pct = sum_pct_by_sector(new_port, proposed_position.sector)
    if sector_pct > SECTOR_CAP:
        return REJECT, f"sector {proposed_position.sector} cap"

    # Sub-industry
    subind_pct = sum_pct_by_subindustry(new_port, proposed_position.subindustry)
    if subind_pct > SUB_INDUSTRY_CAP:
        return REJECT, f"sub-industry {proposed_position.subindustry} cap"

    return APPROVE

Integra al Risk Agent (concepts/agent-prompts).

Efecto sobre ranking

Supongamos Strategy Agent rankea top 10:

1. NVDA (Semi) 2.5
2. AMD (Semi) 2.3
3. AVGO (Semi) 2.2  ← sub-industry Semi ya en 20%, REJECT
4. MSFT (Software-Systems) 2.1
5. ...

AVGO es rejected por sub-industry cap. El slot va al siguiente fuera del top 3 semis.

Pérdida de alpha estimada: si 3 semis top 10 vs 2 semis + sustituto rank 11, diferencia composite score ~0.5. Cost esperado: <1% annualized en return.

Ganancia de risk: diversification reduce portfolio volatility. Esperable Sharpe mejora ~0.05-0.1.

Net: worth it.

Casos especiales

ETFs sectoriales

Si el user decide incluir sector ETFs (XLK, XLF, etc.) en el universe: treat cada ETF como sus top 3 holdings combinados para caps. Evita "meta-concentration" de incluir XLK + AAPL + MSFT.

REITs y financials

Estos sectors tienen sub-industries muy correlacionadas internally. Caps adicionales útiles:

  • REITs: max 2 holdings.
  • Banks: max 2 holdings.
  • Insurance: max 2 holdings.

Sector ciclicas vs defensivas

Cyclicals (Industrials, Materials, Discretionary) se mueven juntos en recessions. Si el regime filter (concepts/regime-detection) marca "transition", considerar reducir cap cyclicals de 30% → 20% temporalmente.

Gaps

  • Exact sub-industry mapping para los top 100 — requiere fuente GICS (SimFin tiene, verificar).
  • Empirical test: ¿cuánto cambia performance vs sin el sub-industry cap en backtest?
  • Interaction entre caps y factor scores: ¿qué pasa si value factor está concentrado en Financials por macro?

Relaciones