Skeptic-grade reproducibility. Every number on the landing page can be recomputed by a third party using only the published manifest.json, verify.py, and the rules below.
For each signal we evaluate the closing 4-hour bar at signal_time + horizon (defaulting to 4 hours) drawn from our local TimescaleDB candles_4h_closed view. Precedence:
high >= tp; short if low <= tp. Exit at tp.low <= sl; short if high >= sl. Exit at sl.realized_return = 0.0.When both TP and SL are touched on the same bar (gap-through), TP wins. We cannot prove the intrabar order; this is a documented convention.
long realized_return = (exit_price - entry) / entry short realized_return = (entry - exit_price) / entry
Fees and slippage are not deducted -- this is the signal's performance record. Subscriber-side execution costs are out of scope here.
We follow Bailey & Lopez de Prado (2014) "The Deflated Sharpe Ratio: Correcting for Selection Bias, Backtest Overfitting, and the Disposability of Trials" (Journal of Portfolio Management, 40(5), 94-107). The published value is a p-value in [0, 1] -- closer to 1 means the observed Sharpe is more likely real.
DSR = Phi( (observed_sharpe - E[max(SR)]) / std(SR) ) E[max(SR)] = sqrt(V) * ((1 - gamma) * Phi_inv(1 - 1/N) + gamma * Phi_inv(1 - 1/(N*e)))
We use variance_of_sharpe_estimates = 0.5 (a published-conservative default) and N = number of distinct engine_source values present + 1 as the multiple-testing trial count. Both choices are conservative for the skeptic.
Every signal_log row is cryptographically timestamped against the Bitcoin blockchain via OpenTimestamps. To independently verify any signal:
pip install opentimestamps-clientcurl -O https://track.dexiq.io/proofs/<signal_id>.otsots verify <signal_id>.otsThe proof attests the existence of the row's payload_sha256 at-or-before the upgrade time, which a skeptic can corroborate against any independent Bitcoin block explorer.
The dashboard publishes a deterministic manifest of every signal plus its outcome:
Use:
curl -O https://track.dexiq.io/manifest.json curl -O https://track.dexiq.io/verify.py python verify.py manifest.json
verify.py has no DexIQ imports -- only the Python stdlib + numpy + scipy.
A weekly cron snapshots the latest 30 settled signals per engine_source and records Brier score, log-loss, ECE, and accuracy into calibration_runs. DRIFT verdict triggers a Telegram alert to operator (NOT customer) and a red banner on this dashboard. Thresholds:
The Phase 20 placebo gate may report FAIL for a given engine variant. If so, that engine emits zero rows; the dashboard surfaces "0 signals" with the engine-paused banner. The infrastructure remains live; another engine variant (e.g. Phase 24 Path A) will start populating the same tables.