Basis
Last updated
Was this helpful?
Last updated
Was this helpful?
The basis is the annualized percent difference between the price of a theoretical futures contract and the price of its underlying spot market. Coin Metrics calculates this for several exchange-assets such as binance-btc
and ftx-eth
. We calculate four basis metrics at defined days to expiration.
The annualized basis metrics measure the difference between the spot price and a futures price for a contract with given time to expiration. This difference is calculated as a percentage of the underlying spot price which we use our reference rates (using the calculation algorithm for frequencies 200ms, 1s, and 1m) to define, and annualized by the time to expiration.
We offer this calculation for various exchanges and assets in 30, 60, 90, and 120 day durations. The available contracts for an exchange and asset rarely ever align with the duration necessary and instead the target duration is calculated with a time adjusted weighting between the two contracts surrounding the target expiration. The target expiration is the time of the datapoint, t0, plus the indicated duration. For example if today was 2021-09-15 and we were creating a 30 day calculation then the target expiration would be 2021-10-15. In the case that the only futures contracts available for the asset and exchange combination were those with expirations on the last Friday of the month, we would use the contracts expiring on 2021-09-24 and 2021-10-29 as our two reference points. Please note that we currently utilized only quarterly contracts with expirations in March.
After defining the two contracts straddling the target expiration date, we find the basis between each contract and the spot price. Using the two contract’s basis we calculate the forward yield between the further dated contract and the nearer dated. This is the difference between the basis of each contract multiplied by their respective times to expiration, divided by the difference in their time to expiration.
Using this forward yield, we then calculate the target date’s basis by multiplying the front contract’s basis by the time to expiration and adding to it the forward yield multiplied by the difference between the front contract and the target expiration. We divide this by the total target duration to arrive at the basis for our target duration.
We currently calculate these metrics for the following exchange-asset combinations:
okex-btc, okex-eth, kraken-eth, huobi-eth, kraken-btc, huobi-btc, ftx-eth, deribit-eth, ftx-btc, deribit-btc, cme-btc, cme-eth, bitmex-btc, binance-btc, binance-eth
Basis data can be accessed using the following endpoints:
timeseries/exchange-asset-metrics
Returns metrics for specified exchange-asset.<br/> Results are ordered by tuple (exchange_asset, time)
.<br/> To fetch the next page of results use next_page_url
JSON response field.<br/>
/timeseries/exchange-asset-metrics
Comma separated list of exchange-asset pairs or patterns like exchange-*
or *-asset
.
Comma separated metrics to request time series data for.<br/> Information on all available metrics can be found on page https://docs.coinmetrics.io/info/pair_metrics.<br/> Use the /catalog-all/exchange-assets endpoint for the full list of supported metrics per exchange-asset combination.
["open_interest_reported_future_usd","volume_reported_spot_usd_1d"]
Frequency of the exchange-asset metrics. Supported values are 5m
, 1h
, 1d
.
Start of the time interval.<br/> This field refers to the time
field in the response.<br/> Multiple formats of ISO 8601 are supported: 2006-01-20T00:00:00Z
, 2006-01-20T00:00:00.000Z
, 2006-01-20T00:00:00.123456Z
, 2006-01-20T00:00:00.123456789Z
, 2006-01-20
, 20060120
.<br/> Inclusive by default.<br/> UTC timezone by default. Z
suffix is optional and timezone
parameter has a priority over it.<br/> If start_time
is omitted, response will include time series from the earliest time available.
End of the time interval.<br/> This field refers to the time
field in the response.<br/> Multiple formats of ISO 8601 are supported: 2006-01-20T00:00:00Z
, 2006-01-20T00:00:00.000Z
, 2006-01-20T00:00:00.123456Z
, 2006-01-20T00:00:00.123456789Z
, 2006-01-20
, 20060120
.<br/> Inclusive by default.<br/> UTC timezone by default. Z
suffix is optional and timezone
parameter has a priority over it.<br/> If end_time
is omitted, response will include time series up to the latest time available.
Inclusive or exclusive corresponding start_*
parameters.
Inclusive or exclusive corresponding end_*
parameters.
Timezone name for start_time
and end_time
timestamps.<br/> This parameter does not modify the output times, which are always UTC
.<br/> Format is defined by TZ database.
America/New_York
Number of items per single page of results.<br/> The value of this parameter is ignored if the endpoint supports the format
parameter and its value is set to json_stream
.
Where does the first page start, at the start of the interval or at the end.
start
, end
How results will be sorted. Metrics are sorted by (exchange_asset, time)
by default. If you want to sort 1d
metrics by (time, exchange_asset)
you should choose time
as value for the sort
parameter.<br/> Sorting by time
is useful if you request metrics for a set of exchange-assets.
exchange_asset
, time
How many entries per exchange_asset result should contain. For example, this combination of parameters exchange_assets=binance-btc,coinbase-eth&metrics=volume_trusted_spot_usd_1h&limit_per_exchange_asset=1
returns the latest volume_trusted_spot_usd_1h
values for binance-btc
and coinbase-eth
.
Human-readable formatting of JSON responses.
Format of the response.
json
, csv
Token for receiving the results from the next page of a query.<br/> Should not be used directly. To iterate through pages just use next_page_url
response field.