Complete DSL Primitive Reference — 506 Primitives Across 16 Categories

packages/be/src/algorithms/dsl/types.ts
← Back to Documentation Hub
506
Total Primitives
16
Categories
12
Quant Modules
7,500+
Lines of Code

Security Guarantees

All primitives are pure functions with no side effects. No look-ahead — data is asOf-frozen at evaluation time. Sandboxed — no eval(), no arbitrary code execution. Whitelisted — LLMs cannot invent primitives; only registered primitives are valid.

📈 Technical 194
Indicators, volatility, trend detection
🧠 PINN (ML) 56
Physics-informed neural network
📊 Fundamental 55
Factor models, financials, SEC data
🌍 Macro 41
VIX, yield curves, Fed policy
💬 Sentiment 38
Social, funding, whale activity
🎭 Cultural 22
Calendar events, seasonality
🌦️ Weather 21
Climate, temperature, storms
🎰 Prediction Market 19
Polymarket, wallet clustering
🕯️ Pattern 16
Candlesticks, FVG, DTW
💼 Position 16
P&L, drawdown, risk metrics
📉 Options 15
Greeks, IV rank, skew
⚖️ Sizing 9
Kelly, risk parity
Execution 8
TWAP/VWAP, TCA
💰 Price 4
Price, VWAP, volume
🔗 Composer 3
Signal combination
🤖 LLM 1
AI-assisted confirmation

💰 Price Category 4 primitives

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

📈 Technical Category 194 primitives

Classic Indicators

PrimitiveArgsReturnsDescription
rsi(period)numbernumberRelative Strength Index (default 14)
macd()numberMACD histogram value
bb_upper(period, stddev)number, numbernumberBollinger upper band
bb_lower(period, stddev)number, numbernumberBollinger lower band
atr(period)numbernumberAverage True Range
obv()numberOn-balance volume
adx(period)numbernumberAverage Directional Index
sma(period)numbernumberSimple Moving Average
roc(period)numbernumberRate of Change (%)
volume()numberCurrent bar volume
volume_avg(period)numbernumberAverage volume over period

Volatility Models

PrimitiveArgsReturnsDescription
garch_volatility(lookback)numbernumberGARCH(1,1) conditional volatility (annualized %)
egarch_volatility(lookback)numbernumberEGARCH volatility (asymmetric)
gjr_volatility(lookback)numbernumberGJR-GARCH volatility
gjr_leverage_gamma(lookback)numbernumberGJR leverage coefficient
gjr_asymmetry_ratio(lookback)numbernumberBad vs good news vol response ratio
figarch_volatility(lookback)numbernumberFIGARCH long-memory volatility
figarch_d(lookback)numbernumberFractional differencing parameter
figarch_forecast(lookback, horizon)number, numbernumberFIGARCH forecast at horizon
has_long_memory(lookback)numberbooleanTrue if d > 0.35
realized_vol(symbol, window)symbol, numbernumberRealized volatility
vol_forecast(symbol)symbolnumber1-day GARCH forecast
vol_percentile(symbol)symbolnumberPercentile vs history (0-100)
vol_regime(symbol)symbolstring'low'/'normal'/'high'/'extreme'
is_vol_elevated(symbol)symbolbooleanTrue if percentile ≥ 75
vol_of_vol(symbol)symbolnumberVolatility of volatility
rough_vol_hurst(lookback)numbernumberRough volatility Hurst exponent
is_vol_rough(lookback, threshold)number, numberbooleanTrue if vol Hurst < threshold
leverage_effect(lookback)numbernumberEGARCH leverage coefficient
news_impact_asymmetry(lookback)numbernumberBad/good news impact ratio

Pairs Trading / Cointegration

PrimitiveArgsReturnsDescription
cointegrated(symbolA, symbolB, lookback)symbol, symbol, numberbooleanTrue if pair is cointegrated (p<0.05)
spread_zscore(symbolA, symbolB, lookback)symbol, symbol, numbernumberZ-score of pairs spread
halflife(symbolA, symbolB, lookback)symbol, symbol, numbernumberMean-reversion half-life in bars
hedge_ratio(symbolA, symbolB, lookback)symbol, symbol, numbernumberOptimal hedge ratio β
johansen_rank(symbolA, symbolB, lookback)symbol, symbol, numbernumberJohansen cointegration rank
johansen_cointegrated(symbolA, symbolB, lookback)symbol, symbol, numberbooleanTrue if Johansen rank > 0
johansen_zscore(symbolA, symbolB, lookback)symbol, symbol, numbernumberJohansen portfolio spread z-score

Correlation Analysis

PrimitiveArgsReturnsDescription
correlation(symbolA, symbolB, window)symbol, symbol, numbernumberPearson correlation (-1 to 1)
correlation_change(symbolA, symbolB)symbol, symbolnumberShort vs long window delta
is_correlation_breakdown(symbolA, symbolB)symbol, symbolbooleanSignificant z-score deviation
downside_correlation(symbolA, symbolB)symbol, symbolnumberCorrelation in down markets
correlation_asymmetry(symbolA, symbolB)symbol, symbolnumberDown - up market correlation
correlation_to_btc(lookback)numbernumberRolling correlation to BTC
correlation_to_spy(lookback)numbernumberRolling correlation to SPY
beta_to_market(lookback)numbernumberBeta to market benchmark
decoupled_from_btc(lookback, threshold)number, numberbooleanTrue if BTC correlation below threshold
dcc_correlation(sym1, sym2, lookback)symbol, symbol, numbernumberDCC-GARCH dynamic correlation
dcc_correlation_forecast(sym1, sym2, lookback)symbol, symbol, numbernumberDCC correlation forecast
dcc_persistence(sym1, sym2, lookback)symbol, symbol, numbernumberCorrelation persistence
correlation_half_life(sym1, sym2, lookback)symbol, symbol, numbernumberHalf-life of correlation shocks
is_correlation_elevated(sym1, sym2, lookback, threshold)symbol, symbol, number, numberbooleanTrue if |corr| > threshold

Order Book / Microstructure

PrimitiveArgsReturnsDescription
book_imbalance(symbol)symbolnumber-1 to 1 (negative = more asks)
depth_pressure(symbol)symbolnumberBid/Ask depth ratio
spread_bps(symbol)symbolnumberBid-ask spread in basis points
microprice(symbol)symbolnumberVolume-weighted mid price
imbalance_zscore(symbol)symbolnumberImbalance vs recent history
has_bid_wall(symbol)symbolbooleanLarge bid order detected
has_ask_wall(symbol)symbolbooleanLarge ask order detected
vpin(symbol)symbolnumberVolume-synchronized PIN
kyles_lambda(symbol)symbolnumberPrice impact coefficient

Momentum

PrimitiveArgsReturnsDescription
ts_momentum(symbol, days)symbol, numbernumberTime-series momentum (return)
xs_momentum_rank(symbol, universe)symbol, stringnumberCross-sectional rank (0-100)
momentum_acceleration(symbol)symbolnumberChange in momentum
risk_adjusted_momentum(symbol)symbolnumberSharpe-like momentum ratio
is_momentum_positive(symbol, days)symbol, numberbooleanTrue if momentum > 0
price_velocity(lookback)numbernumberPrice change rate per bar

Sector Analysis

PrimitiveArgsReturnsDescription
sector_momentum(sector, months)string, numbernumberSector return
sector_relative_strength(sector)stringnumberRelative to SPY
is_sector_leading(sector)stringbooleanTop 3 by momentum
sector_quadrant(sector)stringstringleading/weakening/lagging/improving
sector_breadth()number% positive (0-100)
sector_rank(sector)stringnumber1=best, 11=worst
sector_rotation_score()numberRotation strength
sector_rotation_phase()stringCurrent rotation phase

Structural Breaks

PrimitiveArgsReturnsDescription
has_recent_break(symbol, days)symbol, numberbooleanBreak detected in window
regime_count(symbol)symbolnumberNumber of regimes in year
stability_score(symbol)symbolnumber0-100 (higher = stable)
is_regime_change(symbol)symbolbooleanNew regime in last 20 days
cusum_break_detected(symbol)symbolbooleanCUSUM test positive

Trend Detection

PrimitiveArgsReturnsDescription
hurst_exponent(lookback)numbernumberHurst [0-1]: <0.5=mean-reverting, >0.5=trending
is_mean_reverting(lookback, threshold)number, numberbooleanTrue if Hurst < 0.4
is_trending(lookback, threshold)number, numberbooleanTrue if Hurst > 0.6
trend_up()booleanTrue if in uptrend
higher_highs()booleanConsecutive higher highs
lower_lows()booleanConsecutive lower lows

🧠 PINN (Physics-Informed Neural Network) 56 primitives

About PINN

Physics-Informed Neural Networks embed trading constraints (Kelly sizing, liquidation risk, mean-reversion) directly into the loss function. 16 input features, 3 output heads, TensorFlow.js inference, S3-persisted weights with 24h cache.

Core Predictions

PrimitiveArgsReturnsDescription
pinn_direction(symbol)symbolnumberPredicted direction (-1/0/+1)
pinn_confidence(symbol)symbolnumberPrediction confidence (0-1)
pinn_predicted_return(symbol)symbolnumberPredicted return
pinn_velocity(symbol)symbolnumberPrice velocity prediction
pinn_accuracy(symbol)symbolnumberHistorical accuracy
pinn_is_bullish(symbol)symbolbooleanBullish prediction
pinn_is_bearish(symbol)symbolbooleanBearish prediction

Regime Predictions

PrimitiveArgsReturnsDescription
pinn_market_regime(symbol)symbolstringMarket regime: bull/bear/sideways/crisis/recovery
pinn_regime_confidence(symbol)symbolnumberRegime confidence
pinn_regime_duration(symbol)symbolnumberRegime duration
pinn_regime_is(symbol, regime)symbol, stringbooleanCheck specific regime
pinn_crisis_warning(symbol)symbolnumberCrisis warning level (0-1)
pinn_recovery_signal(symbol)symbolnumberRecovery signal strength

Risk & Sizing Predictions

PrimitiveArgsReturnsDescription
pinn_liquidation_risk(symbol)symbolnumberLiquidation risk (0-1)
pinn_optimal_size(symbol)symbolnumberOptimal position size (USD)
pinn_expected_slippage(symbol, size)symbol, numbernumberExpected slippage (bps)
pinn_market_impact(symbol, size)symbol, numbernumberMarket impact estimate

Pairs/Cointegration Predictions

PrimitiveArgsReturnsDescription
pinn_is_cointegrated(symbolA, symbolB)symbol, symbolbooleanCointegration prediction
pinn_spread_zscore(symbolA, symbolB)symbol, symbolnumberSpread z-score prediction
pinn_halflife(symbolA, symbolB)symbol, symbolnumberHalf-life prediction
pinn_hedge_ratio(symbolA, symbolB)symbol, symbolnumberHedge ratio prediction
pinn_pair_entry_signal(symbolA, symbolB)symbol, symbolbooleanPair entry signal
pinn_pair_exit_signal(symbolA, symbolB)symbol, symbolbooleanPair exit signal

📊 Fundamental Category 55 primitives

Factor Models (Fama-French)

PrimitiveArgsReturnsDescription
factor_alpha(lookback)numbernumberFama-French alpha (annualized %)
factor_beta_market(lookback)numbernumberMarket beta (MKT-RF)
factor_beta_smb(lookback)numbernumberSize factor beta (SMB)
factor_beta_hml(lookback)numbernumberValue factor beta (HML)
factor_r_squared(lookback)numbernumberFactor model R²
capm_beta(lookback)numbernumberSingle-factor CAPM beta
capm_alpha(lookback)numbernumberSingle-factor CAPM alpha

Financial Ratios

PrimitiveArgsReturnsDescription
pe_ratio(symbol)symbolnumberPrice/Earnings ratio
price_to_book(symbol)symbolnumberPrice/Book ratio
debt_equity(symbol)symbolnumberDebt/Equity ratio
return_on_equity(symbol)symbolnumberReturn on Equity
dividend_yield(symbol)symbolnumberDividend yield
revenue_growth(symbol)symbolnumberRevenue growth rate
earnings_growth(symbol)symbolnumberEarnings growth rate

Institutional Holdings (SEC 13F)

PrimitiveArgsReturnsDescription
institutional_ownership_pct(symbol)symbolnumberInstitutional ownership %
institutional_change_qoq(symbol)symbolnumberQoQ ownership change
top_holder_concentration(symbol)symbolnumberTop 10 holder concentration
smart_money_accumulating(symbol)symbolbooleanSmart money buying
institutional_holders_count(symbol)symbolnumberNumber of holders

Activist Tracking (SEC 13D/13G)

PrimitiveArgsReturnsDescription
has_activist_position(symbol)symbolbooleanAny activist >5%
activist_ownership_pct(symbol)symbolnumberTotal activist ownership
activist_count(symbol)symbolnumberNumber of activists
is_activist_accumulating(symbol)symbolbooleanActivists increasing
largest_activist_position(symbol)symbolnumberLargest stake %

Crisis Resilience

PrimitiveArgsReturnsDescription
resilience_score(symbol)symbolnumberCrisis resilience (0-100)
resilience_tier(symbol)symbolstringfortress/defensive/moderate/aggressive/speculative
crisis_beta(symbol)symbolnumberBeta during crises
is_crisis_hedge(symbol)symbolbooleanPositive in crises
is_fortress_stock(symbol)symbolbooleanTop-tier resilience

📉 Options Category 15 primitives

PrimitiveArgsReturnsDescription
option_delta(symbol, strike, expiry, type)symbol, number, number, stringnumberOption delta
option_price(symbol, strike, expiry, type)symbol, number, number, stringnumberBlack-Scholes price
iv_rank(symbol)symbolnumberIV rank (0-100)
iv_percentile(symbol)symbolnumberIV percentile
put_call_ratio(symbol)symbolnumberPut/Call ratio
gamma_exposure(symbol)symbolnumberDealer gamma exposure
options_volume_ratio(symbol)symbolnumberOptions/stock volume
put_call_skew(symbol)symbolnumberPut-call IV skew
iv_rv_spread(lookback)numbernumberIV-RV spread
variance_risk_premium(lookback)numbernumberVariance risk premium
vol_selling_signal()numberVol selling signal
is_iv_cheap()booleanIV < 25th percentile
is_iv_expensive()booleanIV > 75th percentile
iv_term_structure_slope()numberTerm structure slope
iv_skew()numberIV skew

Execution Category 8 primitives

Execution Algorithms

TWAP/VWAP execution, Almgren-Chriss market impact model, transaction cost analysis. Used for large order execution and optimal trade scheduling.

PrimitiveArgsReturnsDescription
expected_impact_bps(qty, adv, vol)number, number, numbernumberExpected market impact (Almgren-Chriss)
optimal_duration_hours(qty, adv, vol, max)number, number, number, numbernumberOptimal execution duration
should_use_vwap(qty, adv)number, numberbooleanOrder > 1% ADV
is_execution_aggressive(participation)numberbooleanParticipation > 20%
avg_slippage_bps(symbol, days)symbol, numbernumberAverage slippage
execution_score(symbol, days)symbol, numbernumberExecution score (0-100)
market_impact_estimate(qty, adv, vol)number, number, numbernumberImpact estimate
is_execution_poor(symbol, days)symbol, numberbooleanScore < 40

⚖️ Sizing Category 9 primitives

PrimitiveArgsReturnsDescription
kelly(win_rate, payoff_ratio)number, numbernumberKelly criterion: f* = (p*b - q) / b
kelly_adaptive()numberAdaptive Kelly with posterior
kelly_regime_aware()numberRegime-adjusted Kelly
fixed_usd(amount)numbernumberFixed dollar amount
risk_pct(pct)numbernumberRisk percentage
risk_parity_weight(symbol)symbolnumberRisk parity weight
portfolio_effective_factors()numberEffective factors
is_factor_balanced()booleanFactor balanced
diversification_ratio()numberDiversification ratio

🌍 Macro Category 41 primitives

Volatility Indices

PrimitiveArgsReturnsDescription
vix()numberVIX value
move_index()numberMOVE index (bond VIX)

Yield Curves

PrimitiveArgsReturnsDescription
treasury_2y10y_spread()number2Y-10Y spread
curve_slope_2s10s()number10Y-2Y slope
curve_slope_3m10y()number10Y-3M slope
credit_ratio_hy_ig()numberHYG/LQD ratio
real_yield_10y()number10Y TIPS real yield
breakeven_5y5y()number5Y5Y forward inflation

Markov Regime

PrimitiveArgsReturnsDescription
markov_regime(lookback)numberstringHMM regime: bull/bear/sideways/crisis
markov_regime_prob(lookback)numbernumberRegime probability
markov_regime_duration(lookback)numbernumberExpected duration
is_regime_bull(lookback)numberbooleanBull regime
is_regime_bear(lookback)numberbooleanBear regime
is_regime_crisis(lookback)numberbooleanCrisis regime

💬 Sentiment Category 38 primitives

Social Sentiment

PrimitiveArgsReturnsDescription
sentiment(source, window)string, durationnumberSentiment score (-1 to 1)
whale_activity(symbol)symbolnumberWhale activity score
human_automation_score(symbol)symbolnumberHuman vs bot score

Crypto-Specific

PrimitiveArgsReturnsDescription
funding_rate(symbol)symbolnumberPerpetual funding rate
funding_rate_extreme(symbol, threshold)symbol, numberbooleanExtreme funding
liquidation_cascade(symbol)symbolbooleanLiquidation cascade
open_interest_change(symbol, hours)symbol, numbernumberOI change %
fear_greed_index()numberFear & Greed (0-100)
btc_dominance()numberBTC dominance %
altcoin_season()booleanAltcoin season

Manipulation Detection

PrimitiveArgsReturnsDescription
pump_dump_detected(lookback)numberbooleanPump & dump detected
is_pump_dump_active(symbol)symbolbooleanActive pump & dump
manipulation_risk_score(symbol)symbolnumberManipulation risk
wash_trading_detected(symbol)symbolbooleanWash trading detected
is_spoofing_detected(symbol)symbolbooleanSpoofing detected
is_stop_hunt(symbol)symbolbooleanStop hunt detected
is_long_squeeze(symbol)symbolbooleanLong squeeze
is_short_squeeze(symbol)symbolbooleanShort squeeze

Mailbox Intelligence

PrimitiveArgsReturnsDescription
mailbox_sentiment(topic)stringnumberMailbox sentiment
mailbox_mention_frequency(topic)stringnumberMention frequency
mailbox_bullish_ratio(topic)stringnumberBullish ratio
mailbox_consensus_score(topic)stringnumberConsensus score
mailbox_has_bullish_consensus(topic)stringbooleanBullish consensus
mailbox_has_bearish_consensus(topic)stringbooleanBearish consensus

🕯️ Pattern Category 16 primitives

Candlestick patterns (doji, hammer, engulfing_bullish, morning_star, etc.), chart patterns (double_top, bull_flag), Fair Value Gaps (fvg_bullish, fvg_bearish), DTW template matching (dtw_template_match), and pattern intelligence (pattern_hit_rate, pattern_confidence_lower).

💼 Position Category 16 primitives

Position P&L (position_pnl_pct), age (position_age_hours), drawdown (account_drawdown_pct, drawdown_from_peak), time in drawdown (time_in_drawdown, underwater_bars), and risk metrics (profit_at_risk, risk_reward_current).

🎭 Cultural Category 22 primitives

Calendar events: is_ramadan, is_chinese_new_year, is_diwali, is_easter_week, is_eid, is_thanksgiving, is_christmas_season, is_golden_week. Seasonality analysis: days_until_event, event_seasonality_signal, event_excess_return, event_consistency, event_p_value.

🌦️ Weather Category 21 primitives

Climate: temperature, weather_anomaly, global_temp_anomaly, is_warming_trend. ENSO: el_nino_index, enso_phase, is_el_nino, is_la_nina. Storms: hurricane_season, active_hurricanes, major_hurricane_active. Agriculture: heating_degree_days, cooling_degree_days, climate_risk.

🎰 Prediction Market Category 19 primitives

Market probabilities: prediction_market_prob, prediction_market_delta, prediction_market_volume. Polymarket wallet clustering: polymarket_smart_money_consensus, polymarket_manipulation_risk, polymarket_whale_flow, polymarket_has_suspicious_activity, polymarket_coordination_score, is_coordinated_activity.

🔗 Composer Category 3 primitives

Signal combination: all(signals...) — all signals true, any(signals...) — any signal true, xor(a, b) — exclusive or.

🤖 LLM Category 1 primitive

AI-assisted confirmation: llm_confirms(claim, confidence_min) — LLM confirms a claim with minimum confidence threshold.

📁 Module Architecture

File Structure

packages/be/src/ ├── algorithms/ │ └── dsl/ │ ├── types.ts # 506 primitive specifications │ └── evaluator.ts # Sandboxed evaluation engine ├── quant/ # 12 institutional modules │ ├── cointegration.ts # Pairs trading (Engle-Granger, Johansen) │ ├── fama-french.ts # 5-factor model, alpha attribution │ ├── options-greeks.ts # Black-Scholes, IV surface │ ├── order-book.ts # L2 microstructure, VPIN │ ├── lead-lag.ts # Cross-correlation, Granger │ ├── volatility.ts # GARCH, EGARCH, Yang-Zhang │ ├── momentum.ts # TS/XS decomposition │ ├── tca.ts # Transaction cost analysis │ ├── execution.ts # TWAP/VWAP algorithms │ ├── structural-breaks.ts # CUSUM, Chow test │ ├── correlation.ts # DCC-GARCH, breakdown detection │ └── sector-momentum.ts # Rotation analysis ├── insights/ # Whale/bot detection, VPIN ├── institutional/ # SEC 13F integration ├── activist/ # SEC 13D/13G tracking ├── all-seeing-eye/ # Black swan, crisis detection └── overlays/ # Fixed income, derivatives

💡 Example Algorithm

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
    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