Broad-market and thematic ETF exposure — including leverage — steered by rule, bounded by governance.
Broad is a member of the Blaque Baux family. The core repo
is the engine and blueprint. Broad points that engine at index and thematic ETFs —
IVES (AI), GRNY (Granny Shots), QQQ (Nasdaq-100), and TQQQ (3x Nasdaq-100) — trading
broad exposures and the occasional leveraged wrapper, with the engine's governance on the
order path. Leverage here is a sizing choice the safety gate bounds, never a bypass.
Not investment advice. Educational/research software. Leveraged/decay products (e.g. TQQQ) can lose value even in a flat market and compound losses in chop. Nothing here is validated. See LICENSE.
git clone --recursive https://github.com/blaquebaux/broad.git
julia --project=engine -e 'using Pkg; Pkg.instantiate()' # one-time engine setupBroad ETFs are the cleanest place to express a trend/vol-target rule (deep liquidity, tight spreads). The catch is leverage: the base's leverage work is explicit that levering a book past its Kelly point lowers growth while deepening drawdown, and daily-reset products like TQQQ add volatility drag on top. So Broad's job is to hold broad/thematic exposure with a vol-target that treats a 3x product as 3x risk, not 3x free return.
- Trend / vol-target on broad ETFs — QQQ/broad indices, each vol-targeted; the honest baseline.
- Leverage decay, measured — quantify TQQQ's path-dependence vs 3× QQQ (the base's
leverage_decisionanalysis applied to a daily-reset product); when is the wrapper worth it? - Thematic rotation — IVES / GRNY and peers: cross-thematic momentum, tested beta-neutral so it is real rotation and not just market beta (and mindful of their short live histories).
Full detail in research/README.md. The scorecard:
| # | Question | Verdict |
|---|---|---|
| 1 | Is the TQQQ leverage wrapper worth it? | ❌ no — at equal vol it costs ~3% CAGR / 0.12 Sharpe; buy&hold triples the drawdown, not the Sharpe |
| 2 | The keeper? | ✅ trend+vol-target on unlevered QQQ: +0.95 Sharpe, −16% DD (vs −35% buy&hold) |
| 3 | Thematic ETFs (IVES/GRNY)? | ❌ weak — IVES lagged QQQ (+0.32 vs +1.00); GRNY too short |
The synthesis: the distinctive Broad finding is that TQQQ is not free leverage. Decay is regime-dependent (it compounded in the bull, beating naive 3×), but its Sharpe is lower (0.82 vs 0.93) and its drawdown catastrophic (−82%); and the decisive equal-vol test shows the wrapper costs ~3% CAGR / 0.12 Sharpe at matched risk. The value in broad ETFs is managing exposure, not the wrapper: trend + vol-target on unlevered QQQ gets Sharpe +0.95 at −16% DD, and routing it through TQQQ is worse everywhere. Actionable law (extending the base's leverage_decision): for a governed book, size the unlevered index; never buy-and-hold the daily-reset wrapper. Caveat: the keeper is a managed-equity-beta sleeve (~corr 1 to equities), not a diversifier.
BROAD consumes the regime read published by Bonds
(~/.config/blaquebaux/bonds_regime.txt). When the stock-bond correlation is positive (bond hedge
dead — no diversification cushion) BROAD de-risks its managed gross by ×0.75; negative (hedge
live) → full managed exposure. Graceful: missing/stale (>7d)/off → full gross; the overlay only ever
reduces risk. Toggle BB_BONDS_OVERLAY=0, tune BB_REGIME_DERISK.
Validated (live/broad_regime_validation.jl) — causal daily
walk-forward, net of cost, reusing the real book + the same 63d SPY–IEF regime the bonds driver
publishes, on the full 2016–2026 SIP history:
| book | Sharpe | CAGR | vol | maxDD |
|---|---|---|---|---|
| FULL (managed gross) | +0.94 | 10.7% | 11.5% | −14% |
| OVERLAY (regime de-risk) | +0.96 | 10.2% | 10.7% | −14% |
Slightly better Sharpe (+0.02), marginally shallower drawdown, 95% of the return retained (de-risked 32% of days). BROAD is the only equity consumer where the overlay survives a full-cycle re-test — because it already self-de-risks through its trend signal and vol-target, so the small further trim is consistent rather than window-dependent (unlike Boom, whose apparent benefit was a 2022 artifact). Marginal, but it earns its place: a guardrail, not an alpha boost.
BROAD was also tested against benchmark's market_regime.txt
and declined it, on the data (live/broad_market_regime_validation.jl):
gating the managed book on the market regime cut Sharpe (+0.84→+0.80) with no drawdown-adjusted
gain. BROAD already de-risks through its vol-target, and market_regime is itself mostly vol-timing
(benchmark #3), so the two overlap — stacking a second vol-timing overlay just double-counts. The
bonds overlay (above) stays because it keys off the stock-bond correlation, which is orthogonal to
BROAD's own vol management; market_regime is not.
BROAD is a pure long-duration growth book (QQQ), so it's the natural consumer of
balanced's rate_regime.txt — the hypothesis being that rising
rates are a growth headwind that leads the selloff BROAD's reactive trend-following lags. Tested causally
(live/broad_rate_regime_validation.jl, full 2016–2026 SIP): de-risking
gross ×0.5 when rates are rising:
| book | Sharpe | CAGR | vol | maxDD | M² exc |
|---|---|---|---|---|---|
| FULL (managed gross) | +0.96 | 10.9% | 11.5% | −14% | +0.8% |
| + rate overlay | +1.03 | 9.4% | 9.2% | −14% | +2.0% |
The rate signal improves risk-adjusted return (Sharpe +0.96→+1.03, M² +0.8%→+2.0%, keeps 86% of return)
by trimming vol in rising-rate stretches — but it cuts 0% off the max drawdown (BROAD's worst DD isn't a
rising-rate event), so it fails the de-risking bar's drawdown leg. Same lesson as market_regime: BROAD
already self-manages via trend + vol-target, so even the right style signal can't earn a default place.
Ships OFF; opt in with BB_RATE_OVERLAY=1 for the vol/Sharpe efficiency (no drawdown insurance). The
signal stays published by balanced for a book that doesn't already self-de-risk.
Research: first pass complete; managed-exposure keeper — standalone driver built + bonds-regime
sizing overlay wired in and validated (research/ + live/). live/broad_live.jl runs it standalone
through the engine's governed order path + Layer-3 safety gate: multi-horizon trend (30/60/120d,
long-only) × vol-target on unlevered QQQ, capped at 1× (the leverage law), then scaled by the bonds
regime. Dry-run by default; graduates to paper with its own isolated keys. A managed-equity-beta
sleeve; not validated to the spine's bar.
BB_DRYRUN=1 julia --project=engine live/broad_live.jl # prints the managed exposure
julia --project=engine live/broad_regime_validation.jl # the overlay-earns-its-place testBlaque Baux is a quantitative research initiative and a subsidiary of Carter Warrens. BlaqueBaux.com is the home for the work; the code lives here on GitHub — open to study, test, and build bespoke strategies on top of.
Anyone can point an AI at a market. The edge is understanding what the data actually says — and turning it into something you can act on. We test relentlessly and put most of it on the record as rejected, with the reason; what survives is built, governed, and validated before it is ever called real. That combination — honest research, reproducible evidence, and execution you can trust — is why Carter Warrens leads on strategy and implementation, not merely uses the tools everyone now has.
This repo is one sleeve of the Blaque Baux family — a single governed engine steered in many directions. The core repo is the base/blueprint and holds the full family roster.
engine/ the Blaque Baux platform (git submodule → blaquebaux/base)
research/ three Path-A sketches (leverage decay, managed-leverage keeper, thematic) + scorecard
live/ broad_live.jl (managed QQQ; bonds-regime ON, rate-regime opt-in) + broad_regime_validation.jl
+ broad_market_regime_validation.jl (declined) + broad_rate_regime_validation.jl (opt-in) + wrapper + plist
MIT. © 2026 Carter Warrens.