Skip to main content

What We’re Building

A multi-factor strategy that combines momentum, mean reversion, and volatility signals with cross-sectional scoring, universe filtering, and portfolio optimization:
  • 3 alpha signals — Momentum, RSI mean reversion, Bollinger mean reversion
  • Cross-sectional transforms — ZScore normalization and equal weighting
  • Universe filter — Liquidity filter to exclude illiquid symbols
  • Portfolio optimization — Risk parity weighting across selected assets
  • Trade 5 symbols on Binance futures with 2× leverage
This builds on Your First Strategy. Make sure you understand StatefulGraph, Input, and the FIELD/STATE model.

Step 1: Setup

Step 2: Alpha Signals

Three independent alpha signals, each capturing a different market dynamic:

Momentum alpha

MomentumAlpha computes (current - past) / past over the lookback window. Positive values = uptrend, negative = downtrend.

RSI mean reversion alpha

RSIAlpha normalizes RSI to [-1, 1] range: (RSI - 50) / 50. Values near -1 = oversold (buy signal), near +1 = overbought (sell signal).

Bollinger mean reversion alpha

BollingerAlpha measures deviation from the moving average: (middle - current) / (std × num_std). Prices below the lower band produce positive signals (buy).

Step 3: Universe Filter

Filter out illiquid symbols to avoid slippage and execution issues:
LiquidityFilter takes two inputs (close price and volume), computes dollar volume (price × volume), and outputs a binary mask: 1.0 for symbols passing the threshold, 0.0 for those that don’t.

Step 4: Cross-Sectional Transforms

Normalize each alpha signal across the symbol universe, then combine:

ZScore normalization

ZScore performs cross-sectional normalization at each timestamp: (x - mean) / std across all symbols. This ensures each alpha contributes equally regardless of scale.

Combine signals

Apply universe filter

Step 5: Portfolio Accounting

Step 6: Intention (Order Generation)

Step 7: Run and Analyze

The Complete Graph

Variations

Add more alphas

The pattern is additive — just add more alpha nodes and include them in EqualWeight:

Use Rank instead of ZScore

Limit number of positions

Alpha Signals

All 21 available alpha operators

Transforms

ZScore, Rank, Softmax, and other scalers

Universe Filters

Volume, liquidity, and volatility filters

AI-Augmented Strategy

Add LLM scoring and web search to your strategy