DexIQ Signal Track Record -- Methodology

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.

« back to landing

PnL exit rules (TRACK-02 / D-22-03, pnl_rules.VERSION = v1.0)

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:

  1. take_profit_hit: long if high >= tp; short if low <= tp. Exit at tp.
  2. stop_hit: long if low <= sl; short if high >= sl. Exit at sl.
  3. time_exit: exit at bar close.
  4. flat_skip: direction == 'flat'. 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.

Return formulas

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.

Deflated Sharpe (TRACK-04)

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.

OpenTimestamps verification (TRACK-01)

Every signal_log row is cryptographically timestamped against the Bitcoin blockchain via OpenTimestamps. To independently verify any signal:

  1. Install the OpenTimestamps client: pip install opentimestamps-client
  2. Download the proof: curl -O https://track.dexiq.io/proofs/<signal_id>.ots
  3. Run: ots verify <signal_id>.ots

The 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.

Signed manifest + verify.py (TRACK-04)

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.

Calibration drift monitor (SIG-10)

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:

Engine status (D-22-08)

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.

Nothing on this page is financial advice. Predictions are probabilistic and historical performance does not guarantee future results.