Skip to content
Methodology

Measure the edge. Don't assume it.

This page describes what the engine actually does — how an outcome is defined, which information a forecast may use, how models are tested, and how the evidence is graded. Where something is not implemented or not available, it says so.

01

What is being estimated

For each asset and each horizon, Nymita estimates three probabilities that sum to 100%: the price closes up, down, or inside a neutral band. Eight horizons are supported — 15 minutes, 1, 4 and 12 hours, 1 and 3 days, 1 week, 1 month — and each is a separate forecasting problem with its own model and its own track record.

Probabilities come from statistical models trained on historical observations and realised outcomes. They are not indicator scores rescaled to look like percentages, and no language model takes part in computing them.

A probability is a statement about frequency: among forecasts that say 60%, about 60% should come true. It is not a measure of how confident the system feels. Whether that statement holds is checked continuously, and the result is published in the terminal.
02

Outcome labels

A forecast issued at the close of candle t with a horizon of h base candles is scored against the forward log return, compared with a neutral band fixed at issue time:

r   = ln( close[t+h] / close[t] )
τ   = max( k · σₜ · √h ,  floor )          k = 0.30, floor = 0.10%
up       if r >  τ
down     if r < −τ
neutral  otherwise

σₜ is the exponentially weighted volatility of one-candle log returns (span 72), computed only from candles that had closed at time t. Scaling the band by volatility keeps the three classes comparable across calm and turbulent periods; the floor keeps “up” and “down” at least as large as one taker fee.

The band is stored with every forecast. Settlement uses the stored value, so a forecast is always judged by the rule that was in force when it was made. The target price is looked up by time, not by row offset: if the exchange has no candle at the target time the label is missing rather than silently shifted.

03

Inputs, and what they are allowed to know

Chart interval and forecast horizon are separate. A one-day forecast is built from closed hourly candles, with four-hour and daily context merged as of the forecast time — a higher-timeframe candle contributes only once it has closed.

Technical
Returns over several lookbacks; SMA 20/50/100/200 and EMA 9/21/50/200 distances and crossovers; ADX, Supertrend, Ichimoku; RSI, MACD, Stochastic RSI, CCI, rate of change, RSI divergence; Bollinger %B and width, ATR, realised volatility and its compression/expansion; relative volume, volume spikes, OBV, VWAP distance, accumulation/distribution, Chaikin Money Flow, taker-buy share; swing highs/lows, breakouts, pivot points, Fibonacci position; seven candlestick patterns.
Market-wide
Returns, volatility and trend of a reference asset (BTC; ETH for BTC itself), relative strength, rolling correlation, time of day and day of week.
Derivatives
Perpetual funding rate history from Binance USD-M futures: latest, short and long means, percentile against the trailing 90 days.
On-chain
Bitcoin only, daily: active addresses, transaction count and transfer volume, as changes and z-scores. Each value is usable only from its availability time — the end of the observed day plus one day of publication lag.
Fundamental · whale
Displayed in the terminal for context but not used as model inputs. Free sources provide no point-in-time history for them, and using today's values on past dates would leak the future.

Every indicator is causal: its value at a candle depends only on that candle and earlier ones. Patterns that need confirmation — a swing high needs later candles with lower highs — are reported at the candle where they became knowable, never back-dated. An automated test recomputes every feature on truncated history and fails if any past value changes.

04

Validation

Models are evaluated only on data they did not see. The timeline for a single fitted model is:

| fit ............ | gap | early-stop | gap | calibrate | gap | test |

Each gap is as long as the horizon, so no label on one side overlaps a feature on the other (purging). The procedure is repeated as an expanding walk-forward over five consecutive test blocks covering the second half of the development period.

Walk-forward
Used to compare model families and to choose which one goes to production.
Holdout
The most recent 15% of history. Never used for selection or tuning; scored once and reported separately.
Baselines
Historical class frequencies, a persistence table, a momentum-only logit and a trend-only logit. Skill is always expressed relative to the class-frequency baseline.
Model families
Regularised multinomial logistic regression, LightGBM and XGBoost. Random forest is available but not part of the default comparison.
Tuning
Optional Optuna search, confined to the first training window and scored on that window's own early-stopping slice.
Uncertainty
95% intervals from a moving-block bootstrap with blocks as long as the horizon. Forecasts with overlapping horizons are not independent, and an ordinary bootstrap would overstate the evidence.
05

Calibration

Raw model scores are mapped to probabilities by a calibrator fitted on a window the model never trained on: one-vs-rest isotonic regression when that window holds at least 1,500 forecasts, Platt (sigmoid) scaling otherwise, followed by renormalisation so the three classes sum to one.

Calibration quality is reported as expected calibration error and shown as reliability diagrams — predicted probability against observed frequency, bucket by bucket, with Wilson intervals and the number of forecasts in each bucket. The diagram before calibration is drawn alongside for comparison.

06

Accuracy, calibration, economic value

These are three different questions and the terminal answers them separately.

Accuracy
How often the most probable class was right. With three classes, values in the low 40s can already be better than the base rate.
Calibration
Whether stated probabilities match observed frequencies. A model can be accurate and badly calibrated, or the reverse.
Economic value
Whether a simple hypothetical strategy would have made money after fees and slippage. In the current backtests, statistically demonstrable skill at short horizons does not survive transaction costs. That result is shown, not hidden.

The economic simulation takes non-overlapping positions (long, short or flat) when P(up) − P(down) exceeds ±10 points, and charges 0.10% fee plus 0.05% slippage per side on every change of position. It ignores funding, borrow costs and market impact. It is a diagnostic, not a strategy.

07

Reliability grades

Every production model carries a grade derived from its out-of-sample record. The grade describes the evidence behind the model — it is deliberately separate from the probabilities the model outputs.

Demonstrated
Positive log-loss skill against base rates in walk-forward testing, with a 95% interval that excludes zero, and positive skill on the holdout.
Marginal
Positive in both, but the interval includes zero.
Unproven
No out-of-sample improvement over quoting historical base rates. Probabilities are still shown, visibly marked.
Insufficient
Fewer than 60 independent out-of-sample windows. Probabilities are withheld and the forecast is recorded as insufficient evidence.
08

The forecast ledger

A forecast is written once. It stores the probability distribution, the reference price and its source, the neutral band, the model and calibration versions, a snapshot of the inputs with its hash, and a hash of the record itself. Database triggers reject any later update or delete.

When the horizon expires, a separate outcome record is added: the realised price and return, the realised class, whether the call was right, and the Brier and log-loss scores. If no price exists at the target time after a grace period, the forecast is marked unresolvable rather than dropped. Nothing is filtered out of the history afterwards.

Backtested results are simulations on historical data. Live results are forecasts that were recorded before their outcome existed. The two are labelled wherever they appear and are never combined into one figure.
09

Explanations

Each forecast lists the inputs that moved the model most, split into those that pushed toward “up” and those that pushed toward “down”. For tree models these are exact TreeSHAP values computed by the model library itself; for logistic models they are coefficient times standardised value.

They are attributions to the model's raw score before calibration. They describe what the model responded to — a statistical association learned from history — and should not be read as the cause of a price move. The explanation also reports how often the market closed up when the same model issued a similar probability out-of-sample.

10

Data sources

Binance spot
Candles (REST, WebSocket stream, monthly archives), exchange metadata. Only closed candles are stored; timestamps are normalised to UTC milliseconds, including the microsecond format used by recent archives. Gaps are detected, re-requested and, where the exchange has no data, recorded instead of interpolated.
Binance USD-M futures
Funding, open interest, long/short ratios, taker volume, premium. Open-interest and ratio history is limited to 30 days by the exchange.
CoinGecko
Market capitalisation, supply, volume, dominance.
DefiLlama
Chain TVL, fees, revenue, stablecoin supply.
Blockchain.com
Bitcoin network statistics and recent blocks for large-transfer observation.
Ethereum public RPC
Recent blocks, scanned for large native-ETH transfers.
CryptoQuant · Glassnode · Dune
Adapters exist but need paid credentials and have not been exercised. The terminal shows these features as unavailable.

Live provider state is on the settings page.

11

Limitations

Coverage
Models are trained for BTC, ETH and SOL. Other listed assets have market data and intelligence panels but no forecasts.
Whale data
Large transfers are collected from the blocks scanned at each sync, above a size threshold, with a small seed list of address labels that has not been independently re-verified. Exchange netflows, reserves and holder concentration need a paid provider. No wallet is labelled profitable.
Fundamentals
Shown for context only. Unlock schedules, burns, developer activity and governance events are not tracked.
Derivatives
Single venue. Liquidations are not collected.
Costs
The economic simulation is deliberately simple and omits funding, borrow and impact.
Non-stationarity
Markets change. Skill measured on history can disappear; the rolling metrics and the live ledger exist to notice when it does.

Nymita is a research tool. Nothing in it is investment advice, and no return is promised or implied.