Yield to Maturity

Overview

Yield to Maturity

Yield to Maturity Function



def yield_to_maturity(contract, curve, cleanprice:float|None=None, dirtyprice:float|None=None): if isinstance(contract, ct.FixedRateBond): fbond : ct.FixedRateBond = contract term_structure_handle = ql.YieldTermStructureHandle(get_curve(curve)) day_count = ct.translate_daycount(fbond.day_count) frequency = ct.translate_frequency(fbond.schedule.frequency) bondvalue = value(contract, curve) if cleanprice == None and dirtyprice == None: ytm = bondvalue.bondYield( day_count, ql.Compounded, frequency ) return ytm #market_clean_price = bondvalue.cleanPrice() if cleanprice != None: clean_market_price = ql.BondPrice(cleanprice, ql.BondPrice.Clean) # 6. Calculate Yield To Maturity (YTM) ytm = bondvalue.bondYield( clean_market_price, day_count, ql.Compounded, frequency ) return ytm clean_market_price = ql.BondPrice(dirtyprice, ql.BondPrice.Dirty) # 6. Calculate Yield To Maturity (YTM) ytm = bondvalue.bondYield( clean_market_price, day_count, ql.Compounded, frequency ) return ytm pass