Research is a work in progress. Estimated release: 1 December 2026. Our goal is to make it a search engine for trading setups in recorded crypto markets.

← All readings
Browse related readings

Research Readings Price and volatility

Spot/perpetual close basis

Contract-unit-normalized perpetual close divided by spot close, minus one, for the exact same fully closed Binance one-minute trade bars.

Full definition and limits

Signed fraction. Only perpetuals with a qualified Binance spot pair carry it (410 accepted, not the whole recorded universe; 1000-unit contracts are scaled), each inside its own dated intervals (feature_scopes in the research contract). Missing or zero-trade bars are absent. Descriptive closes cannot establish executable spread, sub-minute lead/lag, flow causation or arbitrage profit.

Live monitoring
Unsupported: historical only
Observed
from matching closed one-minute perpetual and spot bars
Unit
Signed fraction (0.01 is 1%)
Valid range
-1 or more

Example scope: BTCUSDT, ETHUSDT, SOLUSDT; 2025-07-15T00:01:00Z to 2026-09-11T00:00:00Z; perpetual close at or above spot. Only the 410 perpetuals with a Binance spot pair carry it, each on its dates. Review this scope before running.

Review scoped example
Technical details

Field ID

feature.spot_perp_close_basis

Valid query operators

at least, at most, between

Window operators: lowest, highest, average, latest or change in, over a trailing window.

Editable query preset

Example: A recorded value of 0 signed_fraction can be used in the editable condition below.

Starting point only. Review and edit before running.

{
  "schema_version": "research_query.v2",
  "normalization_version": "archive_normalization.v1",
  "feature_version": "feature_defs.v1",
  "target": "record_occurrences",
  "where": {
    "all": [
      [
        "feature.spot_perp_close_basis",
        "gte",
        0
      ],
      [
        "identity.symbol",
        "in",
        [
          "btcusdt",
          "ethusdt",
          "solusdt"
        ]
      ],
      [
        "times.anchor_time",
        "between",
        [
          "2025-07-15T00:01:00Z",
          "2026-09-11T00:00:00Z"
        ]
      ]
    ]
  },
  "sort": [
    "times.anchor_time",
    "desc"
  ],
  "page": {
    "limit": 5,
    "cursor": null
  }
}

The search reports how often the record held this condition and what followed. It does not decide whether an idea works.

Read alongside