Cftc Fx Forward Points
Implementation details
Class names
| Model name | Parameters class | Data class |
|---|---|---|
CftcFxForwardPoints | CftcFxForwardPointsQueryParams | CftcFxForwardPointsData |
Import Statement
from openbb_core.provider.standard_models. import (
CftcFxForwardPointsData,
CftcFxForwardPointsQueryParams,
)
Parameters
- standard
- cftc
pair: str | None
Default: EURUSD
Currency pair, in market quoting convention. The USD/EM pairs (USDKRW, USDINR, USDBRL, ...) are non-deliverable forwards.
source: str | None
Default: search
Where the trades come from. 'search' queries a window of dissemination days and prices each tenor from the most recent day it traded in depth. 'slice' uses a single day's cumulative file, which leaves thin tenors missing and yields nothing on a weekend.
date: date | None
Dissemination date (UTC). With source='search' this ends the lookback window, and defaults to today. With source='slice' it selects one day's file, and defaults to the most recent published. History is retained for 366 days.
lookback_days: int | None
Default: 30
Number of dissemination days to search back over, ending on date. Only used when source='search'. A longer window fills in more tenors, at the cost of pricing the thin ones further from today; check staleness_days. The source caps a search at 180 days.
min_notional: float | None
Default: 1000000.0
Minimum trade notional, in the base currency. Sub-institutional prints trade percent away from the interbank market and would otherwise dominate a tenor's median. Set to 0 to keep every trade.
min_trades: int | None
Default: 1
Drop tenors priced by fewer than this many trades. The default keeps every tenor, because one executed trade is still a price; num_trades, min_rate and max_rate say how thin it is.
use_cache: bool | None
Default: True
Cache the source data locally. Closed dissemination days are immutable and are never re-fetched; daily files are revalidated against the source ETag.
Data
- standard
- cftc
date: date | str
Date of the curve, being that of its freshest tenor.
as_of_date: date | None
Dissemination date the tenor's trades were reported on.
staleness_days: int | None
Days between the tenor's as-of date and the curve's date. Zero on the freshest tenors.
pair: str
Currency pair, in market quoting convention.
tenor: str
Tenor bucket of the observation.
tenor_days: int
Lower bound of the tenor bucket, in days.
spot_rate: float
Spot rate of the tenor's as-of date, the median of that day's trades settling within two days, or of its shortest-dated tenor for a non-deliverable pair.
forward_rate: float
Median executed forward rate at the tenor.
forward_points: float
Executed forward rate less spot, in pips.
theoretical_points: float | None
Covered-interest-parity forward points from the two legs' rate curves, in pips - each leg's OIS, or its fixed-float IRS for an EM currency with no OIS. Present only when both legs have a curve; for a non-deliverable pair its gap to the executed points (basis_points) is the NDF basis to onshore rates.
basis_points: float | None
Executed points less the CIP points, in pips: positive where the market pays over covered-interest-parity fair value, negative under.
quotation: str | None
Whether the base is at a forward premium (executed points positive, forward above spot) or a discount (points negative, forward below spot).
carry: str | None
Whether a long base-currency forward position earns or pays the points to the forward date. It earns at a discount - the base out-yields the quote, so it is bought forward below spot - and pays at a premium. The short-base side is the opposite (Lehman Brothers, FX Training Manual: pay or earn the points).
num_trades: int
Number of executed trades aggregated into the tenor.
total_notional: float | None
Sum of the base currency notional of the tenor's trades.
min_rate: float | None
Lowest executed rate aggregated into the tenor. A wide gap to max_rate marks a dispersed bucket whose median may be off-market - read it alongside num_trades before relying on the point.
max_rate: float | None
Highest executed rate aggregated into the tenor. A wide gap to min_rate marks a dispersed bucket whose median may be off-market - read it alongside num_trades before relying on the point.