qis.compute_performance_of_local_ccy_asset_in_reference_ccy

qis.compute_performance_of_local_ccy_asset_in_reference_ccy(asset_price_local_ccy, local_to_reference_fx_rate, forward_rate_for_local_ccy, hedge_ratio, freq='ME', is_log_returns=False)[source]

Reference-currency NAV and return of a local-currency asset at a given hedge ratio.

The per-period hedged return is:

hedged_return = local_return * (1 + fx_return)
                + (1 - h) * fx_return
                - h * forward_premium

where h is the hedge ratio applied to the FX exposure and forward_premium is the CIP forward-rate return on the local currency. Both h and the forward premium are lagged one period (shift(1)) so the return realised over [t-1, t] uses the hedge decided and the forward contracted at t-1 — i.e. the construction is free of look-ahead. The first period is forced to 0 so the NAV starts at 1.0 rather than propagating a NaN from the lag.

Parameters:
  • asset_price_local_ccy (Series) – Asset price quoted in its local currency.

  • local_to_reference_fx_rate (Series) – Units of reference currency per 1 unit of the local currency.

  • forward_rate_for_local_ccy (Series) – Per-period CIP forward premium of the local vs reference currency, at the same freq and return convention as the asset (see FxRatesData.get_forward_rate_for_local_ccy).

  • hedge_ratio (float | Series) – FX hedge ratio in [0, 1] (0 = unhedged, 1 = fully hedged). Either a constant float or a time-varying pd.Series.

  • freq (str) – Resampling frequency for the returns (e.g. 'ME').

  • is_log_returns (bool) – If True use log returns throughout, otherwise simple returns.

Returns:

Tuple (hedged_nav, hedged_return) — NAV levels (starting at 1.0) and the per-period reference-currency returns, both sampled at freq.

Return type:

Tuple[Series, Series]