KINEXIS
Help — filters, states and indicators
Theory ← Back to the screener FR

Understanding the screener

What every filter, label and number means — and how to combine them to find what you are looking for.

The timeframe How the filters work The filters one by one The states The table columns The indicators Where the data comes from

The timeframe — read this first

The 4 hours / 1 day / 3 days / 1 week selector drives absolutely everything on display: the cards, the filters, the states, the dots, the counters at the top. The same coin can be a “valid setup” in 4 hours and “below the short EMAs” in 1 week — that is not a contradiction, they are two different scales of time.

Simple rule: the shorter the timeframe, the more signals you get, and the more fragile they are. The longer it is, the fewer you get, but the longer they hold. 3 days, the default, is the compromise.

The selector appears in two places — at the top of the page and just above the table — but it is the same setting: the two stay in agreement.

The current candle is included, as on TradingView. A setup in 3 days can therefore still invalidate before its candle closes.

How the filters work

Every filter has three states, cycling with each click:

ClickAppearanceEffect
1stAbove EMA 200 Keeps only the contracts meeting this criterion.
2nd✕ Above EMA 200 Excludes the contracts meeting this criterion.
3rdAbove EMA 200 Filter off.

That is why there is no “below” filter: excluding “Above MA 100” is exactly the same as asking for what is not above it. One button per criterion, always worded positively.

Filters stack (logical AND). Three useful examples:

Above EMA 13·25·32 ✕ Overstretched ✕ Overbought

Your valid setups, stripped of whatever has already run too far and whatever is overbought. The most useful everyday combination.

Full alignment Strength ≥ 80

The cleanest trends on the market, among the strongest. Very selective — often a handful of contracts, sometimes none.

Strength ≥ 80 Rebound zone

Strong coins that have just paused: the zone where trend resumptions happen, rather than mid-frenzy.

The Clear all button appears as soon as one filter is active.

Stacking a filter and its exclusion on the same criterion obviously returns zero results — that is expected, not a bug.

Presets and export

Below the filters, the Presets row saves you from rebuilding your settings every morning:

Presets are saved in this browser, on this device.

Notebook

The 📝 button at the bottom right opens a free-form notebook: alts to watch, your ideas, your levels. It saves itself, and the small number shows the line count. From a coin's detail card, + Add to notes writes its symbol there (no duplicates). Like the presets, the notebook stays in this browser, on this device.

The filters one by one

Trend

Where price sits relative to your averages, in the chosen timeframe.

Above EMA 13·25·32 Price is above all three short EMAs at once. This is the main entry criterion.
Aligned on 3 timeframes or more The criterion above is met in at least 3 of the 4 timeframes. The breakout is carried by the larger scales, not only by the shortest one. See the “timeframes” column.
Above EMA 200 Price is above its long average: the underlying trend is up.
Above MA 100 Same with the 100-period simple average.
Above MA 300 Same with the 300-period simple average — the slowest, and so the most rarely crossed.
A contract too recent to have an average (grey dot) is not counted as “above”. So when you exclude one of these filters, it stays visible: one cannot claim it is below an average that does not exist yet.

State

Three ways of being above the short EMAs, from the freshest to the most established. These three filters match exactly the labels in the “state” column.

valid setup Above the EMAs 13·25·32, without being either a recent crossing or a full alignment. The ordinary case.
crossing Just crossed back above the three EMAs, 3 candles ago or less. The freshest entry — and the least confirmed.
full alignment The most demanding: price > EMA 13 > EMA 25 > EMA 32 > EMA 200. Detailed below.

Timing

Not what to buy, but when — or rather when to stand aside.

overstretched Price has travelled far and fast above its average. A poor place to enter. Calculation detailed below.
overbought Stoch RSI ≥ 80: the move is mature.
oversold Stoch RSI ≤ 20: the move down is exhausted.
rebound zone Strength ≥ 60, Stoch RSI below 30 and turning up: the coin is solid but has just paused.

Strength

Strength ≥ 80 The top 20 % of the market on the relative-strength score.
Beats BTC Outperforms Bitcoin over 30 days and that outperformance is accelerating (ratio above its 50-day average).

The states, in detail

Full alignment

Three conditions checked together:

  1. Price is above the three short EMAs (13, 25, 32).
  2. The short EMAs are stacked: 13 above 25, itself above 32.
  3. The whole stack sits above the EMA 200.

In other words price > EMA 13 > EMA 25 > EMA 32 > EMA 200. Each average summarises a period: the 13 says where we are over the last few days, the 200 says where the market stands. When they line up in that order, every scale of time tells the same story and no average acts as resistance above price.

That is the difference between “it is going up right now” and “it is in an established uptrend”. The MA 100 and 300 play no part in this calculation.

This state is rare, and that is the message. When Bitcoin is below its EMA 200, only one or two contracts out of 500 may qualify: the market is telling you that nearly everything going up is just a bounce inside a downtrend.

Why “valid setup” is not everything above the EMAs

The Above EMA 13·25·32 filter is the total. It breaks down into three states that do not overlap:

Above EMA 13·25·32  =  valid setup + crossing + full alignment

If you want only the ordinary setups, use the Valid setup filter, not the global one.

The table columns

ColumnWhat it shows
#Market-cap rank (CoinGecko), with the token logo. A dash is rare (a handful of contracts): it means CoinGecko itself gives the token no rank, or does not know it yet.
price, 24 h, 7 d, 30 dPrice and performance. These performances are always in days, whatever timeframe you choose.
strengthRelative-strength score out of 100, with a proportional bar. Green from 80, red below 35.
vs btc 30 dPerformance gap against Bitcoin over 30 days.
trend vs btcDistance of the coin/BTC ratio from its 50-day average. Positive = the outperformance is accelerating.
averagesThe six dots, in the chosen timeframe.
timeframesFour dots — 4h, 1d, 3d, 1w — green when price is above the short EMAs there, followed by the total out of 4. The only column that does not depend on the selected timeframe: that is the point, it summarises them all.
stateThe labels. One row can carry several.

The six dots

132532200100300

The order is always the same: EMA 13, 25, 32, 200, then MA 100 and 300. In the example above: above the three short EMAs, below the EMA 200 and the MA 100, and not yet enough history for the MA 300.

Click any row to open its detail card: the exact values of the six averages, the Stoch RSI and the stretch across the four timeframes, plus a direct link to the TradingView chart.

The indicators

Relative strength (0 to 100)

This is not a performance, it is a rank. A strength of 90 means “better than 90 % of the contracts tracked”, not “+90 %”.

The calculation, redone at every update: all contracts are ranked on their 7, 30 and 90-day performance — three separate rankings — then combined into a weighted average of 25 % / 45 % / 30 %. The 30-day carries the most weight, the 7-day brings responsiveness, the 90-day checks it is not a flash in the pan.

The score is relative to that day's market. In a falling market, a strength of 95 can point to a coin that is simply losing less than the others — always look at the 30 d column beside it.

A dash means less than 30 days of history: not enough hindsight to rank honestly.

Stretch

How many average candles price sits above its EMA 32.

A plain percentage gap would not be comparable from one coin to another: a memecoin permanently lives at +40 % from its average, while Bitcoin at +12 % is already very tense. By dividing the gap by each contract's own volatility, the number means the same thing everywhere.

The threshold was calibrated on the universe: 95 % of contracts live below 3. Beyond 4, the move has gone far and fast — label overstretched, and the Overstretched filter to exclude with a double click.

The measure is recalculated in every timeframe. A coin can be massively stretched in 3 days and perfectly normal in 4 hours: that means it has consolidated on the short scale. That is information in itself.

Stochastic RSI (14, 14, 3, 3)

Standard TradingView setting. Below 20 = oversold, above 80 = overbought.

It is not a buy signal on its own: crossed with relative strength and the averages, it helps spot when to enter a coin that is already strong. A coin can stay overbought through weeks of trend.

Trend vs BTC (Mansfield)

The coin's price is divided by Bitcoin's, and we look at where that ratio sits relative to its 50-day average. Positive = the outperformance is accelerating; negative = it is fading, even if the coin is still rising.

Where the data comes from

The universe tracked is the list of active USDT perpetual contracts on Bybit. It is re-read at every update, so it always reflects new listings and delistings.

Bybit also carries tokenised equities (AAPL, TSLA, SPY…) and commodities on that same feed: they are discarded automatically using Bybit's own classification. Stablecoins and tokenised gold are discarded too.

CoinGecko only enriches the display: full name, market-cap rank and logo. No price comes from it.

Matching the two is not automatic: Bybit sometimes names a token differently from CoinGecko (RAYDIUM against RAY, VELODROME against VELO, PUMPFUN against PUMP). And above all, one ticker often designates several tokens: Bybit's SAFE is “Safe”, not “Safecoin”. The screener decides by comparing the CoinGecko price with the contract's — if the gap exceeds 35 %, it is a namesake and it looks elsewhere.

Two safeguards

Averages are computed on closes, with up to 1000 candles of history so that the EMA 200 and the MA 300 are reliable.

The thresholds are settings, not truths: the stretch is set with STRETCH_MAX in index.html, the averages and the Stoch RSI at the top of screener.py.

← Back to the screener  ·  Theory  ·  Legal information