# Quantitative Components — Complete DSL Primitive Reference

> **Module Location**: `packages/be/src/algorithms/dsl/types.ts`
> **Last Updated**: 2026-05-21
> **Total Primitives**: 506

Comprehensive documentation of all quantitative analysis primitives available in the AI Algorithm Builder.

---

## Executive Summary

The Agencio Predict platform provides **506 DSL primitives** across **16 categories** for building sophisticated trading algorithms. These primitives are:

- **Pure functions** — no side effects, deterministic evaluation
- **No look-ahead** — all data is `asOf`-frozen at evaluation time
- **Sandboxed** — no `eval()`, no arbitrary code execution
- **Whitelisted** — LLMs cannot invent primitives; only registered primitives are valid

---

## Category Summary

| Category | Count | Description |
|----------|-------|-------------|
| **Technical** | 194 | Price indicators, volatility models, statistical analysis |
| **PINN (ML)** | 56 | Physics-Informed Neural Network predictions |
| **Fundamental** | 55 | Factor models, financials, institutional data |
| **Macro** | 41 | VIX, yield curves, Fed policy, economic indicators |
| **Sentiment** | 38 | Social, funding rates, whale activity, Fear & Greed |
| **Cultural** | 22 | Religious/secular calendar events, seasonality |
| **Weather** | 21 | Climate, temperature, storms, agricultural |
| **Prediction Market** | 19 | Polymarket, Kalshi, Metaculus, wallet clustering |
| **Pattern** | 16 | Candlestick patterns, FVG, support/resistance |
| **Position** | 16 | P&L, drawdown, Kelly sizing, risk metrics |
| **Options** | 15 | Greeks, IV rank, put/call ratio, skew |
| **Sizing** | 9 | Position sizing algorithms |
| **Execution** | 8 | TWAP/VWAP, market impact, TCA |
| **Price** | 4 | Price, VWAP, volume z-score |
| **Composer** | 3 | Signal combination (all, any, weighted_avg) |
| **LLM** | 1 | AI-assisted confirmation |

**Total: 506 primitives**

---

## 1. Price Category (4 primitives)

Core price and volume metrics.

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `price(symbol)` | symbol | number | Latest price for symbol |
| `vwap(symbol, duration)` | symbol, duration | number | Volume-weighted average price over window |
| `volume_z(symbol, duration)` | symbol, duration | number | Z-score of current volume vs window mean |
| `spread(symbol)` | symbol | number | Bid-ask spread |

---

## 2. Technical Category (194 primitives)

### 2.1 Classic Indicators

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `rsi(period)` | number | number | Relative Strength Index (default 14) |
| `macd()` | — | number | MACD histogram value |
| `bb_upper(period, stddev)` | number, number | number | Bollinger upper band |
| `bb_lower(period, stddev)` | number, number | number | Bollinger lower band |
| `atr(period)` | number | number | Average True Range |
| `obv()` | — | number | On-balance volume |
| `adx(period)` | number | number | Average Directional Index |
| `sma(period)` | number | number | Simple Moving Average |
| `roc(period)` | number | number | Rate of Change (%) |
| `volume()` | — | number | Current bar volume |
| `volume_avg(period)` | number | number | Average volume over period |

### 2.2 Volatility Models

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `garch_volatility(lookback)` | number | number | GARCH(1,1) conditional volatility (annualized %) |
| `egarch_volatility(lookback)` | number | number | EGARCH volatility (asymmetric) |
| `gjr_volatility(lookback)` | number | number | GJR-GARCH volatility |
| `gjr_leverage_gamma(lookback)` | number | number | GJR leverage coefficient |
| `gjr_asymmetry_ratio(lookback)` | number | number | Bad vs good news vol response ratio |
| `figarch_volatility(lookback)` | number | number | FIGARCH long-memory volatility |
| `figarch_d(lookback)` | number | number | Fractional differencing parameter |
| `figarch_forecast(lookback, horizon)` | number, number | number | FIGARCH forecast at horizon |
| `has_long_memory(lookback)` | number | boolean | True if d > 0.35 |
| `realized_vol(symbol, window)` | symbol, number | number | Realized volatility |
| `vol_forecast(symbol)` | symbol | number | 1-day GARCH forecast |
| `vol_percentile(symbol)` | symbol | number | Percentile vs history (0-100) |
| `vol_regime(symbol)` | symbol | string | 'low'/'normal'/'high'/'extreme' |
| `is_vol_elevated(symbol)` | symbol | boolean | True if percentile ≥ 75 |
| `vol_of_vol(symbol)` | symbol | number | Volatility of volatility |
| `rough_vol_hurst(lookback)` | number | number | Rough volatility Hurst exponent |
| `is_vol_rough(lookback, threshold)` | number, number | boolean | True if vol Hurst < threshold |
| `leverage_effect(lookback)` | number | number | EGARCH leverage coefficient |
| `news_impact_asymmetry(lookback)` | number | number | Bad/good news impact ratio |

### 2.3 Trend Detection

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `hurst_exponent(lookback)` | number | number | Hurst [0-1]: <0.5=mean-reverting, >0.5=trending |
| `is_mean_reverting(lookback, threshold)` | number, number | boolean | True if Hurst < 0.4 |
| `is_trending(lookback, threshold)` | number, number | boolean | True if Hurst > 0.6 |
| `trend_up()` | — | boolean | True if in uptrend |
| `higher_highs()` | — | boolean | Consecutive higher highs |
| `lower_lows()` | — | boolean | Consecutive lower lows |

### 2.4 Pairs Trading / Cointegration

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `cointegrated(symbolA, symbolB, lookback)` | symbol, symbol, number | boolean | True if pair is cointegrated (p<0.05) |
| `spread_zscore(symbolA, symbolB, lookback)` | symbol, symbol, number | number | Z-score of pairs spread |
| `halflife(symbolA, symbolB, lookback)` | symbol, symbol, number | number | Mean-reversion half-life in bars |
| `hedge_ratio(symbolA, symbolB, lookback)` | symbol, symbol, number | number | Optimal hedge ratio β |
| `johansen_rank(symbolA, symbolB, lookback)` | symbol, symbol, number | number | Johansen cointegration rank |
| `johansen_cointegrated(symbolA, symbolB, lookback)` | symbol, symbol, number | boolean | True if Johansen rank > 0 |
| `johansen_zscore(symbolA, symbolB, lookback)` | symbol, symbol, number | number | Johansen portfolio spread z-score |

### 2.5 Correlation Analysis

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `correlation(symbolA, symbolB, window)` | symbol, symbol, number | number | Pearson correlation (-1 to 1) |
| `correlation_change(symbolA, symbolB)` | symbol, symbol | number | Short vs long window delta |
| `is_correlation_breakdown(symbolA, symbolB)` | symbol, symbol | boolean | Significant z-score deviation |
| `downside_correlation(symbolA, symbolB)` | symbol, symbol | number | Correlation in down markets |
| `correlation_asymmetry(symbolA, symbolB)` | symbol, symbol | number | Down - up market correlation |
| `correlation_to_btc(lookback)` | number | number | Rolling correlation to BTC |
| `correlation_to_spy(lookback)` | number | number | Rolling correlation to SPY |
| `beta_to_market(lookback)` | number | number | Beta to market benchmark |
| `decoupled_from_btc(lookback, threshold)` | number, number | boolean | True if BTC correlation below threshold |
| `dcc_correlation(sym1, sym2, lookback)` | symbol, symbol, number | number | DCC-GARCH dynamic correlation |
| `dcc_correlation_forecast(sym1, sym2, lookback)` | symbol, symbol, number | number | DCC correlation forecast |
| `dcc_persistence(sym1, sym2, lookback)` | symbol, symbol, number | number | Correlation persistence |
| `correlation_half_life(sym1, sym2, lookback)` | symbol, symbol, number | number | Half-life of correlation shocks |
| `is_correlation_elevated(sym1, sym2, lookback, threshold)` | symbol, symbol, number, number | boolean | True if |corr| > threshold |

### 2.6 Momentum

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `ts_momentum(symbol, days)` | symbol, number | number | Time-series momentum (return) |
| `xs_momentum_rank(symbol, universe)` | symbol, string | number | Cross-sectional rank (0-100) |
| `momentum_acceleration(symbol)` | symbol | number | Change in momentum |
| `risk_adjusted_momentum(symbol)` | symbol | number | Sharpe-like momentum ratio |
| `is_momentum_positive(symbol, days)` | symbol, number | boolean | True if momentum > 0 |
| `price_velocity(lookback)` | number | number | Price change rate per bar |

### 2.7 Order Book / Microstructure

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `book_imbalance(symbol)` | symbol | number | -1 to 1 (negative = more asks) |
| `depth_pressure(symbol)` | symbol | number | Bid/Ask depth ratio |
| `spread_bps(symbol)` | symbol | number | Bid-ask spread in basis points |
| `microprice(symbol)` | symbol | number | Volume-weighted mid price |
| `imbalance_zscore(symbol)` | symbol | number | Imbalance vs recent history |
| `has_bid_wall(symbol)` | symbol | boolean | Large bid order detected |
| `has_ask_wall(symbol)` | symbol | boolean | Large ask order detected |
| `bid_wall_size(symbol)` | symbol | number | Size of bid wall |
| `ask_wall_size(symbol)` | symbol | number | Size of ask wall |
| `orderbook_imbalance(symbol)` | symbol | number | Alternative imbalance measure |

### 2.8 Lead-Lag Analysis

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `leads(symbolA, symbolB)` | symbol, symbol | boolean | True if A leads B |
| `lag_correlation(symbolA, symbolB, lag)` | symbol, symbol, number | number | Correlation at specific lag |
| `optimal_lag(symbolA, symbolB)` | symbol, symbol | number | Lag with max correlation |
| `granger_causes(symbolA, symbolB)` | symbol, symbol | boolean | True if A Granger-causes B |

### 2.9 Structural Breaks

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `has_recent_break(symbol, days)` | symbol, number | boolean | Break detected in window |
| `regime_count(symbol)` | symbol | number | Number of regimes in year |
| `stability_score(symbol)` | symbol | number | 0-100 (higher = stable) |
| `is_regime_change(symbol)` | symbol | boolean | New regime in last 20 days |
| `cusum_break_detected(symbol)` | symbol | boolean | CUSUM test positive |

### 2.10 Volume Analysis

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `volume_spike(lookback, multiplier)` | number, number | boolean | Volume > avg * multiplier |
| `volatility_spike(lookback, multiplier)` | number, number | boolean | ATR > avg * multiplier |

### 2.11 Support/Resistance

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `support_level(lookback, touches)` | number, number | number | Key support level |
| `resistance_level(lookback, touches)` | number, number | number | Key resistance level |
| `cluster_high(lookback)` | number | number | Price cluster high |
| `cluster_low(lookback)` | number | number | Price cluster low |
| `cluster_mid(lookback)` | number | number | Price cluster midpoint |
| `in_cluster(lookback)` | number | boolean | Price in cluster zone |
| `holding_above(level)` | number | boolean | Price holding above level |
| `holding_below(level)` | number | boolean | Price holding below level |
| `broke_above(level)` | number | boolean | Recently broke above |
| `broke_below(level)` | number | boolean | Recently broke below |
| `retested(level)` | number | boolean | Level was retested |
| `price_at_level(level, tolerance)` | number, number | boolean | Price near level |

### 2.12 Tick-Level Analysis

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `whale_ratio(symbol)` | symbol | number | Large trade ratio |
| `bot_signature(symbol)` | symbol | number | Bot activity signature |
| `aggressor_imbalance(symbol)` | symbol | number | Buy vs sell aggressor |
| `vpin(symbol)` | symbol | number | Volume-synchronized PIN |
| `kyles_lambda(symbol)` | symbol | number | Price impact coefficient |

### 2.13 Sector Analysis

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `sector_momentum(sector, months)` | string, number | number | Sector return |
| `sector_relative_strength(sector)` | string | number | Relative to SPY |
| `is_sector_leading(sector)` | string | boolean | Top 3 by momentum |
| `sector_quadrant(sector)` | string | string | leading/weakening/lagging/improving |
| `sector_breadth()` | — | number | % positive (0-100) |
| `sector_rank(sector)` | string | number | 1=best, 11=worst |
| `sector_rs_percentile(sector)` | string | number | RS percentile (0-100) |
| `sector_rotation_score()` | — | number | Rotation strength |
| `sector_rotation_phase()` | — | string | Current rotation phase |
| `is_sector_rotating(phase)` | string | boolean | True if in given phase |
| `is_broadening()` | — | boolean | Market breadth improving |
| `rsp_spy_ratio()` | — | number | Equal-weight vs cap-weight |

### 2.14 Regime Detection (Technical)

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `regime_adjusted_garch_vol(lookback)` | number | number | Regime-weighted GARCH vol |
| `regime_garch_forecast(lookback)` | number | number | Regime-weighted forecast |
| `regime_vol_scaling(lookback)` | number | number | Vol scaling by regime |
| `regime_vol_bull(lookback)` | number | number | Vol in bull regime |
| `regime_vol_crisis(lookback)` | number | number | Vol in crisis regime |
| `is_vol_regime_shift(lookback, threshold)` | number, number | boolean | Vol regime changing |

### 2.15 Jump Detection

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `jump_intensity(lookback)` | number | number | Jump arrival rate |
| `jump_size_mean(lookback)` | number | number | Average jump size |
| `jump_volatility(lookback)` | number | number | Jump size volatility |
| `has_jump_detected(lookback)` | number | boolean | Jump in lookback |
| `jump_variance_ratio(lookback)` | number | number | Jump variance / total variance |
| `total_vol_with_jumps(lookback)` | number | number | Total volatility including jumps |
| `recent_jump_count(lookback)` | number | number | Count of recent jumps |
| `last_jump_size(lookback)` | number | number | Size of last jump |
| `is_jump_prone(lookback, threshold)` | number, number | boolean | Prone to jumps |
| `jump_detected_down(lookback)` | number | boolean | Downward jump detected |
| `jump_variance_moderate(lookback)` | number | boolean | Moderate jump variance |

### 2.16 Statistical Tests

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `hac_tstat_alpha(lookback)` | number | number | HAC-robust t-stat for alpha |
| `hac_tstat_beta(lookback)` | number | number | HAC-robust t-stat for beta |
| `hac_significant_alpha(lookback, critical)` | number, number | boolean | Alpha statistically significant |
| `hac_inflation_ratio(lookback)` | number | number | HAC inflation ratio |
| `garch_stable(lookback)` | number | boolean | GARCH params stable |
| `garch_param_drift(lookback)` | number | number | GARCH parameter drift |
| `garch_regime_change(lookback)` | number | boolean | GARCH regime changed |
| `adaptive_garch_vol(lookback)` | number | number | Adaptive online GARCH |

---

## 3. PINN Category (56 primitives)

Physics-Informed Neural Network predictions with trading constraints embedded.

### 3.1 Core Predictions

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `pinn_direction(symbol)` | symbol | number | Predicted direction (-1/0/+1) |
| `pinn_confidence(symbol)` | symbol | number | Prediction confidence (0-1) |
| `pinn_predicted_return(symbol)` | symbol | number | Predicted return |
| `pinn_velocity(symbol)` | symbol | number | Price velocity prediction |
| `pinn_accuracy(symbol)` | symbol | number | Historical accuracy |
| `pinn_is_bullish(symbol)` | symbol | boolean | Bullish prediction |
| `pinn_is_bearish(symbol)` | symbol | boolean | Bearish prediction |

### 3.2 Volatility Predictions

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `pinn_vol_forecast(symbol)` | symbol | number | Volatility forecast |
| `pinn_vol_regime(symbol)` | symbol | string | Vol regime prediction |
| `pinn_vol_regime_prob(symbol)` | symbol | number | Vol regime probability |
| `pinn_vol_regime_confidence(symbol)` | symbol | number | Vol regime confidence |
| `pinn_vol_regime_duration(symbol)` | symbol | number | Expected duration |
| `pinn_vol_regime_shift(symbol)` | symbol | boolean | Vol regime shifting |
| `pinn_vol_is_high(symbol)` | symbol | boolean | High vol predicted |
| `pinn_vol_is_low(symbol)` | symbol | boolean | Low vol predicted |
| `pinn_vol_alpha(symbol)` | symbol | number | Vol model alpha |
| `pinn_vol_beta(symbol)` | symbol | number | Vol model beta |
| `pinn_vol_persistence(symbol)` | symbol | number | Vol persistence |

### 3.3 Regime Predictions

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `pinn_market_regime(symbol)` | symbol | string | Market regime |
| `pinn_regime_confidence(symbol)` | symbol | number | Regime confidence |
| `pinn_regime_duration(symbol)` | symbol | number | Regime duration |
| `pinn_regime_is(symbol, regime)` | symbol, string | boolean | Check specific regime |
| `pinn_regime_next_likely(symbol)` | symbol | string | Next likely regime |
| `pinn_regime_probability(symbol, regime)` | symbol, string | number | Regime probability |
| `pinn_regime_transition_prob(symbol, from, to)` | symbol, string, string | number | Transition probability |
| `pinn_regime_risk_multiplier(symbol)` | symbol | number | Risk multiplier for regime |
| `pinn_regime_size_multiplier(symbol)` | symbol | number | Size multiplier for regime |
| `pinn_crisis_warning(symbol)` | symbol | number | Crisis warning level |
| `pinn_recovery_signal(symbol)` | symbol | number | Recovery signal strength |

### 3.4 Risk Predictions

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `pinn_liquidation_risk(symbol)` | symbol | number | Liquidation risk (0-1) |
| `pinn_portfolio_risk(symbol)` | symbol | number | Portfolio risk contribution |
| `pinn_portfolio_sharpe(symbol)` | symbol | number | Portfolio Sharpe estimate |
| `pinn_markowitz_efficiency(symbol)` | symbol | number | Portfolio efficiency |

### 3.5 Execution Predictions

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `pinn_expected_slippage(symbol, size)` | symbol, number | number | Expected slippage |
| `pinn_market_impact(symbol, size)` | symbol, number | number | Market impact estimate |
| `pinn_optimal_size(symbol)` | symbol | number | Optimal position size |
| `pinn_almgren_residual(symbol)` | symbol | number | Almgren-Chriss residual |
| `pinn_sizing_confidence(symbol)` | symbol | number | Sizing confidence |
| `pinn_optimal_weight(symbol)` | symbol | number | Optimal portfolio weight |

### 3.6 Pairs/Cointegration Predictions

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `pinn_is_cointegrated(symbolA, symbolB)` | symbol, symbol | boolean | Cointegration prediction |
| `pinn_cointegration_confidence(symbolA, symbolB)` | symbol, symbol | number | Cointegration confidence |
| `pinn_spread_zscore(symbolA, symbolB)` | symbol, symbol | number | Spread z-score prediction |
| `pinn_halflife(symbolA, symbolB)` | symbol, symbol | number | Half-life prediction |
| `pinn_hedge_ratio(symbolA, symbolB)` | symbol, symbol | number | Hedge ratio prediction |
| `pinn_mean_reversion_speed(symbolA, symbolB)` | symbol, symbol | number | Mean-reversion speed |
| `pinn_pair_direction(symbolA, symbolB)` | symbol, symbol | number | Pair direction |
| `pinn_pair_confidence(symbolA, symbolB)` | symbol, symbol | number | Pair confidence |
| `pinn_pair_entry_signal(symbolA, symbolB)` | symbol, symbol | boolean | Entry signal |
| `pinn_pair_exit_signal(symbolA, symbolB)` | symbol, symbol | boolean | Exit signal |
| `pinn_spread_in_entry_zone(symbolA, symbolB)` | symbol, symbol | boolean | Spread in entry zone |
| `pinn_spread_in_exit_zone(symbolA, symbolB)` | symbol, symbol | boolean | Spread in exit zone |

### 3.7 Correlation Predictions

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `pinn_correlation(symbolA, symbolB)` | symbol, symbol | number | Correlation prediction |
| `pinn_correlation_confidence(symbolA, symbolB)` | symbol, symbol | number | Correlation confidence |
| `pinn_correlation_regime(symbolA, symbolB)` | symbol, symbol | string | Correlation regime |
| `pinn_dcc_residual(symbolA, symbolB)` | symbol, symbol | number | DCC model residual |
| `pinn_physics_residual(symbol)` | symbol | number | Physics constraint residual |

---

## 4. Fundamental Category (55 primitives)

### 4.1 Factor Models

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `factor_alpha(lookback)` | number | number | Fama-French alpha (annualized %) |
| `factor_beta_market(lookback)` | number | number | Market beta (MKT-RF) |
| `factor_beta_smb(lookback)` | number | number | Size factor beta (SMB) |
| `factor_beta_hml(lookback)` | number | number | Value factor beta (HML) |
| `factor_r_squared(lookback)` | number | number | Factor model R² |
| `capm_beta(lookback)` | number | number | Single-factor CAPM beta |
| `capm_alpha(lookback)` | number | number | Single-factor CAPM alpha |
| `ff_beta(symbol, factor)` | symbol, string | number | Specific factor beta |
| `dominant_factor()` | — | string | Most explanatory factor |
| `factor_diversification_benefit()` | — | number | Diversification benefit |
| `factor_var(confidence)` | number | number | Factor VaR |
| `factor_cvar(confidence)` | number | number | Factor CVaR |

### 4.2 Financial Ratios

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `pe_ratio(symbol)` | symbol | number | Price/Earnings ratio |
| `price_to_book(symbol)` | symbol | number | Price/Book ratio |
| `debt_equity(symbol)` | symbol | number | Debt/Equity ratio |
| `return_on_equity(symbol)` | symbol | number | Return on Equity |
| `gross_margin(symbol)` | symbol | number | Gross margin |
| `revenue_growth(symbol)` | symbol | number | Revenue growth rate |
| `earnings_growth(symbol)` | symbol | number | Earnings growth rate |
| `dividend_yield(symbol)` | symbol | number | Dividend yield |
| `earnings_beat_rate(symbol)` | symbol | number | Earnings beat rate |
| `last_earnings_surprise(symbol)` | symbol | number | Last earnings surprise |
| `days_until_earnings(symbol)` | symbol | number | Days until earnings |
| `is_earnings_week(symbol)` | symbol | boolean | Earnings this week |

### 4.3 Institutional Holdings (SEC 13F)

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `institutional_ownership_pct(symbol)` | symbol | number | Institutional ownership % |
| `institutional_change_qoq(symbol)` | symbol | number | QoQ ownership change |
| `top_holder_concentration(symbol)` | symbol | number | Top 10 holder concentration |
| `smart_money_accumulating(symbol)` | symbol | boolean | Smart money buying |
| `institutional_holders_count(symbol)` | symbol | number | Number of holders |
| `new_institutional_positions(symbol)` | symbol | number | New positions this quarter |

### 4.4 Activist Tracking (SEC 13D/13G)

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `has_activist_position(symbol)` | symbol | boolean | Any activist >5% |
| `activist_ownership_pct(symbol)` | symbol | number | Total activist ownership |
| `activist_count(symbol)` | symbol | number | Number of activists |
| `is_activist_accumulating(symbol)` | symbol | boolean | Activists increasing |
| `largest_activist_position(symbol)` | symbol | number | Largest stake % |
| `active_campaign_count(symbol)` | symbol | number | Active campaigns |

### 4.5 Insider Trading

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `insider_buy_sell_ratio(symbol)` | symbol | number | Buy/Sell ratio |
| `insider_sentiment(symbol)` | symbol | number | Insider sentiment score |
| `is_insider_accumulating(symbol)` | symbol | boolean | Net insider buying |
| `is_insider_dumping(symbol)` | symbol | boolean | Net insider selling |
| `has_insider_alert(symbol)` | symbol | boolean | Significant insider activity |

### 4.6 Buybacks

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `has_active_buyback(symbol)` | symbol | boolean | Active buyback program |
| `buyback_utilization(symbol)` | symbol | number | % of authorized used |
| `is_buyback_aggressive(symbol)` | symbol | boolean | Above-average buyback pace |
| `has_buyback_signal(symbol)` | symbol | boolean | Buyback trading signal |

### 4.7 Supply Chain

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `major_customer_count(symbol)` | symbol | number | Customers >10% revenue |
| `major_supplier_count(symbol)` | symbol | number | Suppliers >10% costs |
| `customer_concentration(symbol)` | symbol | number | Top 3 customers % |
| `supply_chain_risk(symbol)` | symbol | number | Supply chain risk score |
| `has_single_customer_risk(symbol)` | symbol | boolean | Any customer >30% |
| `competitor_count(symbol)` | symbol | number | Number of competitors |
| `avg_competitor_correlation(symbol)` | symbol | number | Avg competitor correlation |

### 4.8 Crisis Resilience

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `resilience_score(symbol)` | symbol | number | Crisis resilience (0-100) |
| `resilience_tier(symbol)` | symbol | string | fortress/defensive/moderate/aggressive/speculative |
| `crisis_beta(symbol)` | symbol | number | Beta during crises |
| `avg_crisis_return(symbol)` | symbol | number | Average crisis return |
| `downside_capture(symbol)` | symbol | number | Downside capture ratio |
| `vix_correlation(symbol)` | symbol | number | Correlation with VIX |
| `is_crisis_hedge(symbol)` | symbol | boolean | Positive in crises |
| `is_defensive_stock(symbol)` | symbol | boolean | Low drawdown profile |
| `is_fortress_stock(symbol)` | symbol | boolean | Top-tier resilience |
| `is_crisis_outperformer(symbol)` | symbol | boolean | Outperforms in crises |
| `is_crisis_opportunity(symbol)` | symbol | boolean | Good buy in crises |

---

## 5. Macro Category (41 primitives)

### 5.1 Volatility Indices

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `vix()` | — | number | VIX value |
| `move_index()` | — | number | MOVE index (bond VIX) |

### 5.2 Yield Curves

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `treasury_2y10y_spread()` | — | number | 2Y-10Y spread |
| `curve_slope_2s10s()` | — | number | 10Y-2Y slope |
| `curve_slope_3m10y()` | — | number | 10Y-3M slope |
| `curve_slope_5s30s()` | — | number | 30Y-5Y slope |
| `credit_ratio_hy_ig()` | — | number | HYG/LQD ratio |
| `real_yield_10y()` | — | number | 10Y TIPS real yield |
| `breakeven_5y5y()` | — | number | 5Y5Y forward inflation |

### 5.3 Economic Events

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `fed_blackout()` | — | boolean | FOMC blackout window |
| `cpi_release_today()` | — | boolean | CPI release today |
| `earnings_blackout()` | — | boolean | Earnings blackout |
| `fed_rate_cut_prob()` | — | number | Fed rate cut probability |
| `recession_prob()` | — | number | Recession probability |
| `election_uncertainty()` | — | number | Election uncertainty index |

### 5.4 Markov Regime

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `markov_regime(lookback)` | number | string | HMM regime: bull/bear/sideways/crisis |
| `markov_regime_prob(lookback)` | number | number | Regime probability |
| `markov_regime_duration(lookback)` | number | number | Expected duration |
| `is_regime_bull(lookback)` | number | boolean | Bull regime |
| `is_regime_bear(lookback)` | number | boolean | Bear regime |
| `is_regime_crisis(lookback)` | number | boolean | Crisis regime |
| `is_regime_sideways(lookback)` | number | boolean | Sideways regime |

### 5.5 Market Paradox Analysis

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `paradox_severity()` | — | number | Paradox severity (0-100) |
| `paradox_active(type)` | string | boolean | Specific paradox active |
| `narrative_confidence()` | — | number | Narrative confidence (0-1) |
| `narrative_theme()` | — | string | Current narrative theme |
| `geopolitical_intensity()` | — | number | Geopolitical intensity |
| `surprise_index()` | — | number | Economic surprise index |
| `has_paradox_signal()` | — | boolean | Any paradox active |
| `regime_mismatch()` | — | boolean | Regime vs price mismatch |
| `regime_favorable()` | — | boolean | Regime favorable for longs |

### 5.6 General Regime

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `current_regime()` | — | string | Current regime |
| `regime_persistence()` | — | number | Bars in current regime |
| `inferred_cycle_phase()` | — | string | Business cycle phase |

---

## 6. Sentiment Category (38 primitives)

### 6.1 Social Sentiment

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `sentiment(source, window)` | string, duration | number | Sentiment score (-1 to 1) |
| `whale_activity(symbol)` | symbol | number | Whale activity score |
| `human_automation_score(symbol)` | symbol | number | Human vs bot score |
| `human_automation_confidence(symbol)` | symbol | number | Score confidence |

### 6.2 Crypto-Specific

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `funding_rate(symbol)` | symbol | number | Perpetual funding rate |
| `funding_rate_extreme(symbol, threshold)` | symbol, number | boolean | Extreme funding |
| `liquidation_cascade(symbol)` | symbol | boolean | Liquidation cascade |
| `open_interest_change(symbol, hours)` | symbol, number | number | OI change % |
| `exchange_flow_signal(symbol)` | symbol | number | Exchange flows |
| `fear_greed_index()` | — | number | Fear & Greed (0-100) |
| `fear_greed_extreme(type)` | string | boolean | Extreme fear/greed |
| `btc_dominance()` | — | number | BTC dominance % |
| `altcoin_season()` | — | boolean | Altcoin season |
| `stablecoin_ratio()` | — | number | Stablecoin ratio |

### 6.3 Manipulation Detection

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `pump_dump_detected(lookback)` | number | boolean | Pump & dump detected |
| `is_pump_dump_active(symbol)` | symbol | boolean | Active pump & dump |
| `pump_dump_phase(symbol)` | symbol | string | Current phase |
| `manipulation_risk_score(symbol)` | symbol | number | Manipulation risk |
| `combined_manipulation_risk(symbol)` | symbol | number | Combined risk score |
| `wash_trading_detected(symbol)` | symbol | boolean | Wash trading detected |
| `wash_trading_pairs(symbol)` | symbol | number | Wash trading pairs count |
| `wash_trading_volume_pct(symbol)` | symbol | number | Wash trading volume % |
| `is_spoofing_detected(symbol)` | symbol | boolean | Spoofing detected |
| `spoofing_risk(symbol)` | symbol | number | Spoofing risk score |
| `wall_cancel_ratio(symbol)` | symbol | number | Wall cancellation ratio |
| `is_market_maker_dominant(symbol)` | symbol | boolean | MM dominant |
| `is_liquidation_cascade(symbol)` | symbol | boolean | Liquidation cascade |
| `closing_auction_risk(symbol)` | symbol | number | Closing auction risk |
| `is_closing_manipulation(symbol)` | symbol | boolean | Closing manipulation |

### 6.4 Stop Hunt Detection

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `is_stop_hunt(symbol)` | symbol | boolean | Stop hunt detected |
| `stop_hunt_direction(symbol)` | symbol | string | Hunt direction |
| `stop_hunt_magnitude(symbol)` | symbol | number | Hunt magnitude |
| `stop_hunt_confidence(symbol)` | symbol | number | Detection confidence |
| `recent_stop_hunts(symbol, hours)` | symbol, number | number | Recent hunt count |
| `is_near_hunt_level(symbol)` | symbol | boolean | Near hunt level |
| `hunt_probability(symbol)` | symbol | number | Hunt probability |
| `is_long_squeeze(symbol)` | symbol | boolean | Long squeeze |
| `is_short_squeeze(symbol)` | symbol | boolean | Short squeeze |

### 6.5 Mailbox Intelligence

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `mailbox_sentiment(topic)` | string | number | Mailbox sentiment |
| `mailbox_mention_frequency(topic)` | string | number | Mention frequency |
| `mailbox_bullish_ratio(topic)` | string | number | Bullish ratio |
| `mailbox_consensus_score(topic)` | string | number | Consensus score |
| `mailbox_sender_diversity(topic)` | string | number | Sender diversity |
| `mailbox_sentiment_trend(topic)` | string | number | Sentiment trend |
| `mailbox_has_bullish_consensus(topic)` | string | boolean | Bullish consensus |
| `mailbox_has_bearish_consensus(topic)` | string | boolean | Bearish consensus |

---

## 7. Cultural Category (22 primitives)

Calendar events and seasonality analysis.

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `is_ramadan()` | — | boolean | Ramadan active |
| `is_chinese_new_year()` | — | boolean | CNY period |
| `is_diwali()` | — | boolean | Diwali period |
| `is_easter_week()` | — | boolean | Easter week |
| `is_eid()` | — | boolean | Eid period |
| `is_thanksgiving()` | — | boolean | Thanksgiving week |
| `is_christmas_season()` | — | boolean | Christmas season |
| `is_golden_week()` | — | boolean | Golden Week (Japan/China) |
| `is_new_year()` | — | boolean | New Year period |
| `days_until_event(event)` | string | number | Days until event |
| `days_since_event(event)` | string | number | Days since event |
| `event_seasonality_signal(event, symbol)` | string, symbol | number | Seasonality signal |
| `cultural_event_active()` | — | boolean | Any event active |
| `is_affected_by_event(symbol, event)` | symbol, string | boolean | Symbol affected |
| `is_event_preparation(event)` | string | boolean | Pre-event period |
| `is_during_event(event)` | string | boolean | During event |
| `event_excess_return(event, symbol)` | string, symbol | number | Historical excess return |
| `event_consistency(event, symbol)` | string, symbol | number | Return consistency |
| `event_sample_size(event, symbol)` | string, symbol | number | Sample size |
| `event_p_value(event, symbol)` | string, symbol | number | Statistical p-value |
| `event_signal_strength(event, symbol)` | string, symbol | number | Signal strength |
| `active_events_count()` | — | number | Active event count |

---

## 8. Weather Category (21 primitives)

Climate and weather impact analysis.

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `temperature(location)` | string | number | Current temperature |
| `weather_anomaly(location)` | string | number | Temperature anomaly |
| `heating_degree_days(location)` | string | number | HDDs |
| `cooling_degree_days(location)` | string | number | CDDs |
| `global_temp_anomaly()` | — | number | Global temp anomaly |
| `global_temp_trend()` | — | number | Temp trend |
| `is_warming_trend()` | — | boolean | Warming trend |
| `el_nino_index()` | — | number | El Niño index |
| `enso_phase()` | — | string | ENSO phase |
| `is_el_nino()` | — | boolean | El Niño active |
| `is_la_nina()` | — | boolean | La Niña active |
| `hurricane_season()` | — | boolean | Hurricane season |
| `active_hurricanes()` | — | number | Active hurricanes |
| `max_hurricane_category()` | — | number | Max category |
| `major_hurricane_active()` | — | boolean | Major hurricane |
| `severe_weather_risk(location)` | string | number | Severe weather risk |
| `severe_weather_alert(location)` | string | boolean | Weather alert |
| `weather_risk(sector)` | string | number | Sector weather risk |
| `climate_risk(symbol)` | symbol | number | Climate risk score |

---

## 9. Prediction Market Category (19 primitives)

### 9.1 Market Probabilities

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `prediction_market_prob(market, outcome)` | string, string | number | Outcome probability |
| `prediction_market_delta(market, outcome, hours)` | string, string, number | number | Probability change |
| `prediction_market_volume(market)` | string | number | Trading volume |
| `prediction_market_consensus(category)` | string | number | Category consensus |
| `prediction_market_divergence(category)` | string | number | Market divergence |
| `prediction_category_sentiment(category)` | string | number | Category sentiment |

### 9.2 Wallet Clustering (Polymarket)

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `polymarket_smart_money_consensus(market)` | string | number | Smart money consensus |
| `polymarket_manipulation_risk(market)` | string | number | Manipulation risk |
| `polymarket_whale_flow(market)` | string | number | Whale flow direction |
| `polymarket_has_suspicious_activity(market)` | string | boolean | Suspicious activity |
| `polymarket_coordination_score(market)` | string | number | Coordination score |
| `wallet_cluster_size(wallet)` | string | number | Cluster size |
| `cluster_bet_correlation(cluster)` | string | number | Bet correlation |
| `cluster_win_rate(cluster)` | string | number | Cluster win rate |
| `cluster_total_volume(cluster)` | string | number | Total volume |
| `is_suspicious_cluster(cluster)` | string | boolean | Suspicious cluster |
| `is_coordinated_activity(market)` | string | boolean | Coordinated activity |
| `has_suspicious_activity(wallet)` | string | boolean | Wallet suspicious |
| `suspicion_level(wallet)` | string | number | Suspicion level |

---

## 10. Pattern Category (16 primitives)

### 10.1 Candlestick Patterns

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `doji()` | — | boolean | Doji pattern |
| `hammer()` | — | boolean | Hammer pattern |
| `inverted_hammer()` | — | boolean | Inverted hammer |
| `engulfing_bullish()` | — | boolean | Bullish engulfing |
| `engulfing_bearish()` | — | boolean | Bearish engulfing |
| `morning_star()` | — | boolean | Morning star |
| `evening_star()` | — | boolean | Evening star |
| `three_white_soldiers()` | — | boolean | Three white soldiers |
| `three_black_crows()` | — | boolean | Three black crows |
| `shooting_star()` | — | boolean | Shooting star |
| `marubozu_bullish()` | — | boolean | Bullish marubozu |
| `marubozu_bearish()` | — | boolean | Bearish marubozu |

### 10.2 Chart Patterns

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `double_top()` | — | boolean | Double top |
| `double_bottom()` | — | boolean | Double bottom |
| `bull_flag()` | — | boolean | Bull flag |
| `bear_flag()` | — | boolean | Bear flag |
| `inside_bar()` | — | boolean | Inside bar |
| `outside_bar()` | — | boolean | Outside bar |
| `swing_high()` | — | boolean | Swing high |
| `swing_low()` | — | boolean | Swing low |

### 10.3 Fair Value Gap

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `fvg_bullish(lookback)` | number | boolean | Bullish FVG present |
| `fvg_bearish(lookback)` | number | boolean | Bearish FVG present |
| `fvg_count(lookback)` | number | number | FVG count |
| `fvg_distance_pct()` | — | number | Distance to nearest FVG |
| `price_in_fvg()` | — | boolean | Price in FVG zone |

### 10.4 Pattern Intelligence

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `pattern_active(pattern)` | string | boolean | Pattern active |
| `pattern_confidence_lower(pattern)` | string | number | Confidence lower bound |
| `pattern_effect_size(pattern)` | string | number | Pattern effect size |
| `pattern_hit_rate(pattern)` | string | number | Historical hit rate |
| `pattern_is_significant(pattern)` | string | boolean | Statistically significant |
| `pattern_proximity(pattern)` | string | number | Proximity to pattern |
| `pattern_sample_size(pattern)` | string | number | Sample size |

### 10.5 DTW Templates

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `dtw_template_match(template)` | string | boolean | Template match |
| `dtw_template_similarity(template)` | string | number | Similarity score |
| `dtw_template_name()` | — | string | Best matching template |
| `dtw_template_direction(template)` | string | number | Template direction |

### 10.6 Custom Patterns

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `custom_candle_pattern(name)` | string | boolean | Custom pattern match |
| `custom_candle_confidence(name)` | string | number | Match confidence |
| `custom_candle_direction(name)` | string | number | Pattern direction |
| `custom_candle_match(name)` | string | boolean | Pattern matched |
| `custom_candle_name()` | — | string | Matching pattern name |

---

## 11. Position Category (16 primitives)

Current position and risk metrics.

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `position_pnl_pct()` | — | number | Position P&L % |
| `position_age_hours()` | — | number | Position age in hours |
| `account_drawdown_pct()` | — | number | Account drawdown % |
| `drawdown_from_peak()` | — | number | Drawdown from peak |
| `time_in_drawdown()` | — | number | Hours in drawdown |
| `underwater_bars()` | — | number | Bars underwater |
| `profit_at_risk(pct)` | number | number | Profit at risk |
| `risk_reward_current()` | — | number | Current risk/reward |

---

## 12. Options Category (15 primitives)

Options pricing and Greeks.

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `option_delta(symbol, strike, expiry, type)` | symbol, number, number, string | number | Option delta |
| `option_price(symbol, strike, expiry, type)` | symbol, number, number, string | number | Black-Scholes price |
| `iv_rank(symbol)` | symbol | number | IV rank (0-100) |
| `iv_percentile(symbol)` | symbol | number | IV percentile |
| `put_call_ratio(symbol)` | symbol | number | Put/Call ratio |
| `gamma_exposure(symbol)` | symbol | number | Dealer gamma exposure |
| `options_volume_ratio(symbol)` | symbol | number | Options/stock volume |
| `put_call_skew(symbol)` | symbol | number | Put-call IV skew |
| `iv_rv_spread(lookback)` | number | number | IV-RV spread |
| `variance_risk_premium(lookback)` | number | number | Variance risk premium |
| `vol_selling_signal()` | — | number | Vol selling signal |
| `is_iv_cheap()` | — | boolean | IV < 25th percentile |
| `is_iv_expensive()` | — | boolean | IV > 75th percentile |
| `iv_term_structure_slope()` | — | number | Term structure slope |
| `iv_skew()` | — | number | IV skew |

---

## 13. Sizing Category (9 primitives)

Position sizing algorithms.

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `kelly(win_rate, payoff_ratio)` | number, number | number | Kelly criterion |
| `kelly_adaptive()` | — | number | Adaptive Kelly with posterior |
| `kelly_regime_aware()` | — | number | Regime-adjusted Kelly |
| `fixed_usd(amount)` | number | number | Fixed dollar amount |
| `risk_pct(pct)` | number | number | Risk percentage |
| `risk_parity_weight(symbol)` | symbol | number | Risk parity weight |
| `portfolio_effective_factors()` | — | number | Effective factors |
| `is_factor_balanced()` | — | boolean | Factor balanced |
| `diversification_ratio()` | — | number | Diversification ratio |

---

## 14. Execution Category (8 primitives)

Execution algorithms and TCA.

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `expected_impact_bps(qty, adv, vol)` | number, number, number | number | Expected market impact |
| `optimal_duration_hours(qty, adv, vol, max)` | number, number, number, number | number | Optimal execution duration |
| `should_use_vwap(qty, adv)` | number, number | boolean | Order > 1% ADV |
| `is_execution_aggressive(participation)` | number | boolean | Participation > 20% |
| `avg_slippage_bps(symbol, days)` | symbol, number | number | Average slippage |
| `execution_score(symbol, days)` | symbol, number | number | Execution score (0-100) |
| `market_impact_estimate(qty, adv, vol)` | number, number, number | number | Impact estimate |
| `is_execution_poor(symbol, days)` | symbol, number | boolean | Score < 40 |

---

## 15. Composer Category (3 primitives)

Signal combination functions.

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `all(signals...)` | boolean... | boolean | All signals true |
| `any(signals...)` | boolean... | boolean | Any signal true |
| `xor(a, b)` | boolean, boolean | boolean | Exclusive or |

---

## 16. LLM Category (1 primitive)

AI-assisted decision making.

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `llm_confirms(claim, confidence_min)` | string, number | boolean | LLM confirms claim |

---

## 17. Discovery Category (10 primitives)

Market discovery and niche detection.

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `discovery_opportunity_score(symbol)` | symbol | number | Opportunity score |
| `discovery_niche_score(symbol)` | symbol | number | Niche score |
| `discovery_buzz_score(symbol)` | symbol | number | Buzz score |
| `discovery_insight_score(symbol)` | symbol | number | Insight score |
| `discovery_sector_rank(symbol)` | symbol | number | Sector rank |
| `discovery_vs_mainstream_divergence(symbol)` | symbol | number | Divergence from mainstream |
| `is_recently_discovered(symbol)` | symbol | boolean | Recently discovered |
| `sector_discovery_momentum(sector)` | string | number | Sector discovery momentum |
| `sector_niche_concentration(sector)` | string | number | Niche concentration |
| `tracking_pool_momentum(pool)` | string | number | Pool momentum |
| `tracking_pool_volume_spike(pool)` | string | boolean | Volume spike in pool |

---

## 18. All-Seeing Eye Category (3 primitives)

Platform intelligence and edge detection.

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `all_seeing_eye_alert_count()` | — | number | Active alerts |
| `edge_signal(symbol)` | symbol | number | Edge signal strength |
| `should_avoid_entry(symbol)` | symbol | boolean | Avoid entry flag |

---

## 19. Flow Analysis (5 primitives)

Trade flow analysis.

| Primitive | Args | Returns | Description |
|-----------|------|---------|-------------|
| `flow_label(symbol)` | symbol | string | Flow classification |
| `is_fund_rebalance(symbol)` | symbol | boolean | Fund rebalancing |
| `is_sector_rotation_favorable(symbol)` | symbol | boolean | Favorable rotation |

---

## Module Architecture

```
packages/be/src/
├── algorithms/
│   └── dsl/
│       ├── types.ts         # 506 primitive specifications
│       └── evaluator.ts     # Sandboxed evaluation engine
├── quant/                   # NEW: 12 institutional modules
│   ├── cointegration.ts     # Pairs trading
│   ├── fama-french.ts       # Factor models
│   ├── options-greeks.ts    # Black-Scholes
│   ├── order-book.ts        # L2 microstructure
│   ├── lead-lag.ts          # Cross-correlation
│   ├── volatility.ts        # GARCH, Yang-Zhang
│   ├── momentum.ts          # TS/XS decomposition
│   ├── tca.ts               # Transaction costs
│   ├── execution.ts         # TWAP/VWAP
│   ├── structural-breaks.ts # CUSUM, Chow
│   ├── correlation.ts       # Breakdown detection
│   └── sector-momentum.ts   # Cycle analysis
├── insights/                # Whale/bot detection
├── sector-rotation/         # Full rotation system
├── institutional/           # SEC 13F
├── activist/                # SEC 13D/13G
├── all-seeing-eye/          # Black swan, trust
└── overlays/                # Fixed income, derivatives
```

---

## API Access

All primitives are accessible via:

```
GET /api/predict/v1/algorithms/primitives
```

Returns:
```json
{
  "primitives": [...],
  "llmAvailable": true
}
```

---

## Usage in Algorithm Builder

Example algorithm using multiple categories:

```yaml
strategy: "Multi-Factor Quant"
universe: ["AAPL", "MSFT", "GOOGL", "AMZN"]
horizon: position

entry:
  when: >
    ts_momentum(symbol, 126) > 0 AND
    xs_momentum_rank(symbol, "SP500") > 60 AND
    factor_alpha(symbol) > 0.03 AND
    is_cointegrated(symbol, "SPY") == false AND
    stability_score(symbol) > 50 AND
    pinn_direction(symbol) > 0 AND
    pinn_confidence(symbol) > 0.7

exit:
  when: >
    ts_momentum(symbol, 21) < -0.05 OR
    is_correlation_breakdown(symbol, "SPY") OR
    pinn_liquidation_risk(symbol) > 0.3

sizing:
  kelly_regime_aware() *
  (1 / realized_vol(symbol, 20)) *
  (1 - expected_impact_bps(position_size, adv, vol) / 100)

risk:
  max_position_usd: 50000
  max_drawdown_pct: 15
  stop_loss_pct: 5
```

---

## Related Documentation

- `docs/12-algorithm-builder.md` — AI Algorithm Builder architecture
- `docs/86-quantitative-analysis-features.md` — New quant module details
- `docs/44-pattern-detection-and-ai-features.md` — Pattern detection reference
- `docs/77-pinn-predictor.md` — PINN ML model documentation
- `docs/67-manipulation-detection.md` — Manipulation detection system
