How each algorithm votes
For every registered algorithm: what makes it say long, what flat and short mean, and when it stays silent.
- Who it is for
- Owners & operators
- Reading time
- 7 min read
- Updated
Every answers the same four-way question for one symbol as of its last completed daily bar: long, flat, short or none, with a score between −1 and +1. The words mean slightly different things per algorithm, and that matters when you read the PM's citations and when you decide how much weight to give one. This page is the short version; the full written spec of each one (exact formula, parameters and their bounds, evidence, known limitations) is the Spec section of its detail page: click View on its card on Algorithms.
The four answers
| Answer | Means | In the |
|---|---|---|
| long | the rule's condition for owning it holds today | counts at the algorithm's weight with a positive score |
| flat | the rule has data and reads the symbol as not worth owning (a trend rule on a falling name) | counts, usually with a score at or below zero |
| short | the rule reads the symbol as against it | counts with a negative score; we never short, so read it as "hold none of it" |
| none | not enough history, missing context (a partner series, the sector panel, volume), or an event rule with nothing in play (no bounce setup today) | left out of the blend entirely, so it never drags the score toward zero |
The blend only averages algorithms that gave a definite answer for that symbol, which is why a data gap in one algorithm, or a bounce rule with no setup today, does not dilute the others. Two more things keep the blend honest. Every algorithm's score is scaled to the same typical size (on our twenty-name reference history each blend member's score averages 0.5 in absolute value), so the weight you set, and only the weight, decides how hard it pulls. And xs_momentum is a rank: in the morning read its score says where the stock's twelve-month run sits among every name read that day (and the wider nightly universe when that is fresh), not how big the run was, so in a year when everything is up it still separates leaders from laggards. See The blend and the bench.
Algorithm by algorithm
| Algorithm | Says long when | Flat / short / none |
|---|---|---|
jim_av_pivot () | only on the day a long setup fires: weekly bias long, a pullback (three red days) has happened since the last setup, and three green days close above the last 3-High. Score 1 on that day; on other days the weekly lean shows as 0.25 (bias) or 0.5 (bias plus pullback seen), halved while price sits in last period's predicted range | flat on every non-setup day; short on a short setup (never traded); none with almost no bars |
xs_momentum | the stock's return from twelve months ago to one month ago is positive; the score is its rank among the names read that day (top of the list near +1, bottom near −1, middle 0) | flat when the return is zero or negative (it can still rank mid-pack); never short; none under about a year of bars, which is today's answer in live sessions until the longer price history is wired in |
ts_momentum | the trailing twelve-month return is positive; the score is the strength of that trend (the year's gain relative to how bumpy the year was) | short when the twelve-month return is negative ("hold none"); none under a year of bars |
rsi2_reversion | above the 200-day average and RSI(2) under 10: a one-to-ten-day bounce setup, deeper is stronger | none on every other day: a bounce rule with no setup has no opinion, so it stays out of the blend (its "over 70, take the bounce" exit reading is shown on the , not voted); never short; none under 200 bars |
composite | above the 200-day average and its calm / recent-dip blend is positive (its old momentum third was the same number xs_momentum reports, so it is switched off by default) | flat otherwise; below the 200-day average the score can only be zero or negative; never short; none under a year of bars |
ibs_reversion | closed in the bottom fifth of its own day's range at a five-day closing low, above the 200-day average: a one-to-five-day bounce setup | none otherwise (no setup, no opinion; the exit reading is shown, not voted); never short; none under 200 bars |
pead_drift | inside a confirmed drift window after a gap-up of 4% or more on heavy activity that held into the close; score decays to zero over twenty sessions | short inside a window after a gap-down that held (an avoid flag, not an edge); flat on the day a window ends; none when nothing is in play |
sector_rotation | the ETF is one of the top three sectors by three-month strength versus SPY and SPY is above its ten-month average, but only when the whole sector panel is supplied | through the PM's single-symbol reading it is always none (it cannot rank one ETF alone), so it never affects the blend today |
high_52w_momentum | within 5% of its 52-week closing high and above a 10%-off-the-high stop line; score is the nearness itself | flat further from the high, with a mildly negative score; never short; none under a year of bars |
pairs_ratio | it is the cheap leg of a screened pair stretched two standard deviations, and only when the partner's bars are supplied | short on the rich leg ("hold none"); through the single-symbol reading it is always none |
gap_fade (off by default, intraday) | this morning's open gapped down 1.5–5% in a name above its 200-day average on a non-earnings day; a same-day trade, out by the close | none on every other day (it has rather than a neutral one); never flat or short. The Lab and the next-open blend refuse it because they act a day later |
trend_vol_target (off by default) | latched long: price above the 200-day average with the 50-day above it, until two closes in a row below the 200-day line | flat while out; never short; none under 200 bars |
low_vol_quality | calmer, shallower-drawdown and steadier than a typical mega-cap over one to three years | flat otherwise; never short; none under two years of bars, which is the answer at today's default lookbacks |
turn_of_month | inside a turn-of-month, quarter-end or pre-holiday window whose own past windows on the bars given have paid | flat inside a window whose history is negative; none outside every window (no seasonal view) or when a window is open but its history is too short to judge; never short |
bollinger_squeeze (off by default) | a close above the upper band on 1.5× volume out of a bandwidth squeeze with the 50-day average rising, and while that replayed trade is still open | flat on the day the replayed trade exits; none while merely watching, without daily volume or under 150 bars; never short |

Two things follow from the table. Weight is the only lever on the score, for every algorithm. Several algorithms answer none in live sessions today purely for want of history (the momentum family, low_vol_quality); their backtests and the Lab have the full history. And a long from a reversion algorithm is a days-long bounce plan with an exit rule, while a long from a momentum algorithm is a months-long view; the PM's instruction text tells it which is which, and its citation (get_signals with the algorithm and symbol) tells you which one it leaned on. Open a session on Agent to see them.
Jim's method is checked against Jim's words
Jim's method is the one contributed rule set, so its detail page carries two extra things: Questions for Jim (our reading of the rules he left loose, with what each alternative did in the backtest) and, in the Spec, a rule-by-rule cross-check of the code against his text. Every precise rule matches; three loose ones (which bar the entry compares against, which day's average-value line the stop uses, which period feeds the predicted range) are open readings awaiting his answer and are pinned by tests so they cannot change silently. When he answers, the change arrives as a versioned strategy edit you can see and revert, not as a quiet code change. See Jim's method.
Test one yourself
Every algorithm with a backtest strategy can be run from Lab › Backtests on the committed twenty-year dataset, alone or as a weighted blend, under the production or research limit profile. The detail page's Backtest section is the standing evidence; the Lab is where you ask "what if".