OI accelerating into liquidations on ZECUSDT
Open-interest velocity above its own 90th percentile while at least $1M of liquidation notional printed in the trailing hour.
What has happened on ZECUSDT when it held
Historically, when OI accelerating into liquidations on ZECUSDT held (21 occurrences in the scanned window, 18 with a computable 24h horizon), the market reached +5% within 24h in 15 of 18 (83.3) and drew down 10%+ in 1 of 18 (5.6). Maximum favorable (MFE) and maximum adverse (MAE) excursions, both computed forward.
Outcome distribution
20 of 20 (100.0%) reached +0% or more within 1 hour · smallest move size with matches, picked for you
Pick a window and a move size: how often did a move at least that big follow?
🔒 Measured after every match, never by keeping winners. 20 of the matches have a complete 1 hour forward; the other 1 are too recent to know.
What are MFE and MAE?Why 24 hours can show fewer than 1 hour: a match too recent for a complete 24 hours is left out of that count entirely, even if it already reached the level within 1 hour. The two counts cover different sets of matches.
About 0.7 a day, on 9 of 31 days: spread through the record rather than one event.
Forward 30-minute returns across 20 matches: close to an even split, which is what a coin flip looks like.
How to read a distributionVersus baseline
Historically, when any eligible ZECUSDT minute in the window (baseline) held (43,010 occurrences in the scanned window, 41,589 with a computable 24h horizon), the market reached +5% within 24h in 14,629 of 41,589 (35.2) and drew down 10%+ in 878 of 41,589 (2.1). Maximum favorable (MFE) and maximum adverse (MAE) excursions, both computed forward.
The full record
The same setup counted over every recorded day on ZECUSDT (2026-05-15 to 2026-08-14), growing daily.
Historically, when OI accelerating into liquidations on ZECUSDT over the full record held (62 occurrences in the scanned window, 62 with a computable 24h horizon), the market reached +5% within 24h in 33 of 62 (53.2) and drew down 10%+ in 15 of 62 (24.2). Maximum favorable (MFE) and maximum adverse (MAE) excursions, both computed forward.
44 of 62 (71.0%) reached +1% or more within 1 hour · smallest move size with matches, picked for you
Pick a window and a move size: how often did a move at least that big follow?
🔒 Measured after every match, never by keeping winners. 62 of the matches have a complete 1 hour forward.
What are MFE and MAE?About 0.7 a day, on 32 of 92 days: spread through the record rather than one event.
Forward 30-minute returns across 62 matches: 56% of them finished up.
How to read a distributionCheck our work: the key that re-runs this exact count (q#b03c51fa)
- grammar
- research_query.v2
- normalization
- archive_normalization.v1
- feature library
- feature_defs.v1
- dataset revision
- d26de5f165d9de9d1ca535bfede886ed64a0d575ab129c3fc4fe59a6246fd7be
- query hash
- b03c51fa03ba78fe17d7d745c95cb0b194eb7b57d83321baf041ab10356bbfbd
- scanned window
- 2026-08-01T00:00:00.000Z to 2026-08-31T00:00:00.000Z (UTC)
Same key, same bytes. This receipt reruns; it does not retell. When the record grows, the dataset revision changes and says so.
Re-run this yourself, over the API or from an AI agent
This is the exact search definition behind the receipt. Send it to the key-authed research API (or the MCP research tool) and compare the bytes: a cached rerun is free.
{
"schema_version": "research_query.v2",
"normalization_version": "archive_normalization.v1",
"feature_version": "feature_defs.v1",
"target": "record_occurrences",
"where": {
"all": [
[
"feature.oi_velocity_pctrank",
"gte",
0.9
],
[
"feature.liq_notional_usd_1h",
"gte",
1000000
],
[
"identity.symbol",
"eq",
"zecusdt"
],
[
"times.anchor_time",
"between",
[
"2026-08-01T00:00:00.000Z",
"2026-08-31T00:00:00.000Z"
]
]
]
},
"sort": [
"times.anchor_time",
"desc"
],
"page": {
"limit": 50,
"cursor": null
}
}curl -s https://app.edgedepth.com/api/v1/research/query \
-H 'authorization: Bearer $EDGEDEPTH_API_KEY' \
-H 'content-type: application/json' \
-d '{"schema_version":"research_query.v2","normalization_version":"archive_normalization.v1","feature_version":"feature_defs.v1","target":"record_occurrences","where":{"all":[["feature.oi_velocity_pctrank","gte",0.9],["feature.liq_notional_usd_1h","gte",1000000],["identity.symbol","eq","zecusdt"],["times.anchor_time","between",["2026-08-01T00:00:00.000Z","2026-08-31T00:00:00.000Z"]]]},"sort":["times.anchor_time","desc"],"page":{"limit":50,"cursor":null}}'How to read this
- Counts ship with denominators: occurrences across the eligible symbol-buckets scanned. A rate is over the occurrences with a computable horizon (present), never the total.
- Absent is absent. When a feature was not warm at a minute, that bucket leaves the denominator and is reported; it is never coerced to zero.
- This selects a setup, never its outcome. The grammar forbids filtering on what followed (OUTCOME_IN_PREDICATE), so the distribution below is over every occurrence, not a survivorship-picked subset.
Occurrences are observed examples in a selected archive, not a guarantee. Outcomes are computed forward from each anchor and are descriptive, never a filter and never a prediction. Nothing here is trading advice.
Everything measured on ZECUSDT right now: the ZECUSDT research page