FORWARD_SERIES — Fixed-Maturity Forward Prices
Construct a historical series of theoretical outright forward prices for one fixed delivery date. At each spot observation, the command applies the financing rate minus the income yield over the remaining calendar time.
Syntax
FORWARD_SERIES(spotSeries, startDate, maturityDate, financingRate, yieldRate)
Alias: FORW_SERIES.
Arguments
- spotSeries: Historical asset prices, exchange rates or another spot-price series. Values must be finite.
- startDate: First eligible observation date, expressed as an integer YYYYMMDD. This bound is inclusive.
- maturityDate: Fixed delivery date, expressed as an integer YYYYMMDD. Also the inclusive upper observation bound. It may lie beyond the last available spot observation.
- financingRate: Annual financing rate, supplied as a decimal constant or a rate series.
- yieldRate: Annual income or dividend yield, supplied independently as a decimal constant or a rate series. Use 0 for no income.
Formula and units
years = calendar days from observation date to maturity / 365.25 forward = spot * (1 + (financingRate - yieldRate) * years)
Numeric rates are decimals: 0.05 means 5% per year and
0.02 means 2%. Rate series marked as percent are each divided
by 100; unmarked series must already contain decimal rates. No rate-unit
guessing is performed. This is a simple net-carry approximation, not
continuous compounding or an exact ratio of separate simple accrual factors.
Examples
FORWARD_SERIES(Spot,20260101,20261231,0.05,0.02) FORWARD_SERIES(Spot,20260101,20261231,FinancingRates,0) FORWARD_SERIES(Spot,20260101,20261231,0.05,IncomeYields) FORWARD_SERIES(Spot,20260101,20261231,FinancingRates,IncomeYields)
These examples assume Spot, FinancingRates and IncomeYields are already defined. For a spot value of 100, a 5% financing rate, a 2% income yield and 182 calendar days to maturity, the forward price is approximately 101.495.
Output and interpretation
Returns a series with the selected spot observation dates, frequency and units. Maturity stays fixed while remaining time decreases. At maturity, forward equals spot. No observations are created beyond the available spot data. The command does not modify its inputs. Use the result wherever a series is accepted, including charts and comparisons with spot prices.
This is a cost-of-carry scenario, not a prediction of the future spot price. Rates are applied at each observation and held constant over its remaining tenor. It does not bootstrap a discount curve or integrate a future path of rates. For FX, the financing and yield inputs can represent quote-currency and base-currency rates respectively, with the quote direction checked carefully. Storage costs, convenience yields, transaction costs and contract-specific conventions are not modeled separately.
Validation and missing data
Requires exactly five arguments, valid integer calendar dates and a start date no later than maturity. Spot and rate series must be nonempty with strictly increasing, nonnull dates. Selected spot values and all supplied rate observations must be finite. Series rates use the existing series interpolation method within their observed calendar-date range; gaps may therefore be interpolated. Extrapolation is rejected, as are missing or nonfinite interpolated rates, nonpositive carry factors and overflow.
Rates are not evaluated for an observation at maturity, where forward equals spot. Invalid inputs or an empty selected interval return a descriptive command error instead of a partial series. No command-specific extractables are provided: the returned object is the forward-price series itself.