Skip to content

A. Macro Regime Strategies (A.1--A.5)

Directional precious metals exposure driven by macroeconomic state variables. These strategies exploit the fundamental relationship between gold and macro factors: real rates, the dollar, inflation expectations, risk appetite, and central bank reserves.


Signal Flow

graph LR
    DFII10[DFII10<br/>Real Yield] --> A1[A.1 Real Rate]
    DXY[DXY Index] --> A2[A.2 DXY Gold]
    DXY --> A1
    T10YIE[T10YIE<br/>Breakeven] --> A3[A.3 Breakeven]
    WALCL[Fed Balance Sheet] --> A3
    VIX[VIX] --> A4[A.4 VIX Haven]
    SPX[SPX Drawdown] --> A4
    WGC[WGC/COFER Data] --> A5[A.5 Central Bank]

    A1 & A2 & A3 & A4 & A5 --> ALLOC[Macro Regime<br/>Allocator]
    ALLOC --> GLD[GLD/IAU/SGOL<br/>Position]

A.1 Real Rate Gold

Module: qgtm_strategies/real_rate_gold.py Class: RealRateGoldStrategy ID: real_rate_gold

Economic Rationale

Gold pays no coupon. Its opportunity cost is the real yield on inflation-protected securities (TIPS). When 10-year real yields (DFII10) are low and falling, the cost of holding gold declines relative to bonds, making gold attractive as a store of value. The DXY provides a secondary sizing overlay: a weaker dollar amplifies gold's appeal to non-USD holders.

Signal Formula

Step 1 -- Real yield tercile:

\[ T_t = \text{tercile}\bigl(\text{DFII10}_t,\; \text{lookback}=252\bigr) \]

Step 2 -- Rate-of-change z-score:

\[ \Delta r_t = \text{DFII10}_t - \text{DFII10}_{t-21} \]
\[ z_{\Delta r} = \frac{\Delta r_t - \bar{\Delta r}_{126}}{\sigma_{\Delta r, 126}} \]

Step 3 -- Entry condition:

\[ \text{signal} = \begin{cases} \text{LONG} & \text{if } T_t = 1 \text{ (bottom tercile)} \wedge z_{\Delta r} < 0 \\ \text{FLAT} & \text{otherwise} \end{cases} \]

Step 4 -- DXY sizing overlay:

\[ w_t = \min\!\Bigl(\text{max\_weight},\; \bigl|z_{\text{DXY},63}\bigr| \times 0.2\Bigr) \]

where \(z_{\text{DXY},63}\) is the 63-day DXY momentum z-score (inverted: falling DXY = larger weight).

Step 5 -- Triple-barrier exit:

  • Profit take: 2 ATR
  • Stop loss: 1 ATR
  • Max hold: 21 trading days

Parameters

Parameter Default Range Description
lookback 252 126--504 Tercile computation window
rate_change_window 21 10--42 Days for rate delta
zscore_lookback 126 63--252 Z-score denominator window
dxy_momentum_window 63 21--126 DXY momentum lookback
max_weight 0.6 0.2--1.0 Position cap

Factor Exposures

Factor Loading
Metals +0.8
Real rates -0.7
Dollar -0.4

Capacity & Decay

  • Max capacity: $50M (Almgren-Chriss, 1% ADV limit)
  • Alpha half-life: 63 days
  • Kill condition: 6-month rolling Sharpe < 50% of in-sample for 2 consecutive months
  • Expected Sharpe: 0.6--1.0

Regime Conditions

Active in all regimes. Performance strongest in easing/dovish environments.

References

  • Erb & Harvey (2013) "The Golden Dilemma"
  • Baur & Lucey (2010) "Is gold a hedge or a safe haven?"
  • Lopez de Prado (2018) AFML Ch. 3 -- triple-barrier method

A.2 DXY Gold

Module: qgtm_strategies/dxy_gold.py Class: DXYGoldStrategy ID: dxy_gold

Economic Rationale

Gold is priced in USD. A weaker dollar mechanically lifts gold's price for foreign buyers. The canonical inverse correlation (approx -0.4 to -0.6 rolling) occasionally breaks down. When gold has not moved in line with DXY (dislocation), the relationship tends to snap back. This strategy fades those dislocations.

Signal Formula

Step 1 -- Rolling OLS residual:

\[ \text{GLD}_t = \alpha + \beta \cdot \text{DXY}_t + \varepsilon_t \]

estimated over a rolling 63-day window.

Step 2 -- Residual z-score:

\[ z_{\varepsilon} = \frac{\varepsilon_t - \bar{\varepsilon}_{63}}{\sigma_{\varepsilon, 63}} \]

Step 3 -- Entry rules:

\[ \text{signal} = \begin{cases} \text{LONG} & \text{if } z_{\varepsilon} < -2 \quad (\text{gold underperformed DXY move}) \\ \text{SHORT} & \text{if } z_{\varepsilon} > +2 \quad (\text{gold overperformed DXY move}) \\ \text{FLAT} & \text{otherwise} \end{cases} \]

Step 4 -- Conviction sizing:

\[ w_t = \text{clip}\!\left(\frac{|z_{\varepsilon}|}{4},\; 0,\; 1\right) \times |\rho_{63}| \]

where \(\rho_{63}\) is the rolling 63-day correlation (higher |corr| = higher conviction).

Factor Exposures

Factor Loading
Metals +0.6
Dollar -0.8
Momentum +0.2

Capacity & Decay

  • Max capacity: $30M
  • Alpha half-life: 42 days
  • Kill condition: Rolling 6m Sharpe < 0.15 for 3 months
  • Expected Sharpe: 0.5--0.9

References

  • Capie, Mills, Wood (2005) "Gold as a hedge against the dollar"
  • Joy (2011) "Gold and the US dollar: regime-dependent correlation"

A.3 Breakeven Inflation Gold

Module: qgtm_strategies/breakeven_inflation_gold.py Class: BreakevenInflationGoldStrategy ID: breakeven_inflation_gold

Economic Rationale

Gold is the canonical inflation hedge. When 10-year breakeven inflation (T10YIE) is rising AND the Fed balance sheet (WALCL) is expanding, fiat debasement fears drive gold demand. The dual signal (rising inflation expectations + monetary accommodation) identifies the inflationary-expansion regime.

Signal Formula

\[ z_{\text{BE}} = \text{zscore}\!\bigl(\Delta \text{T10YIE}_{21d},\; \text{lookback}\bigr) \]
\[ z_{\text{BS}} = \text{zscore}\!\bigl(\Delta\% \text{WALCL}_{21d},\; \text{lookback}\bigr) \]
\[ \text{composite} = 0.6 \cdot z_{\text{BE}} + 0.4 \cdot z_{\text{BS}} \]
\[ w_t = \begin{cases} \text{clip}\!\left(\dfrac{\text{composite}}{3},\; -1,\; 1\right) & \text{if } z_{\text{BE}} > 0 \wedge z_{\text{BS}} > 0 \\ 0 & \text{otherwise (regime filter)} \end{cases} \]

Factor Exposures

Factor Loading
Metals +0.7
Real rates -0.5
Momentum +0.3

Capacity & Decay

  • Max capacity: $40M
  • Alpha half-life: 84 days
  • Kill condition: Composite signal produces negative PnL for 6 consecutive months
  • Expected Sharpe: 0.4--0.8

References

  • Erb & Harvey (2013) "The Golden Dilemma"
  • Bekaert & Wang (2010) "Inflation risk and the inflation risk premium"
  • Boudoukh & Richardson (1993) "Stock Returns and Inflation"

A.4 VIX Haven

Module: qgtm_strategies/vix_haven.py Class: VIXHavenStrategy ID: vix_haven

Economic Rationale

Gold acts as a safe haven during elevated market stress. When VIX spikes beyond 2 sigma and equities draw down > 5%, capital rotates into gold. Conversely, in complacent markets (VIX at cycle lows, equities grinding higher), gold underperforms.

Signal Formula

\[ z_{\text{VIX}} = \frac{\text{VIX}_t - \bar{\text{VIX}}_{252}}{\sigma_{\text{VIX}, 252}} \]
\[ \text{DD}_t = \frac{P_t - \max_{s \in [t-63, t]} P_s}{\max_{s \in [t-63, t]} P_s} \]

Haven classifier:

\[ \text{score} = 0.6 \cdot z_{\text{VIX}} + 0.4 \cdot |\text{DD}_t| \cdot 20 \]

Entry rules:

Regime Condition Signal
Risk-off \(z_{\text{VIX}} > 2\) AND \(\text{DD}_t < -5\%\) LONG
Complacency \(z_{\text{VIX}} < -1.5\) AND \(\text{DD}_t > -1\%\) SHORT
Neutral Otherwise FLAT

Regime Decision Tree

graph TD
    START[Daily Bar] --> VZ{VIX z > 2?}
    VZ -- Yes --> DD{Equity DD > 5%?}
    DD -- Yes --> LONG[LONG GLD<br/>w = haven_score / 4]
    DD -- No --> FLAT1[FLAT]
    VZ -- No --> VC{VIX z < -1.5?}
    VC -- Yes --> DDC{DD < 1%?}
    DDC -- Yes --> SHORT[SHORT GLD<br/>w = -0.15]
    DDC -- No --> FLAT2[FLAT]
    VC -- No --> FLAT3[FLAT]

Factor Exposures

Factor Loading
Metals +0.7
Volatility +0.6
Market -0.3

Capacity & Decay

  • Max capacity: $40M
  • Alpha half-life: 21 days (fast-moving crisis alpha)
  • Kill condition: Strategy loses money during a VIX > 30 event (should not happen)
  • Expected Sharpe: 0.7--1.2 (high due to crisis premium)

Regime Conditions

Tagged for RISK_OFF and CRISIS regimes. Active in all but performs best during stress.

References

  • Baur & Lucey (2010) "Is gold a hedge or a safe haven?"
  • Baur & McDermott (2010) "Is gold a safe haven? International evidence"
  • Reboredo (2013) "Is gold a safe haven or a hedge for the US dollar?"

A.5 Central Bank Accumulation

Module: qgtm_strategies/central_bank_gold.py Class: CentralBankGoldStrategy ID: central_bank_gold

Economic Rationale

Central banks are the largest marginal buyers of physical gold. When reserve managers (especially EM central banks) are accumulating, they create persistent demand that supports price over multi-quarter horizons. Post-2022 de-dollarization has made CB gold buying the dominant structural demand factor.

Signal Formula

\[ z_{\text{CB}} = \text{zscore}\!\bigl(\text{quarterly\_cb\_purchases},\; 20\text{-quarter lookback}\bigr) \]
\[ \Delta_{\text{share}} = \text{gold\_share\_of\_reserves}_t - \text{gold\_share\_of\_reserves}_{t-4Q} \]
\[ w_t = \text{clip}\!\left(\frac{0.7 \cdot z_{\text{CB}} + 0.3 \cdot z_{\Delta\text{share}}}{3},\; -0.3,\; 0.3\right) \]

Small position, high conviction

Max weight is intentionally capped at 0.3. This is a structural tilt, not a trade. Rebalance monthly; signal updates quarterly from WGC/COFER data.

Factor Exposures

Factor Loading
Metals +0.9
Value +0.3

Capacity & Decay

  • Max capacity: $100M (very liquid; structural position)
  • Alpha half-life: 504 days (2 years; secular trend)
  • Kill condition: CB buying reverses to net selling for 4 consecutive quarters
  • Expected Sharpe: 0.3--0.6 (low frequency, low turnover)

References

  • World Gold Council "Gold Demand Trends" (quarterly)
  • IMF COFER database
  • Arslanalp, Eichengreen, Simpson-Bell (2022) "The Stealth Erosion of Dollar Dominance"