def swap_index_name(self, curve): """ swap_index takes a Curve-class object and returns the appropriate index. Because QuantLib has a separate index object for each currency (for reasons that are not entirely clear to me), this function is necessary for creating swapRateHelpers. The function takes the curve object, then uses the currency and floating_leg_tenor attributes to determine the index. Currently, the function can handle the following currencies: AUD, CAD, CHF, DKK, EUR, GBP, JPY, NZD, SEK, TRL, USD Args: curve (Curve): curve-class object Returns object: QuantLib index, defined for a specified period """ if curve.currency == 'AUD': return qlib.AUDLibor(self.floating_leg_tenor) elif curve.currency == 'CAD': return qlib.CADLibor(self.floating_leg_tenor) elif curve.currency == 'CHF': return qlib.CHFLibor(self.floating_leg_tenor) elif curve.currency == 'DKK': return qlib.DKKLibor(self.floating_leg_tenor) elif curve.currency == 'EUR': return qlib.Euribor(self.floating_leg_tenor) elif curve.currency == 'GBP': return qlib.GBPLibor(self.floating_leg_tenor) elif curve.currency == 'JPY': return qlib.JPYLibor(self.floating_leg_tenor) elif curve.currency == 'NZD': return qlib.NZDLibor(self.floating_leg_tenor) elif curve.currency == 'SEK': return qlib.SEKLibor(self.floating_leg_tenor) elif curve.currency == 'TRL': return qlib.TRLibor(self.floating_leg_tenor) elif curve.currency == 'USD': return qlib.USDLibor(self.floating_leg_tenor)
def swap_index(curve): """ swap_index takes a Curve-class object and returns the appropriate index. Because QuantLib has a separate index object for each currency (for reasons that are not entirely clear to me), this function is necessary for creating swapRateHelpers. The function takes the curve object, then uses the currency and floating_leg_tenor attributes to determine the index. Currently, the function can handle the following currencies: AUD, CAD, CHF, DKK, EUR, GBP, JPY, NZD, SEK, TRL, USD Args: curve (Curve): curve-class object Returns object: QuantLib index, defined for a specified period """ if curve.currency == "AUD": return qlib.AUDLibor(curve.swaps.floating_leg_tenor) elif curve.currency == "CAD": return qlib.CADLibor(curve.swaps.floating_leg_tenor) elif curve.currency == "CHF": return qlib.CHFLibor(curve.swaps.floating_leg_tenor) elif curve.currency == "DKK": return qlib.DKKLibor(curve.swaps.floating_leg_tenor) elif curve.currency == "EUR": return qlib.Euribor(curve.swaps.floating_leg_tenor) elif curve.currency == "GBP": return qlib.GBPLibor(curve.swaps.floating_leg_tenor) elif curve.currency == "JPY": return qlib.JPYLibor(curve.swaps.floating_leg_tenor) elif curve.currency == "NZD": return qlib.NZDLibor(curve.swaps.floating_leg_tenor) elif curve.currency == "SEK": return qlib.SEKLibor(curve.swaps.floating_leg_tenor) elif curve.currency == "TRL": return qlib.TRLibor(curve.swaps.floating_leg_tenor) elif curve.currency == "USD": return qlib.USDLibor(curve.swaps.floating_leg_tenor)
def _create(self, asof_date): yield_curve = self[F.YIELD_CURVE] tenor = self[F.TENOR] yield_handle = ql.YieldTermStructureHandle(yield_curve) return ql.AUDLibor(tenor, yield_handle)