GET/v1/validate/filter Tier 2 filter audit. Strict rolling-origin walk-forward measured against a permutation null built from the same pipeline on scrambled outcomes, plus lookahead, tautology and data-integrity checks. | — | — | $0.25 |
GET/v1/validate/trades Tier 1 backtest audit. Send closed-trade returns in R and get a verdict on whether the result can be told apart from luck: bootstrap CI, statistical power, deflated Sharpe for the number of variants you tried, outlier dependence, regime stability, break-even cost. | — | — | $0.05 |
GET/v1/levels Support and resistance levels with touch counts. Touches are distinct APPROACHES into the band, not bars inside it, so a long consolidation counts once rather than turning into the most-touched level on the chart. | — | — | $0.005 |
GET/v1/sim/fill Replay an order against what price actually did. Reports which of a stop and target came first, the excursion split at the exit - so a stop that fired early is visible - and refuses to guess when both fall inside one bar, because the bar carries no ordering. | — | — | $0.005 |
GET/v1/indicators/adx Average Directional Index with +DI and -DI. Warm-up history is fetched from BEFORE the requested range and discarded, so the first value returned is already converged - without it the same dates computed from a longer range come back different. Values are published at the precision that actually reproduces. | — | — | $0.003 |
GET/v1/indicators/atr Average True Range, Wilder smoothing. Warm-up history is fetched from BEFORE the requested range and discarded, so the first value returned is already converged - without it the same dates computed from a longer range come back different. Values are published at the precision that actually reproduces. | — | — | $0.003 |
GET/v1/indicators/bollinger Bollinger bands, 2 standard deviations. Warm-up history is fetched from BEFORE the requested range and discarded, so the first value returned is already converged - without it the same dates computed from a longer range come back different. Values are published at the precision that actually reproduces. | — | — | $0.003 |
GET/v1/indicators/ema Exponential moving average, SMA-seeded. Warm-up history is fetched from BEFORE the requested range and discarded, so the first value returned is already converged - without it the same dates computed from a longer range come back different. Values are published at the precision that actually reproduces. | — | — | $0.003 |
GET/v1/indicators/macd MACD 12/26/9 with signal and histogram. Warm-up history is fetched from BEFORE the requested range and discarded, so the first value returned is already converged - without it the same dates computed from a longer range come back different. Values are published at the precision that actually reproduces. | — | — | $0.003 |
GET/v1/indicators/rsi Relative Strength Index, Wilder smoothing. Warm-up history is fetched from BEFORE the requested range and discarded, so the first value returned is already converged - without it the same dates computed from a longer range come back different. Values are published at the precision that actually reproduces. | — | — | $0.003 |
GET/v1/indicators/sma Simple moving average of the close. Warm-up history is fetched from BEFORE the requested range and discarded, so the first value returned is already converged - without it the same dates computed from a longer range come back different. Values are published at the precision that actually reproduces. | — | — | $0.003 |
GET/v1/indicators/vwap Volume-weighted average price, anchored to the first bar of the requested range. Warm-up history is fetched from BEFORE the requested range and discarded, so the first value returned is already converged - without it the same dates computed from a longer range come back different. Values are published at the precision that actually reproduces. | — | — | $0.003 |
GET/v1/data/ohlcv Deterministic OHLCV for an exact half-open range, with a SHA-256 Merkle manifest. Only closed candles are returned - a forming candle would hand you lookahead. Exchange decimal strings are preserved byte for byte, so the same query always yields the same root. Gaps and exchange revisions are reported rather than silently applied. | — | — | $0.002 |
GET/v1/data/proof Merkle audit path proving one candle belongs to a range root you already hold, without re-fetching the range. | — | — | $0.001 |