← BQuant Strategy Specification
Raw .md (for agents) ↗

BQuant Weekend Drift
Strategy Specification

Version 1.0
Status Active
Readable by Judges, auditors, agents
Network BSC Testnet

§1Thesis

Tokenised equities (bStocks) on BNB Chain trade continuously, 24/7. Their underlying references — NYSE and Nasdaq-listed stocks — only trade during exchange hours (~9:30 am–4 pm ET, Monday–Friday). Over a weekend, the on-chain price of a bStock can drift away from the last known reference price.

Hypothesis: This drift is transient. When NYSE/Nasdaq re-opens on Monday, the on-chain price mean-reverts to the reference anchor. A sufficiently large drift during market closure is therefore a statistically motivated mean-reversion signal.

This strategy does not predict direction in the conventional sense — it bets on gravitational pull back toward a known fundamental reference point (the reference stock's closing price).

§2Tokens

SymbolUnderlying Reference
NVDABNVIDIA Corp (NVDA)
TSLABTesla Inc (TSLA)
CRCLBCircle Internet Group (CRCL)
MUBMicron Technology (MU)
SNDKBSanDisk Corp (SNDK)

Token contracts are on BNB Chain (BEP-20). Prices are sourced from CMC Skill Hub (MCP tool) for agent-context invocations, and from the CMC REST API (/v1/cryptocurrency/quotes/latest) for VPS cron automation.

§3Data Method

The agent snapshots current prices via CMC Skill Hub on a recurring basis (every 30–60 minutes, cron-driven on Contabo VPS). Each snapshot is appended to data/weekend_snapshots.json:

{ "timestamp": "2026-06-20T22:46:37.991416+00:00", // anchor — first real snapshot "prices": { "NVDAB": 209.56, "TSLAB": 400.53, "CRCLB": 80.62, "MUB": 1131.995, "SNDKB": 2240.63 } }

The first snapshot in the file is the anchor (t0). All drift calculations are relative to this anchor.

§4Drift Formula

drift_t = (price_t − price_t0) / price_t0

Where:

price_t0 = price of the token in the first snapshot (the anchor)
price_t  = price of the token in the most recent snapshot
drift_t  = signed fractional value; positive = price moved up from anchor

Drift is expressed as a percentage in all outputs. Basis-point representation (drift_bps = round(drift_pct × 10 000)) is used for on-chain storage.

§5Signal Thresholds

ConditionSignalDirection logic
|drift| > 1.5% LONG or SHORT Direction is opposite to drift sign (reversion bet): drift up → SHORT; drift down → LONG
|drift| < 0.3% CONVERGED Price has returned to anchor; exit or skip
0.3% ≤ |drift| ≤ 1.5% FLAT Insufficient edge; no position

Thresholds are hard-coded in drift_engine.py and must not be changed without explicit sign-off.

§6Confidence Scoring

Confidence is a 0–100 integer included in every signal output.

SignalConfidence calculation
LONG / SHORT 60 at threshold (1.5%), scales linearly to 85 at 3× threshold (4.5%), capped at 85
FLAT Fixed 50 (no directional edge)
CONVERGED Fixed 90 (strong mean-reversion completion evidence)

This is not a statistical p-value — it is an ordinal confidence band for on-chain logging and human-readable output. The registry contract stores it as an integer 0–100 in the confidence field of logSignal.

§7Signal Output Format

Every signal emitted by the system must include this reasoning block, verbatim:

[Strategy: BQuant — bStock Weekend Drift] [Token: <TICKER>] [Anchor (t0): <price> @ <timestamp>] [Current Price: <price> @ <timestamp>] [Drift: x.xx%] [Signal: LONG/SHORT/FLAT/CONVERGED] [Confidence: xx%] [Reasoning: <one sentence>]

The logId emitted by BQuantSignalRegistry.logSignal() on BSC testnet links the on-chain event to this off-chain block. The reasoning text is intentionally kept off-chain to minimise gas and because the README/demo carries the narrative; the chain proves what was logged.

§8On-Chain Registry

Contract: registry/BQuantSignalRegistry.sol
Network: BSC Testnet (chain ID 97)
Address: 0xFFCC472c47cf0a8168545a8318832950f7C6F453
Deploy tx: 0x2979…7203 ↗

Entry point: logSignal(token, signal, driftBps, confidence)
Event emitted: SignalLogged(logId, token, signal, driftBps, confidence, timestamp)

driftBps is the drift expressed in basis points (integer), e.g. drift_pct × 10 000. On-chain signal enum: FLAT=0, LONG=1, SHORT=2. CONVERGED maps to FLAT for gas efficiency.

Agent identity registered via bnbagent ERC-8004 SDK: agentId = 1470, registration tx: 0x7d24…c16f ↗.