How it works
How the signals are made
Methodology version 5, in effect since 2026-10-13 (history recorded before that keeps the confidence values of the rules of its day). Every threshold below is read from the same configuration the collector uses.
5version, in effect since 2026-10-13
Start here
- Markets quote the window4 prediction markets and 4 options exchanges price whether a coin ends each window above where it opened.Read the section ↓
- One reading per venueEach market becomes an Up probability: read from the order book, interpolated from a strike ladder, or implied from option volatility.Read the section ↓
- Blended per windowReadings of the same window are averaged, weighted by quality, with the options exchanges merged into one source.Read the section ↓
- Confidence 0 to 100Depth × agreement × timing: how well-sourced the number is, not whether it will be right.Read the section ↓
- Buy, Sell or HoldThe score sets the call; the overall call blends the 1-hour, 4-hour and 1-day windows.Read the section ↓
- ±20Buy or Sell; ±60 is strong
- 70 · 40High and medium confidence from
- 20%Late window: confidence halved
- 5Windows, 5 min to 1 day
- 00:05UTC, the daily trend call
- 0.6%Fee per fill in the backtest
On this page
- What the score is
- Where the numbers come from
- From one market to one reading
- Derived readings from strike ladders
- Options-implied readings
- Matching windows across venues
- Independent sources
- Quarantine
- The combined signal
- The confidence score
- The late-window caveat
- Overall score per coin
- Results: following the calls
- Daily regime strategy
- Signals on Cryptohopper
- Staleness
- What this is not
What the score is
The score is 200 × (prob_up − 0.5), where prob_up is the crowd’s price for “Up” in the window that is running now: will the coin close this window above the price it opened at? Once the window has opened, that price mostly restates the move since the open, scaled by the time left. A model with two parameters, fed only the move since the open divided by the volatility expected over the time left, reproduces 73 to 97% of it. So the score is a readout of how far the coin has already moved in this window, not a forecast of where it goes next.
It is not a prediction of the next window, not a trend or momentum measure, and not a trading signal: in a 12-day study no timeframe, venue or variant of following it had an edge, and following the calls mostly paid fees (see Results below).
Where the numbers come from
Prediction markets run rolling “Up or Down” markets for each coin: will the price at the end of a 5-minute, 15-minute, 1-hour, 4-hour or 1-day window be higher than at its start? Each market has an “Up” share that trades between $0 and $1; its price is the crowd’s implied probability that the window closes up. PolySignals.net reads these markets on Polymarket, Kalshi, Limitless and Gemini about twice a minute.
From one market to one reading
- Up probability is the midpoint between the best bid and best ask for the Up share. If the spread is wider than 0.10, the last traded price is used instead. If there is neither, the reading is empty.
- Score rescales the probability to -100 to +100:
(prob_up − 0.5) × 200. A 50/50 market scores 0; 80% up scores +60. - Direction buckets the score: strong up at +60 and above, up from +20, neutral in between, down from −20, strong down at −60 and below.
- Quality (0 to 1) says how much a single market’s price can be trusted:
spread_score × activity_score, where spread_score is 1 at a zero spread and 0 at a spread of 0.10, and activity_score is the better of two signs of a live market: volume_score, the square root of volume ÷ $10,000, and depth_score, the square root of resting order size within 0.05 of the mid ÷ $5,000, each capped at 1. Depth is what keeps a window that opened seconds ago, with orders resting but nothing traded yet, from scoring as dead; venues that give no book for free have no depth and rely on volume. Markets without an order book use liquidity ÷ $20,000 instead of the spread score. Derived readings are multiplied by 0.8; a stale or empty reading has quality 0.
Derived readings from strike ladders
Kalshi’s hourly markets are not a single Up/Down question but a ladder of strikes: “will the price be above $83,700?”, “above $83,800?” and so on. PolySignals.net turns that into an Up probability by taking the two strikes that bracket the window’s reference price and interpolating between their prices. The reference is the price at the start of the window: Kalshi publishes it for its 15-minute markets, and the one that opens at the top of the hour is used; failing that, our own spot price captured when the window opened. These readings are marked derived and count a little less.
Options-implied readings
Binance, Deribit, Bybit and OKX options are not prediction markets, and their readings say so (source_type: “options”). The Up probability for the 24 hours ending at the nearest daily expiry (08:00 UTC) is read from the venue’s own implied volatility: N(d2) at the price the day opened with, from the median mark implied vol of the strikes nearest it, the expiry’s forward price (the spot on Binance, which publishes none) and the time left to expiry. The price difference between two neighbouring calls, per dollar of strike, says the same thing, but one stale mark moves a price difference by its full error and the median vol hardly at all, and at the money the probability barely depends on the vol; so that curve is only the fallback, for a venue that gives fewer than two implied vols, and the check that quarantines a broken ladder. Each reading says which was used (options.method). These readings are derived, cover the 1-day window only, and run on an 08:00 UTC day, so they are never blended with a prediction market’s daily window; they are a liquid, independent cross-check that embeds the options market’s drift and vol, not a crowd’s bet on direction. They also cover AVAX, TRX and MNT, which no prediction market lists.
Matching windows across venues
Two venues are only blended when they are pricing the very same window: start and end must match within 5 seconds. Windows with different boundaries (for example daily markets that roll at different hours) are never mixed. Which window is shown when several are in play is under Independent sources below. A cell with a single source is still a valid signal, just less certain.
Independent sources
The four options venues all price the same 08:00 UTC daily expiry, so on a given day they share one window and say one thing up to four times. Before blending, their priced, fresh readings on a window are merged into one source: the median of their probabilities, at the quality of the best of them, with their volume summed. The API lists the venues merged in merged_options; sources still names each of them.
Confidence counts independent sources: depth runs over them, confidence.independent_sources is their number, and the merged options reading is one qualifying source, not four. When a coin and timeframe has more than one window in play, the one with the most independent sources that carry weight (priced, quality above 0, flagged readings not counted) is shown; ties go to the window with more prediction markets, then the one that includes Polymarket, then the earliest. With Polymarket and Limitless both carrying weight on their daily window (priced, quality above 0), that window beats the options window: two independent sources against one. Priced at quality 0, they count as none.
Quarantine
Some readings are published, with a flags list, but never blended and never counted in the window choice or the confidence:
- Degenerate curve (
degenerate_curve): the option ladder’s implied probabilities span less than 0.50 from its lowest strike to its highest (for example 1 at every strike), so the curve says nothing about the window; the reading is shown without a probability. Binance’s XRP options read 1.000 on every mark this way until their prices, quoted per 100 XRP, were divided by the contract size. - Outlier (
outlier): an options venue more than 0.30 from the median of the other options venues on its window is left out of their merge.
A market is also given a timeframe only when its length is within 2% of it, so Gemini’s 25-hour ladder is not a daily window and is left out.
The combined signal
The combined Up probability is the quality-weighted mean of the venue probabilities, so a thin market pulls the number less than a deep one, and a market with quality 0 is left out entirely (if nothing clears that bar, the available prices are averaged equally at confidence 0). Score and direction follow the same mapping as a single reading. Sources with quality of at least 0.2 are qualifying: only they can corroborate each other. Divergence is the gap between the highest and lowest probability among qualifying sources, and is empty when fewer than two qualify. Raw divergence is the same gap across every priced venue regardless of quality; the coin pages show it and flag it at 0.10 or more, because a thin venue that disagrees loudly is still worth a look.
The confidence score
Every combined reading carries a 0 to 100 confidence made of three parts, all shown in the API:
- Depth = 1 − the product of (1 − quality) over the independent sources (a day’s options venues count as one). One good source gives a fair depth; several good sources push it toward 1.
- Agreement = 1 − divergence ÷ 0.20, floored at 0, measured among qualifying sources only. With fewer than two qualifying sources it is fixed at 0.7, because nothing corroborates the reading, however many thin venues were blended in.
- Timing = 0.5 when less than 20% of the window remains, else 1.
confidence = round(100 × depth × agreement × timing). Labels: high at 70 and above, medium from 40, low below. A single venue reading’s confidence is simply 100 × quality × timing.
The late-window caveat
Late in a window the market mostly reflects the move that has already happened, not what comes next: a 15-minute market at minute 13 prices whether the last two minutes will undo a move, not whether the coin is trending. Late readings are shown faded, halved in confidence, and excluded from the overall score.
Overall score per coin
The overall score is the confidence-weighted average of the combined current-window scores of the 1-hour, 4-hour and 1-day timeframes; its own confidence is the same weighted average of the cell confidences. Late and empty readings are skipped. If nothing qualifies there is no overall score. The 5-minute and 15-minute cells are still shown but left out, because they dominated it: before methodology version 4 the overall equalled Kalshi’s 15-minute cell for 7 of 9 coins.
Results: following the calls
The Results page is a live backtest, not a forecast. From the first minute a coin had both a Coinbase Exchange quote and a scored reading, PolySignals.net simulates following its calls on the coin’s Coinbase USD market, one minute at a time, and keeps the books. Eight strategies per coin: the daily regime strategy (below), which is the headline, and its four-hour paper variant; follow the coin’s overall call; or follow the combined reading of one window (5 min, 15 min, 1 hour, 4 hours, 1 day). The regime strategy covers every tracked coin with a Coinbase USD market, plus TRON and Mantle on Bybit: 127 coins, chosen from the most liquid Coinbase USD markets, each called once it has 200 daily closes. TRON and Mantle, which Coinbase does not list, take their daily closes and their fills from Bybit’s USDT market. 104 of them are tracked for the regime rule only: no venue lists them, so they have no window or overall reading and are listed under the two regime strategies alone. These are the rules of results version 2.
- Restart. Version 2 restarted the simulation from scratch; the earlier numbers were dropped, not archived. Version 1 filled at Coinbase’s exchange-rates index, read before the minute’s readings were built; that index refreshes once a minute and lags the exchange by 30 to 60 seconds, so fills were up to a minute stale and gross returns were overstated by about 0.09% a fill. Before the restart, following the calls made 25 to 41 round trips a day per coin and lost about 98% of capital to fees in two weeks.
- Long-only. Each strategy starts with 1 unit of USD. A Buy call moves everything into the coin, a Sell call moves it back to USD, Hold leaves whatever is held. No shorting, no leverage.
- When a call changes. The same rule as the live announcements in the header: the score must clear a direction threshold by a margin of 4, so Hold becomes Buy at +24 and a Buy only falls back to Hold below +16 (the same on the Sell side), and a Buy jumps straight to Sell past −24. Readings with confidence below 40, late-window readings and missing readings leave the held call unchanged. A window rolling over is not special: its first reading settles against the held call like any other. A strategy trades whenever its held call disagrees with its position, so the first call is acted on.
- Fills. A call read in one minute is filled 1 minute later, never at the price it was read with: a buy at the Coinbase Exchange best ask, a sell at the best bid, from tickers fetched only after the fill minute’s readings are written. A coin without a ticker in a minute fills nothing and waits for the next minute that has one. No slippage past the best price, no partial fills. Equity is marked at the last trade price (the Coinbase spot rate in a minute without a ticker).
- Gross and net. Every strategy also keeps a gross track: the same fills with no fee (the bid/ask spread still paid), shown as the gross return and as fee-free equity in the curve. The return is net at 0.6% of the amount per fill. The Results page also shows the same fills net at 0.1% a fill, for a cheaper fee tier, next to the fees paid and the fills a day (buys plus sells, per day since the start).
- Benchmark. Buy and hold from the same start, bought at that minute’s ask with one fee.
- Metrics. Return (equity minus 1), gross return, buy & hold return, fills, round trips, win rate and average return over completed round trips, maximum drawdown, share of priced minutes in the market, fees paid, and the open position. Coins without a Coinbase USD market are not simulated. A coin with no venue quote and no regime call for 30 days leaves the results, and a change of these rules restarts the simulation.
Daily regime strategy
The seventh strategy of the live backtest, and the one the Cryptohopper signaler relays. It uses no market data from the venues above: only each coin’s Coinbase daily closes (UTC days).
- Rule. At each day’s close: sma50 is the mean of the last 50 closes and sigma the sample standard deviation of the last 20 daily log returns. A flat call turns long when the close is above
sma50 × (1 + sigma); a long call turns flat when the close is belowsma50 × (1 − sigma); in between the call stays. Long-only: flat means in USD. - Decision time. Once a day at 00:05 UTC, on the close of the day that just ended. That close is the coin’s Coinbase Exchange last trade (else the Coinbase spot rate) at the collector’s first run after 00:00 UTC; backfilled days use the daily candle’s close. A coin needs 200 daily closes before it gets a call. Each day’s call is stored with its close, so the next decision continues from it; the first decision continues from the call the rule reaches on the stored closes, run from the 50th close as in the measurements below. The coin pages show the call, the distance from the average in sigmas, the days in the current state and the next decision time.
- Fills. The backtest reads long as Buy and flat as Sell at full confidence, so a change of call is filled 1 minute after it appears, at the Coinbase Exchange ask or bid with the same 0.6% fee, like every other strategy.
- No per-coin tuning. The same 50 days, 20 days and one sigma for every coin.
- Few quick reversals. The two band edges sit two sigma apart, so a call is only undone by a swing of about two sigma; a single day’s wiggle around the average changes nothing. Under its 90-day chart the trend changes page counts the changes over those days and how many the next change undid within three days.
- Measured, 2021-2026. On Coinbase daily closes, deciding and filling at the close with 0.6% per fill: BTC +134% (55 fills) and ETH +150% (48 fills) net from 2021-04-23 to 2026-10-12, SOL +276% (45 fills) from 2022-01-03; about five round trips a year per coin. Buy and hold over the same spans, before its fee: +60%, +5% and −39%.
- Caveats. Statistically marginal: its daily return in excess of holding the coin for the same share of the time has t-statistics of 1.4 to 1.9, below the usual bar of 2, and the rule was picked among several variants on these same three coins. Drawdowns of 52 to 87% on the nine coins tested over three and a half years or more. It lags buy and hold in bull years (2023 and 2024 for all three coins). It is a bet that a trend premium persists, not a proven edge.
Four-hour variant (paper). The eighth strategy uses the same band, from the coin’s latest daily decision, but checks it every 4 hours (00, 04, 08, 12, 16 and 20 UTC, at the collector’s first run at or after each) against the live price, the Coinbase Exchange last trade: long above the upper band, flat below the lower, unchanged in between. A coin’s first check starts from its daily call, and each check continues from the previous one. It is filled like every other strategy and is on the Results page to be measured, not relayed to Cryptohopper. Each coin’s variant started as a copy of its daily regime strategy’s books when it was added, so the two agree until their calls first differ. On five years of hourly Coinbase candles it traded 20-30% more than the daily rule, with returns within noise of it.
Signals on Cryptohopper
PolySignals.net is also a signaler on Cryptohopper. It relays the fills of the daily regime strategy above, whose fills and returns are on the Results page: about five round trips a year per coin, on 127 coins (104 of them tracked for this rule only, with no venue readings). Every fill (a turn to long while in USD, a turn to flat while in the coin) is sent as a buy or sell signal, for every Cryptohopper exchange and every market of the coin against a USD-pegged quote currency (USD, USDT, USDC, FDUSD and the like) or a fiat currency (EUR, GBP, TRY, JPY, BRL, AUD and others). Buy signals carry a stop-loss hint of 15%, which a hopper applies only when its owner has enabled it. Disable the hopper’s own take-profit: the strategy leaves a position when its call turns flat, not at a profit target, and a take-profit would sell out of the trend early. Cryptohopper applies its own limits (30 signals a minute, 60 in five minutes), so a burst of fills is sent in priority order over the following minutes: oldest fill first, larger exchanges first, USD before USDT before USDC, then EUR and the other fiat currencies. A signal still waiting four hours after its fill is dropped (a day on which many coins turn can queue hundreds). When Cryptohopper cannot price a market, the signal is tried twice more, 15 minutes apart; a market whose name it cannot read is left out from then on. Binance.US and Kraken markets without a trade in the last 24 hours are left out at each daily refresh of the lists (23:00 UTC, an hour before the decision), since Cryptohopper cannot price them. On Binance.US, Kraken, Binance, Bybit and HTX, markets whose best bid and ask are more than 2% apart are left out too, since a hopper’s market order there would fill far from the price. How each signal was delivered is listed on the Follow on Cryptohopper page. Cryptohopper takes its own price at receipt; a hopper only receives a signal when its exchange and quote currency match exactly.
What to expect: this is a trend rule, so a coin goes weeks between signals and a position is held for weeks to months, about five round trips a year per coin on the 2021-2026 backtest; every buy carries the 15% stop-loss hint. The regime board on the Results page shows every coin’s state after each day’s close, even on days when nothing is sent.
Staleness
If a venue cannot be refreshed, its previous value is kept, marked stale, and given quality 0 so it no longer influences the blend. If the whole feed is older than 3 update intervals, the page shows a “data delayed” badge.
What this is not
A prediction-market price is a snapshot of what traders are willing to pay, often in thin markets, over very short horizons. Blending several of them makes the snapshot steadier; it does not make it a forecast. Nothing on this site is financial advice. PolySignals.net is not affiliated with Polymarket, Kalshi, Limitless, Gemini, Binance, Deribit, Bybit or OKX.