Confluence

Mean-reversion (multi-indicator)
Combines four indicators and acts only when at least two agree.
It reads RSI, MACD, Bollinger Bands, and Volume on each candle. RSI below 30 signals oversold (a long bias) and above 70 overbought (a short bias); MACD crossing its signal line indicates momentum direction; Bollinger %B near the lower band is oversold and near the upper band overbought; a volume spike adds confirmation. When at least 2 of the 4 agree, it opens a position, and closes when RSI returns toward neutral (around 50) or a stop-loss is hit.
  • RSI(14)
  • MACD
  • Bollinger Bands
  • Volume
When it tends to work
Range-bound, choppy markets where price oscillates around an average.
When it tends to struggle
Strong sustained trends, where it repeatedly fades the move and gets stopped out.
Min votes to enter default: 3 1 – 4
RSI period default: 14 5 – 30
RSI overbought level default: 70 60 – 90
RSI oversold level default: 30 10 – 40

Trend Follow

Trend-following
Trades moving-average crossovers, but only in the direction of the longer-term trend.
When the fast EMA(21) crosses above the slow EMA(55) it's a long signal; crossing below is a short signal. A higher-timeframe filter only allows longs when price is above EMA(200) and shorts when below, so trades go with the broader trend. It exits on the opposite crossover.
  • EMA(21) — fast moving average
  • EMA(55) — slow moving average (crossover trigger)
  • EMA(200) — higher-timeframe trend filter
When it tends to work
Strong, sustained trends in one direction.
When it tends to struggle
Sideways or choppy markets, where crossovers flip back and forth (whipsaw) and produce repeated small losses.
No configurable parameters — values are fixed in the implementation.

Crowd Positioning (HYPE)

Signal-Driven — Backtest Only
Fades extreme crowd positioning on HYPE using the lsr_agg_long_frac signal (Aggregate Long %). Enters long when crowd is most short, short when crowd is most long. Exits when signal reverts to neutral or a max-hold cap is reached.
lsr_agg_long_frac (dirBearHigh) measures what fraction of CEX accounts are net long. When the crowd is positioned most short (signal below the 20th percentile), a structural bid from AF/staking tends to push HYPE up — the strategy goes long. When the crowd is most long (above the 80th percentile), that bid is absorbed and the strategy goes short. Position closes when the signal reverts through the neutral midpoint or after maxHoldBars bars.
  • lsr_agg_long_frac — Aggregate Long % (dirBearHigh, CEX crowd positioning)
When it tends to work
When crowd positioning reaches extremes and the structural bid remains active.
When it tends to struggle
When the crowd is right (trending markets where positioning and price align).
Entry long below (p20 approx) default: 0.45 0.3 – 0.5
Entry short above (p80 approx) default: 0.55 0.5 – 0.7
Exit neutral threshold default: 0.5 0.4 – 0.6
Max hold (bars) default: 48 4 – 240

Funding Extreme (HYPE)

Signal-Driven — Backtest Only
Fades extreme HYPE funding deviations from the protocol default. The distribution is a mass point at 1.25e-5; deviations are genuine outliers — enters against the crowded side when carry is at a multiple of the default; exits on normalisation.
No rolling window needed: thresholds are absolute, derived from params. Enter short when funding ≥ defaultRate × entryShortMultiple (longs overpaying carry). Enter long when funding ≤ −(defaultRate × entryLongMultiple) (longs paying shorts at k× default magnitude). The symmetric multiple design filters shallow-negative noise (e.g. −1e-6 ≈ 0.08× default) that any-negative-funding rules misfire on. Exit when |funding − defaultRate| < exitBand (normalised), or after maxHoldBars bars, or on the engine stop-loss. Because ≥80% of funding values sit at exactly the default, percentile-based entries are degenerate (p10 = p90); this strategy uses absolute deviation instead.
  • funding_rate — HYPE perpetual funding /h (hl-market, dirBearPos). Backfill available via scripts/backfill-funding-signals.ts.
When it tends to work
When funding spikes to several multiples of the default (longs overpaying) then reverts, or briefly goes negative (longs paying shorts). The deviation-from-default approach is robust precisely because the distribution is a mass point — outliers are structurally unusual.
When it tends to struggle
Persistent high-funding regimes where longs pay extreme carry for weeks without deleveraging (strong bull markets). Max-hold and stop-loss cap the damage but the strategy will underperform.
Default rate default: 0.0000125 0.000001 – 0.0001
Short entry multiple (k) default: 3 1.5 – 10
Long entry multiple (k_long) default: 1 0.5 – 5
Exit band (ε) default: 0.00000625 0.000001 – 0.00005
Max hold (bars) default: 72 4 – 240
Stop-loss (%) default: 6 1 – 20

Crowd Positioning

Contrarian / Positioning Signal-Driven Backtest Only
Trades against crowded retail positioning using long/short ratio data aggregated from major CEXs. When the crowd is extremely short, a structural bid on HYPE tends to push price up; when extremely long, the crowd gets faded. Edge is measured statistically — check the Signals tab for current IC scores before relying on this strategy.
⚡ Backtest-only strategy. Entries are driven by pre-computed Market signal data (lsr_agg_long_frac) that is only available during backtests — it is not attached to live or paper candles. This strategy appears in the Backtest dropdown but is excluded from the +Add Bot launcher. The Signals tab on the Market page shows its measured IC across 4h, 24h, 72h, and 168h horizons.
Each hour the strategy reads the aggregate long fraction (lsr_agg_long_frac) — the share of accounts at major CEXs that are net long HYPE. It computes the 20th and 80th percentiles from the available signal window. When the crowd is extremely short (signal below the 20th percentile), a structural bid from the Alligator Fund and staking rewards tends to push price up against the crowd: the strategy goes long. When the crowd is extremely long (above the 80th percentile), it shorts, fading the crowded side. The position exits when positioning reverts past the median (50th percentile), or unconditionally after a configurable max-hold cap to limit exposure in persistent positioning regimes.
  • lsr_agg_long_frac — Aggregate Long % (weighted average across Binance, OKX, Bybit). Primary entry/exit trigger. View IC →
  • lsr_okx_account — OKX account-level L/S ratio (crowd positioning on the second-largest venue). View IC →
  • lsr_binance_global — Binance global account L/S ratio (largest retail crowd). View IC →
When it tends to work
Ranging or squeeze-prone markets where extreme retail positioning precedes reversals. Most effective when the structural AF/staking bid is active and the crowd is systematically wrong about direction.
When it tends to struggle
Strong sustained trends where the crowd is correct and stays positioned in the trend direction for extended periods. Positioning extremes that don't revert before the max-hold cap fires.
Entry long below (p20 approx) Signal percentile threshold for long entry. A value of 0.45 means "enter long when fewer than 45% of accounts are long." default: 0.45 0.30 – 0.50
Entry short above (p80 approx) Signal percentile threshold for short entry. A value of 0.55 means "enter short when more than 55% of accounts are long." default: 0.55 0.50 – 0.70
Exit neutral threshold Signal level at which positioning is considered "back to neutral." Longs exit when signal rises above this; shorts exit when it falls below. default: 0.50 0.40 – 0.60
Max hold (bars) Maximum bars to hold before force-exiting, regardless of signal. At 1h candles, 48 bars = 2 days. Prevents being trapped in a persistent positioning regime. default: 48 4 – 240

Volatility Regime Switching

Adaptive (regime-aware) Planned — not yet implemented
Switches between mean-reversion and trend-following based on the current volatility regime.
It measures realised volatility on a rolling window and compares to a 30-day baseline. In low-vol periods (range-bound markets), it allocates more capital to mean-reversion logic; in high-vol periods (trending markets), it shifts to trend-following. Rather than a binary regime toggle, the allocation is weighted continuously by the volatility percentile, avoiding whipsaws at regime boundaries.
  • Realised volatility (rolling window vs 30-day baseline)
  • ATR (regime weighting)
  • Underlying mean-reversion signals
  • Underlying trend-following signals
When it tends to work
When the market clearly alternates between regimes over the holding window.
When it tends to struggle
In transitional regimes where vol is changing rapidly.
Vol lookback period
Regime weighting curve

Liquidation Cascade Fade

Microstructure (counter-trend) Planned — not yet implemented
Trades against forced-liquidation cascades after they begin to exhaust.
When Hyperliquid's liquidation volume spikes far above its rolling baseline, the strategy waits for the first candle close that prints opposite the cascade direction (a confirmation candle), then enters a counter-trend position with a tight stop. The confirmation filter sacrifices the first part of the bounce in exchange for not catching falling knives mid-cascade.
  • Liquidation USD volume vs rolling baseline
  • Candle direction (confirmation filter)
When it tends to work
During sharp cascade events that overshoot fair value and snap back.
When it tends to struggle
In extended grinding moves where no single cascade resolves cleanly.
Spike threshold (× baseline)
Baseline window
Stop distance

Funding Deviation (Predicted vs Actual)

Positioning flow (rare metric) Planned — not yet implemented
Trades against positioning shifts revealed when actual funding diverges from Hyperliquid's predicted rate.
Hyperliquid publishes both the current funding rate and a predicted next rate. Persistent positive deviation (actual exceeds predicted) signals fresh long crowding — historically a precursor to reversals. Negative deviation signals short crowding. The raw deviation is normalised as a 7-day z-score so the signal is scale-invariant across calm and volatile funding regimes.
  • Actual funding rate
  • Predicted funding rate (next period)
  • 7-day rolling mean and std of the gap (z-score)
When it tends to work
When positioning is shifting fast and the market hasn't priced it in.
When it tends to struggle
During sustained directional funding regimes where deviation is small but persistent.
Z-score window
Entry threshold (z-score)

Momentum
Relative Strength Index Momentum
RSI measures the speed and change of price movements, oscillating between 0 and 100. Values above 70 traditionally signal overbought conditions (potential reversal down); below 30 signals oversold (potential reversal up). Wilder's smoothing makes it react gradually, reducing false signals.
Detecting overbought/oversold extremes, divergence with price, and momentum confirmation.
Period 14 (standard). Overbought 70, oversold 30 for liquid markets; widen to 80/20 in strong trends.
RSI(14) < 30 — momentum is in oversold territory, suggesting a potential long entry.
Period default: 14 2 – 50
Overbought level default: 70 60 – 90
Oversold level default: 30 10 – 40
MACD Momentum
MACD is the difference between two EMAs (fast minus slow). When the MACD line crosses above its signal line (a 9-period EMA of MACD), it generates a bullish signal; crossing below is bearish. The histogram visualises the gap between MACD and signal — expanding bars indicate accelerating momentum.
Momentum crossover signals, divergence analysis, and confirming trend direction.
Standard (12,26,9). Faster settings (8,17,9) for shorter timeframes; slower for weekly/monthly.
MACD line crosses above signal line — bullish momentum crossover, classic long entry signal.
Fast EMA default: 12 2 – 50
Slow EMA default: 26 10 – 100
Signal EMA default: 9 2 – 20
Stochastic Oscillator Momentum
The Stochastic Oscillator compares closing price to the high-low range over N periods, expressing it as a percentage (0–100). %K is the raw oscillator; %D is a smoothed signal line. Values above 80 are overbought; below 20 are oversold. A %K cross above %D from oversold is a classic buy signal.
Identifying momentum reversals, %K/%D crossovers in overbought/oversold zones.
%K 14, %D 3. Use %K 5 for scalping, %K 21 for position trading.
Stochastic %K < 20 and %K crosses above %D — oversold bullish crossover signal.
%K period default: 14 5 – 30
%D period default: 3 1 – 10
Commodity Channel Index Momentum
CCI compares the current typical price (average of high, low, close) to its N-period simple moving average, normalised by mean absolute deviation. Values above +100 indicate the instrument is above its statistical norm (strong upward momentum); below -100 indicates weak downward momentum.
Overbought/oversold signals, trend strength, and divergence with price.
Period 20 (standard). Thresholds ±100 for signals; ±200 for extreme reversals.
CCI(20) crosses below -100 — price moved significantly below average, potential long reversal.
Period default: 20 5 – 50
Williams %R Momentum
Williams %R measures where the closing price sits relative to the high-low range over N periods, expressed as a negative percentage. Values near 0 (i.e., -20 or above) indicate the close is near the period's high (overbought); near -100 (i.e., below -80) indicates a close near the period's low (oversold).
Identifying momentum reversals, confirmation of overbought/oversold conditions alongside RSI.
Period 14. Overbought above -20; oversold below -80.
Williams %R(14) < -80 — price is near the period's low, oversold signal.
Period default: 14 5 – 50
Rate of Change Momentum
ROC measures the percentage change in price over N periods: (current - Nago) / Nago × 100. Positive ROC means price is higher than N periods ago (upward momentum); negative means lower. Zero crossings signal momentum direction changes.
Momentum confirmation, zero-line crossovers, and divergence with price.
Period 10–14 for short-term; 20–30 for medium-term momentum.
ROC(10) crosses above 0 — price now higher than 10 periods ago, positive momentum shift.
Period default: 10 1 – 100
Trend
Simple Moving Average Trend
The SMA is the arithmetic mean of price over N periods. It smooths out short-term fluctuations to reveal the underlying trend direction. Longer periods produce smoother lines that lag more; shorter periods react faster but are noisier.
Identifying trend direction, dynamic support/resistance levels, and as a component in other indicators.
Period 10–200. Short (10–50) for swing trading; long (100–200) for trend identification.
Close > SMA(50) — price is above the 50-period average, suggesting an uptrend.
Period default: 20 2 – 200
Exponential Moving Average Trend
The EMA applies a weighting multiplier (2/N+1) that gives more importance to recent prices compared to older ones. This makes it more responsive to new information than the SMA, at the cost of being slightly more reactive to false signals.
Trend following, crossover systems (EMA21 × EMA55 golden/death cross), and as a dynamic support line in trending markets.
Period 9, 12, 21, 26, 50, 200. Pairs like (12,26) drive MACD; (21,55,200) are classic trend-follow periods.
EMA(21) crosses above EMA(55) — fast average crosses slow, signalling upward momentum.
Period default: 20 2 – 200
Weighted Moving Average Trend
The WMA assigns linearly increasing weights to recent prices (the most recent bar gets weight N, the previous N-1, and so on). It is more responsive than SMA and emphasises recency more aggressively than EMA, making it useful when recent price action should dominate.
Trend direction in fast-moving markets; alternative to EMA when even stronger recency bias is desired.
Period 10–50. Used similarly to EMA, often chosen by traders who want quicker signal generation.
Close > WMA(14) — price is above the weighted average, confirming near-term bullish bias.
Period default: 14 2 – 100
Average Directional Index Trend
ADX measures the strength of a trend (0–100) without indicating direction. Values above 25 suggest a strong trend; below 20 suggests ranging conditions. The accompanying +DI and -DI lines show directional pressure: when +DI > -DI, bulls dominate; when -DI > +DI, bears dominate.
Filtering trend strength before entering directional trades; +DI/-DI crossovers as signals.
Period 14. ADX > 25 to confirm trend; +DI/-DI crossover for direction.
ADX(14) > 25 and +DI > -DI — strong uptrend confirmed, favour long trades only.
Period default: 14 5 – 50
Parabolic SAR Trend
Parabolic SAR trails behind price, accelerating as the trend extends (the AF increases up to its maximum). When price crosses the SAR level, the trend is considered reversed and the SAR flips to the other side. It works well in trending markets but generates many whipsaws in ranging conditions.
Trailing stop placement, trend reversal detection, and trade management.
AF 0.02, step 0.02, max 0.2 (Wilder's original). Lower AF for longer-term trends.
Close > Parabolic SAR — SAR is below price, indicating uptrend; stay long while this holds.
Initial AF default: 0.02 0.01 – 0.1
Max AF default: 0.2 0.1 – 0.5
AF Step default: 0.02 0.01 – 0.05
Heikin Ashi Trend
Heikin Ashi ('average bar' in Japanese) transforms standard OHLC candles into smoothed bars that filter noise and make trends visually clearer. HA Close is the average of OHLC; HA Open is the average of the previous HA Open and Close. A series of hollow (bullish) bars with no lower wick indicates a strong uptrend; filled bars with no upper wick indicate a downtrend.
Trend identification and riding trends without being shaken out by minor pullbacks.
No parameters. Works on any timeframe; best used on H1+ for trend clarity.
HA Close > HA Open — current bar is bullish Heikin Ashi, trend is up.
Volatility
Bollinger Bands Volatility
Bollinger Bands place upper and lower envelopes at ±N standard deviations around a simple moving average. When price touches or breaks the upper band, the market is statistically stretched to the upside; lower band to the downside. Band width (squeeze) indicates low volatility, often preceding large moves.
Mean reversion entries at band extremes, squeeze breakouts, and dynamic support/resistance.
Period 20, StdDev 2 (standard). Wider bands (2.5) reduce false signals in volatile markets.
Close < BB lower band — price below statistical floor, suggesting oversold mean-reversion long.
Period default: 20 5 – 50
Std Dev multiplier default: 2 0.5 – 4
Average True Range Volatility
ATR measures market volatility by averaging the True Range (the greatest of: high-low, |high-prevClose|, |low-prevClose|) over N periods using Wilder smoothing. It does not indicate direction, only the degree of price movement — higher ATR means more volatility.
Setting stop-loss distances (e.g., 2×ATR), position sizing, and filtering low-volatility environments.
Period 14 (standard). Use in conjunction with a multiplier: ATR × 1.5 for tight stops, × 3 for wider.
ATR(14) > 50 — sufficient volatility present, safe to enter; filter out flat markets.
Period default: 14 2 – 50
Keltner Channels Volatility
Keltner Channels surround price with bands at EMA ± (multiplier × ATR). Unlike Bollinger Bands, which use standard deviation, Keltner uses ATR, making the bands less sensitive to individual price spikes. When Bollinger Bands squeeze inside Keltner Channels, a 'Keltner Squeeze' indicates compressed volatility and an impending breakout.
Trend channel identification, breakout detection (especially the Keltner Squeeze), mean reversion.
EMA 20, ATR 10, multiplier 2. Wider multiplier (2.5) for volatile markets.
Close breaks above Keltner upper band — volatility expansion to the upside, momentum entry.
EMA period default: 20 5 – 50
ATR multiplier default: 2 0.5 – 4
ATR period default: 10 5 – 30
Donchian Channels Volatility
Donchian Channels plot the highest high and lowest low over N periods, creating a price channel. A breakout above the upper channel signals potential long momentum; below the lower channel signals potential short momentum. The midline (average of upper and lower) acts as a mean reversion reference.
Trend breakout systems (Turtle Trading uses 20-day and 55-day Donchian), channel support/resistance.
Period 20 for medium-term; 55 for the classic Turtle Trader system.
Close equals Donchian upper(20) — price at 20-period high, classic momentum breakout long signal.
Period default: 20 5 – 100
Volume
On-Balance Volume Volume
OBV is a cumulative volume indicator: when price closes up, the day's volume is added; when it closes down, volume is subtracted. The running total creates a line that reflects the buying and selling pressure behind price movements. Rising OBV with rising price confirms a trend; divergence between OBV and price often precedes reversals.
Volume-based trend confirmation, divergence signals, accumulation/distribution detection.
No parameters — OBV is computed from all available price and volume data.
OBV is making higher highs while price is not — bullish divergence, potential upside breakout.
VWAP Volume
VWAP (Volume Weighted Average Price) is the average price weighted by volume over the lookback window. It represents the average price at which the market has transacted. Institutional traders use it as a benchmark; price above VWAP indicates bullish intraday sentiment, below indicates bearish.
Intraday trend bias, institutional benchmark comparison, dynamic support/resistance.
Full-session VWAP resets daily. Rolling VWAP with 20–50 periods works on all timeframes.
Close > VWAP(20) — price is above the volume-weighted average, suggesting bullish institutional bias.
Lookback periods default: 20 5 – 200
Money Flow Index Volume
MFI combines price and volume to measure buying and selling pressure, ranging from 0 to 100. It is sometimes called the 'volume-weighted RSI'. Above 80 signals overbought with heavy buying; below 20 signals oversold with heavy selling. Divergence between MFI and price is a powerful early warning signal.
Volume-confirmed overbought/oversold signals, divergence with price, money flow analysis.
Period 14. Overbought above 80; oversold below 20.
MFI(14) < 20 — oversold with volume confirmation, stronger reversal signal than RSI alone.
Period default: 14 5 – 50
Volume MA Volume
Volume MA is simply the simple moving average of trading volume over N periods. It establishes the baseline typical volume for the instrument. A volume spike — current volume significantly above the MA — often accompanies meaningful price moves and can confirm the conviction behind a breakout or reversal.
Volume spike detection (volume > 1.5× or 2× its MA), confirming breakouts, filtering low-conviction moves.
Period 20 (most common). Compare current volume to Volume MA as a ratio (e.g., > 1.5).
Volume > VolumeMA(20) × 1.5 — above-average volume confirms the current price candle's significance.
Period default: 20 2 – 100