Skip to main content

Dynamic & universe strategies

Who it’s for
Users who want one strategy to trade a selected set of instruments rather than one
Assumes
You have built a single-instrument strategy

A dynamic strategy trades a universe rather than a fixed symbol: it evaluates every candidate on each bar, ranks them, and trades the top-ranked ones. Instead of naming an instrument, you name a selection rule.


Triggering one

Give an instrument selection rule instead of an instrument:

build a momentum strategy across all large-cap crypto
buy the top 5 NIFTY 50 stocks by relative strength
trade the most active NSE stocks on a breakout signal

The builder recognises that you gave a selection rule and resolves a dynamic universe rather than asking you for a single asset. Dynamic strategies carry a Dynamic badge on the strategy card.


Not the same as a multi-symbol backtest

The distinction is subtle and it matters more than anything else on this page.

Multi-symbol backtestDynamic strategy
Trigger"backtest this on ETH and BTC""across all large-cap crypto"
What runsThe same strategy independently on each symbolOne strategy that selects from a pool
CapitalFull starting capital on eachOne allocation, shared
ResultSeveral standalone results to compareOne portfolio-style result
Instruments tradedExactly the ones you namedWhichever currently rank highest
PurposeComparison, "does this work on both?"Selection, "trade whichever is best right now"
A multi-symbol backtest is not a portfolio

Two independent 20% returns are not a 20% portfolio return. Each run had the full capital and neither knew the other existed. See Backtest limitations


How the universe resolves

The candidate pool

The pool comes from the platform's supported-asset catalogue, the single source of truth for every tradeable asset, with nothing hardcoded per universe. Both the live path and the backtest resolve members through the same code, so a universe means the same thing researched and deployed.

You sayResolves to
An index nameIts constituent list
A sectorThe sector's members
A broad market or exchange nameThe whole supported equity universe for it, not a specific constituent list
An asset classAll supported members of it, equity_cash, crypto_spot
A crypto universeSupported crypto pairs, de-duplicated across quote currencies

Note the third row: "NSE stocks" means the supported NSE universe, not an index. If you want an index's constituents, name the index.

Crypto pairs are de-duplicated by base asset. The catalogue lists both BTC_USDC and BTC_USDT; for ranking purposes one is used, because ranking the same asset twice would distort the selection.

Membership over time

Universe membership has a timeline, and there are two modes:

ModeBehaviour
point_in_timeMembership as it was on each historical date
approximateToday's supported list, applied across history
approximate mode carries survivorship bias, by construction

Today's supported list is today's list. Applied across history, it means the backtest only ever considered instruments that still exist and are still supported.

Instruments that were delisted, suspended or removed during the window are absent, and those are disproportionately the losers. A universe backtest in approximate mode is measuring a set selected by survival. Check which mode a run used before drawing conclusions from it.


Ranking

Each bar, candidates are ranked by a metric you choose.

Rank byComputed as
momentumMomentum over a window (default 20)
pct_changePercentage change over a window (default 1)
rel_strengthRelative strength against a reference series (default 20)
rsiRSI (default 14)
rvolRelative volume against its own average (default 20)
volumeAverage daily traded value, close × volume over ~20 days
atr_pctATR as a percentage of price (default 14)
distance_52wDistance from the 52-week high (default 252)
delivery_volumeDelivery quantity, needs an external stats feed
oi_changeOpen-interest change, needs an external stats feed

Why volume means traded value

Worth reading, because it is a genuinely good decision:

"Most active / most traded" is liquidity, which is a multi-day property measured by average daily value (close × volume) over about 20 days. Not one bar's raw share count. A single freak bar would otherwise crown an illiquid name.

Using traded value also makes equity and crypto comparable, which raw share counts are not. And it is the same measure as the eligibility floor, so "most active" and "tradeable" agree rather than selecting different sets.

Missing metrics fail closed

A metric whose input is absent (no stats feed, or warm-up incomplete) returns NaN, and the resolver treats NaN as rank-last or drop. It never treats a missing value as zero or as neutral.

delivery_volume and oi_change have no feed yet, and the validator says so rather than silently ranking everything equally.


Selection and allocation

Once ranked, the strategy trades the top N. Capital is divided across selected positions from the strategy's single allocation, the allocation is never exceeded, and the two capital gates that enforce that cannot be disabled.

Selection is re-evaluated per bar, so the traded set changes as ranks change. The practical consequences:

Turnover. A strategy that reselects frequently trades more, and cost drag scales with turnover. Watch the gross-to-net gap. See Fees & charges

Correlated exposure. The top five by momentum in one sector is one bet with five names. Ranking does not diversify.


Reading a dynamic backtest

The Markets tab shows per-asset performance, which instruments carried the result and which dragged.

This is the tab that tells you whether the universe was the point

If one instrument produced most of the return, you did not build a universe strategy. You built a single-instrument strategy with extra steps, and it happened to select the right one in this window. A different window would select differently.

Also read:

ReadTo learn
Trade count against turnoverWhether reselection is churning
Gross versus net returnWhether cost drag from turnover is eating the edge
Per-asset distributionWhether the result is broad or concentrated
Which membership mode ranWhether survivorship is in play

Limitations

LimitationConsequence
Approximate membershipSurvivorship bias by construction
Two ranking metrics have no feeddelivery_volume and oi_change are unusable today
Ranking is not diversificationTop-N by one metric is often one correlated bet
Turnover costsReselection has a real price
Pool is the supported catalogueAn instrument the platform does not support cannot be in a universe
Warm-upA candidate without enough history ranks NaN and drops

Next