FXForward#
-
class sigtech.framework.instruments.fx_otc.FXForward
Baseclasses:
FXOTC
FXForward
will pay 1.0 in the under currency minus strike amount in the over currency atpayment_date
.Keyword arguments:
under
: The base currency of the FX forward, e.g. GBP in GBP/USD.over
: The quote currency of the FX forward, e.g. USD in GBP/USD.payment_date
: Payment date (maturity date) of the FX forward.strike
: Forward strike (Optional, default is None and the fair strike will be used at valuation point).start_date
: Trade date of the FX forward.deliverable
: Boolean flag indicating deliverable/non-deliverable (optional, default is True).is_hedge
: Boolean flag indicating if hedge trade or outright trade (optional, default is False).forbid_settlement
: Boolean flag forcing strategies to get out of instrument prior to settlement (optional, default is False)
One of
strike
orstart_date
input must be supplied in the parameters.Example object creation:
fx_forward = sig.FXForward( over='USD', under='EUR', start_date=dtm.date(2018, 3, 5), payment_date=dtm.date(2018, 4, 5) )
The value of the instrument is
\[P(0,t) * (FX_t - K)\]where \(K\) is the strike, and discount factor and FX forward are obtained from the
FXMarket
instance.-
dead_instrument: Optional[str]
-
deliverable: Optional[bool]
-
execution_datetime: Optional[datetime]
-
forbid_settlement: Optional[bool]
-
is_hedge: Optional[bool]
-
payment_date: date
-
property settlement_type
Type of settlement (
'Physical'
or'Cash'
).
-
start_date: date
-
strike: Optional[float]
-
static daily_fx_forward_dependencies(forward_over, forward_under, time, tzinfo, start_dt, end_dt) list[sigtech.framework.internal.infra.mu.graph.registry.factory.Dependency]
Return the dependencies required to value fx forwards at this time and timezone every day
-
get_strike()
Strike value.
-
roll_down(d: date, dates: Union[str, date, list[Union[str, datetime.date]]], data_point: DataPoint = None)
Compute roll-down of fx forward by moving the valuation date forward to the requested dates, keeping spot rate and depo curves constant, i.e. depo_rate(from_original_date, for_x_number_of_days) equals depo_rate(from_the_forward_date, for_x_number_of_days).
- Parameters:
d – Valuation date.
dates – String/date or a list of strings/dates for which the carry/roll-down is needed.
data_point – Data point for the original curves.
- Returns:
DataFrame with 1 columns
roll_down
- change in FXForward PV.
-
validate()
Make sure FXForward currency is equal to over currency.