Point-in-time
Exabel stores data with point-in-time support, so that you can see what data was available at a specified time. This is especially useful for backtests, as we can then make sure that all the data that is being used as input was actually available at the given time.
- signal.as_of(date: str = None, *, relative_days: int = None)
Evaluate a signal with a point in time. Either
date
orrelative_days
must be provided.If a
date
is provided, the signal produces time series as they were known at the given date.If
relative_days
is provided, the known time of each data point is determined relative to the date of the data point itself. Ifrelative_days
is 0, the known time is equal to the date of the data point, and if it is non-zero, it is shifted with the specified number of dates. If the value is positive, the known time is shifted to the future, and if it is negative, it is shifted to the past.- Parameters:
date (str) – The date to use as the point in time.
relative_days (int) – The number of days between the known time and the date of the data point. If it is positive, the known time is later, and if it is negative, the known time is earlier.
Examples:
Calculate a signal as it was known at a specified point in time:
signal.as_of('2023-12-31')
Calculate a signal where each data point is as-of its date. For example, return the 2024-01-01 data point as-of 2024-01-01, the 2024-01-02 data point as of 2024-01-02, and so on. Note that if your data is delivered with a lag, this will return no results.
signal.as_of(relative_days=0)
Calculate a signal where each data point is as-of 3 days after its date. This may be useful when
looking at a daily alternative data signal that is delivered with a T+3 lag, but is subsequently
revised (due to panel normalization / etc changes); as_of()
will help you understand what each
data point looked like when first delivered.
signal.as_of(relative_days=3)
See how a time series has changed over some time period:
signal.as_of('2021-12-01') - signal.as_of('2021-11-01')
- signal.revisions(date: str)
Show the revisions of the signals for the given date.
- Parameters:
date – the date to evaluate the signal for
Example:
To see how a time series value for 1 Dec 2021 has changed over time:
signal.revisions('2021-12-01')