16 Aug 2026 · updated 29 Aug 2026
Translating Chartink formulas to Sift
Side-by-side translations of the four Chartink idioms: the crossover, the streak, the N-day high and the volume multiple, plus what has no equivalent here.
Almost every Chartink scan is built from one move: compare a value at one offset against a value at another. It works. It also grows. A crossover is two comparisons, a three-day streak is three, and "crossed above at some point this week" becomes a stack of parenthesised clauses you read twice and trust once. I have written those towers and then failed to understand them a month later.
Sift treats these as events instead and gives them their own grammar. Here is the translation table.
The crossover
Chartink's idiom for "RSI crossed above 30" is yesterday-below-and-today-above:
Daily RSI(14) crossed above 30
Its interface builds that as 1 day ago RSI(14) < 30 AND latest RSI(14) > 30. In Sift the event is the operator:
rsi(14) crossed above 30RunThe version I actually want most days is "crossed above recently", which costs one more word:
rsi(14) crossed above 30 within 3 barsRunThat within is the difference between catching the turn only on the day it prints and catching it while it is still fresh. RSI oversold turn is this pattern with a trend filter on top, and the same grammar drives MACD bullish cross.
The streak
"Close above the 21-EMA on each of the last ten days" in offset form is ten ANDed comparisons, latest close > latest EMA(21) AND 1 day ago close > 1 day ago EMA(21) AND …, and nobody types the tenth without copy-paste. Here a streak is a condition with a duration:
close has been above ema(21) for 10 barsRunThe same shape covers rising sequences. volume rising for 3 bars replaces three chained volume comparisons.
There is one thing the offset stack simply cannot say, and it took me a while to notice how much it mattered: it only expresses every day. "Above the 21-EMA on at least 7 of the last 10 days" has no Chartink form, because writing it as offsets means enumerating every way three of the days may fail. In Sift it is count(close > ema(21), 10) >= 7, and countstreak(close > ema(21), 60) gives you the streak as a number you can sort by. Scans that say "most of the last ten days" covers both.
The N-day extreme
Chartink writes "highest close in a year" as Max(250, close). Sift names the extreme:
close is highest in 52wRunWindows take natural units, 52w or 3mo or 20 bars, so the number in the query is the number you meant rather than a bar count you converted in your head. Yesterday's levels are still offsets, spelled readably: previous-day high break is close > high[-1] with a volume filter to keep it honest.
The volume multiple
The one everyone builds first. Chartink: latest volume > 2 * SMA(volume, 20). Sift keeps the arithmetic and drops the ceremony:
volume > 2x avg(volume, 20)RunAdd and change > 5 and you have rebuilt Chartink's most-cloned scan. It exists here prebuilt as volume shockers, for the same reason it is popular over there.
What does not translate
Anyone migrating deserves this straight. Chartink scans during market hours and its intraday timeframes, the 15-minute crossovers and the opening-range logic, have no Sift equivalent, because this dataset updates once, after the close. If your workflow fires mid-session, keep Chartink for that half of it.
What changes on this side is what comes back from history. Chartink's backtest lists the triggers your scan would have produced. Every scan you translate here carries a hit-rate panel that measures what those matches did next, over 250 sessions, close to close, before costs. The setup you have been running on faith reports whether it has actually worked.
If you would rather not translate by hand, the Chartink scan converter does the mechanical part: paste a scan_clause, get the Sift, and see what it matches today. It refuses rather than guesses, so a scan it cannot carry across tells you which clause stopped it. The full language reference documents every field and operator with runnable examples, and the comparison page has the feature table.