FXForwardHedgingStrategy#
-
class sigtech.framework.strategies.fx_forward_hedging_strategy.FXForwardHedgingStrategy
Baseclasses:
DailyStrategy
FXForwardHedgingStrategy
goes long an underlying strategy and short its currency (through FX forwards), effectively delivering the performance of the strategy hedged into a given currency. Intended to be used as a wrapper around a strategy.The strategy consists of two exposures:
Exposure: 100% notional exposure to the underlying strategy. This is what delivers the performance of the underlying strategy.
Hedge: 100% notional exposure to FX forwards. This is what hedges the performance of the underlying strategy.
Keyword arguments:
currency
: Target currency into which the underlying strategy’s performance is hedged.strategy_name
: Ticker of the strategy to hedge.hedging_tenor
: Tenor of the FX forwards to trade to hedge the performance. Examples - ‘1M’, ‘1Y’, for all available options, refersigtech.framework.strategies.constants.ROLL_OFFSET
.exposure_rebalance_threshold
: Magnitude of percentage slippage allowed between this strategy and its underlying strategy before a rebalance is triggered. Expressed as a decimal (e.g., 0.01).hedge_rebalance_threshold
: Magnitude of percentage slippage allowed between the FX forwards held in this strategy and the total currency notional of the underlying strategy before a rebalance is triggered. Expressed as a decimal (e.g., 0.02).use_strategy_dates_for_exposure
: Applicable only when the underlying strategy isSignalStrategy
, IfTrue
, rebalancing thresholds are checked only on days when the underlying SignalStrategy rebalances. IfFalse
(default), thresholds are checked on every scheduled trading day.use_holdings_for_hedge_ccy
: Extract hedging currencies and values from bottom level instruments and cash. Otherwise, ifFalse
(default), hedge the full value of the underlying strategy from its currency to thecurrency
of this hedging strategy.custom_hedge_exposure
: Allow to customize the hedge exposure by affecting the exposure that we want to hedge for each currency. Optional, it is an empty dict by default. The argument must be passed as following: {‘CCY’: exposure}. For instance to hedge 50% of GBP exposure and 20% of JPY exposure you would pass: {‘GBP’:0.5, ‘JPY’:0.2}.
Example object creation:
from sigtech.framework.default_strategy_objects.rolling_futures import gx_index_front import sigtech.framework.signal.library as signal_lib import numpy as np import datetime as dtm start_date = dtm.date(2018, 1, 4) signal_ts = np.sign(gx_index_front().history()) signal_obj = signal_lib.from_ts(signal_ts.to_frame(gx_index_front().name)) strategy = sig.SignalStrategy( currency='EUR', signal_name=signal_obj.name, start_date=start_date, rebalance_frequency='EOM' ) fx_hedged = sig.FXForwardHedgingStrategy( currency='USD', strategy_name=strategy.name, hedging_tenor='1M', exposure_rebalance_threshold=0.02, hedge_rebalance_threshold=0.02 )
-
custom_hedge_exposure: Optional[dict]
-
custom_roll_offset: Optional[int]
-
exposure_rebalance_threshold: float
-
hedge_rebalance_threshold: float
-
hedging_tenor: str
-
property roll_offset
Rolling offset for the strategy.
-
strategy: Optional[Strategy]
-
strategy_name: Optional[str]
-
use_holdings_for_hedge_ccy: Optional[bool]
-
use_strategy_dates_for_exposure: Optional[bool]
-
ann01_series()
Return the modified duration timeseries if the object is an instance of
RollingBondStrategy
.
-
bd_schedule()
Business days schedule for the strategy.
-
is_signal_strategy()
Return True if the object is an instance of
SignalStrategy
.
-
schedule_information()
Schedule information for the strategy.
-
strategy_initialization(dt)
Initial decision run on the start date of the strategy.
- Parameters:
dt – Reference datetime.
-
yield_series()
Return the yield timeseries if the object is an instance of
RollingBondStrategy
.