DUKOIN forecasts are built to be honest about uncertainty and easy to audit. This page documents the model, the formulas, how every forecast is recorded and scored, and where the method falls short.
Model DK-EWMA-LN v1 is a zero-drift log-normal model with exponentially weighted moving average (EWMA) volatility, λ = 0.94, estimated on daily log returns. Horizons: 24 hours, 7 days, 30 days. Outputs: median, 50/80/90% price intervals, and probabilities of moves beyond ±5%, ±10% and ±20%. It is a volatility model and makes no directional claim.
1. Inputs
The model uses the daily price history for each asset from our market data provider (see Data sources). Daily log returns are computed as:
r_t = ln(P_t / P_{t−1})
Log returns add across time and keep modeled prices positive, which is why they are standard in volatility modeling. A forecast is produced only when the input data is fresh enough; forecasts are not generated from stale prices.
2. Volatility estimate
Volatility is estimated with the EWMA recursion popularized by RiskMetrics:
σ²_t = λ · σ²_{t−1} + (1 − λ) · r²_{t−1}, λ = 0.94
With λ = 0.94, yesterday’s squared return receives a weight of 6%, and older observations decay geometrically. The effective memory is a few weeks, so the estimate reacts quickly to volatility shocks while still smoothing noise. The mean return is assumed to be zero in this recursion, which is standard practice at daily frequency, where the mean is small relative to volatility.
3. Scaling to the horizon
Daily volatility is scaled to the forecast horizon h, measured in days, by the square-root-of-time rule:
σ_h = σ_t · √h (h = 1, 7 or 30)
This assumes daily returns are independent with constant variance over the horizon. Both assumptions are approximations, discussed under limitations.
4. The price distribution
The model assumes the log of the future price is normally distributed around the log of today’s price, with zero drift:
ln(P_h / P_0) ~ Normal(0, σ_h²)
Under this assumption the median of the forecast distribution equals today’s price, P_0. The zero-drift choice is deliberate: estimating expected returns from short price histories is notoriously unreliable, and a model that assumed a trend would be making a directional claim it has not earned.
5. Quantiles and intervals
The price at quantile q is:
P_q = P_0 · exp(z_q · σ_h)
where z_q is the standard normal quantile. A central interval with coverage c runs from the (1 − c)/2 quantile to the (1 + c)/2 quantile:
| Interval | Lower quantile | Upper quantile | z |
|---|---|---|---|
| 50% | 25th | 75th | ±0.6745 |
| 80% | 10th | 90th | ±1.2816 |
| 90% | 5th | 95th | ±1.6449 |
Intervals are symmetric in log space and therefore slightly wider on the upside in dollar terms.
6. Threshold probabilities
For a threshold k (5%, 10% or 20%), the probability that price ends the horizon at least k above or below today’s price is:
P(P_h ≥ P_0 · (1 + k)) = 1 − Φ( ln(1 + k) / σ_h ) P(P_h ≤ P_0 · (1 − k)) = Φ( ln(1 − k) / σ_h )
where Φ is the standard normal cumulative distribution function. These are end-of-horizon probabilities. The chance that price touches a level at some point during the horizon is higher; for a driftless random walk it is roughly double the end-of-horizon probability.
7. Directional probabilities
Because the model has zero drift, it implies no view on direction. A “probability up” figure is shown only for a model that passes a walk-forward test of beating a 50/50 baseline by a statistically distinguishable margin, measured on out-of-sample forecasts. Where no model passes, the forecast card shows “No demonstrated directional edge”. We consider this an important feature, not a gap: most published crypto direction calls are never tested this way.
8. The forecast ledger
- Every forecast is written to an append-only ledger at creation time, with the model version, inputs timestamp, horizon, intervals and probabilities.
- Ledger entries are never edited or deleted. Entries are never edited or deleted, even when they turn out badly; that is the point of a track record.
- When a forecast’s horizon matures, it is evaluated automatically against the realized price from the same data source.
This prevents the two most common ways track records are flattered: quietly revising forecasts and quietly dropping the bad ones.
9. Evaluation metrics
The Model performance page reports, per horizon:
| Metric | Definition | Better is |
|---|---|---|
| Sample count | Number of matured forecasts evaluated | Larger |
| Hit rate | Share of directional calls that matched the realized direction (only for models that make directional calls) | Higher than baseline |
| Brier score | Mean of (p − o)², where p is the forecast probability and o is 1 if the event occurred, else 0 | Lower |
| Log loss | Mean of −[o · ln p + (1 − o) · ln(1 − p)] | Lower |
| Calibration error | Weighted average gap between mean forecast probability and observed frequency across probability bins | Lower |
| Interval coverage | Share of realized prices inside each interval, shown against its nominal 50/80/90% | Close to nominal |
Brier = (1/N) · Σ (p_i − o_i)² LogLoss = −(1/N) · Σ [ o_i · ln(p_i) + (1 − o_i) · ln(1 − p_i) ] ECE = Σ_b (n_b / N) · | mean(p in bin b) − mean(o in bin b) |
Probabilities are clipped away from exactly 0 and 1 before computing log loss. For reference, a constant 50% forecast has a Brier score of 0.25 and a log loss of about 0.693.
Until a horizon has at least 30 matured forecasts, the page displays “Insufficient evidence for a reliable calibrated forecast”. Even beyond 30, small samples carry wide uncertainty, so sample counts are always shown next to every metric.
10. Research backtest versus live record
Separately from the live ledger, we publish a clearly labeled research backtest. It uses a walk-forward, expanding-window evaluation on Coinbase daily history for 10 large assets: at each step, the model is fitted only on data available up to that date and evaluated on the next period. The backtest compares DK-EWMA-LN against a naive baseline and against a momentum logistic regression.
The backtest is useful for understanding behavior over long periods, but it is not the same as a live record. It has a known survivorship bias: the 10 assets are large today, which means they survived, and assets that failed are not in the sample. Live ledger results always take precedence.
11. The role of AI
Claude, the AI model behind DUKOIN’s assistant, can explain a forecast in plain language, for example what an 80% interval means for a given asset. It never generates probabilities, prices or intervals. All forecast numbers come from the model described here, and AI outputs are checked to reject numbers not present in the underlying data.
12. Limitations
- Fat tails. Crypto returns have more extreme moves than a normal distribution implies. Expect realized prices to fall outside the 90% interval more often than 10% of the time during crises.
- Volatility clustering and jumps. EWMA adapts after a shock, not before it. Sudden events such as hacks, delistings or depegs are not anticipated.
- Square-root-of-time scaling. Real returns show some autocorrelation and changing variance, so 7-day and 30-day ranges are approximations.
- No drift. The model deliberately ignores trends, so it will be systematically centered too low in strong rallies and too high in sustained declines.
- Data quality. Forecasts inherit any errors or delays in the source data, and the free API tier is not tick-level real-time data.
- Not advice. Forecasts are statistical descriptions of uncertainty. They are not recommendations.
No model can foresee every market move. Prices can and will move outside the ranges shown. Past forecast performance does not guarantee future performance. See the Risk disclosure.
What the research backtest found
Before showing any forecast, we ran a walk-forward backtest on Coinbase daily history for 10 large assets (2018 to October 2026), comparing DK-EWMA-LN v1 with a naive baseline, a historical bootstrap and a momentum logistic regression. The results set what we show:
- No model showed a directional edge at 1, 7 or 30 days. The momentum model was measurably worse than a coin flip. That is why DUKOIN never shows a “chance of going up”.
- 24-hour and 7-day ranges were well calibrated: the 80% range contained the outcome 83% and 81% of the time; the 90% range 90% and 88%.
- v1 30-day ranges were too narrow (80% range held 76% of outcomes) because crypto’s fat tails compound over a month. DK-EWMA-LN v2 widens each horizon by a scale factor fitted walk-forward on past data only (1.14× at 30 days, 1.17× at 90 days). In the backtest its 80% bands held 81.8% (30d) and 84.3% (90d) of outcomes, so 30- and 90-day predictions are shown as calibrated. The 1-year range is a scenario projection: only about 7 independent years exist to test it.
The full tables, including every miss, are on Model performance. The 10 assets are survivors still listed today, which flatters any backtest; the live record is the real test.
Buy/sell signals and the outlook
The technical consensus votes 16 classic indicators (SMA/EMA 10–200, RSI, Stochastic, CCI, Williams %R, MACD, Momentum) into Strong Buy … Strong Sell. We backtested exactly this rule set on 2018–2026 data: it was right about half the time at 1, 7 and 30 days — no edge over a coin flip once you account for how often prices rose anyway. We show it because traders use it as a description of the chart, and we print that record next to it. The outlook combines the signal with trend, derivatives positioning and sentiment, with every driver and weight listed.