Forums

FpML Discussion

General FpML Discussion Technical & Implementation Questions Notional step frequency must be an integer multiple of the stream calculation period frequency.

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • #2251
    roma
    Participant

    Hello. i’m working on the implementation of FpML at Moscow Exchange OTC market. And i have some issue with amortization. For example, i have simple 5y IRS with every 6m payment on float leg and one payment payment on fix leg in the end of term. For example i want to add amortization every 1y. On the swapStream/calculationPeriodAmount/calculation/notionalSchedule/notionalStepParameters/stepFrequency there is a limitation “This frequency must be an integer multiple of the stream calculation period frequency.” Definetly, notional step frequency must be the same on both streams. But on fix leg a have calculation period = 1T, so i can’t set any amortization frequency. 1. Should i set calculation period on both streams same as amortization period? 2. If yes, how i can define both amortization and compounding in one trade? (i.e. 1y swap with 6m payment frequency (with compounding), 3m reset dates frequency and amortization every 1m). Thank you

    #2253
    alexnotalex
    Spectator

    Hi Roma, This is my understanding: The integer multiple bit means that if the notional changes you need a new calculation period to describe the interest calculation based on the new notional. You can’t move the notional within a calculation period, the grammar can’t express that. You need to end the first period and start another. Set up your notionalStepSchedule as usual for both legs, amortizing each year stepFrequency = 1Y The fixed leg should have paymentFrequency = 1T and calculationPeriodFrequency = 1Y. Multiple calculationPeriods will contribute to one paymentCalculationPeriod, just specify the compoundingMethod for the leg and you’re half way done. 1y/1y = 1. The floating leg can pay every 6 months and step every year. Set up a paymentFrequency = 6M and calculationPeriodFrequency = 6M. each paymentCalculationPeriod will have a single calculationPeriod. The notional will change every year i.e. every second paymentCalculationPeriod. 1Y/6M = 2. For (2) you’d need 2 paymentCalculationPeriods, each with 6 calculationPeriods to handle the monthly amortization. The interest rate will reset every 3 months, which fits perfectly inside the schedule. Specify the compoundingMethod. The parameters and cashflow grammar should also support this level of detail for stubs. I hope this helps, I’m just a practitioner and do not represent fpml.org. Best, Alex

    #2256
    roma
    Participant

    Thank you, Alex. The problem with (2) is that for compounding i must set compoundingMethod = Flat (for exmpl), and for amortization compoundingMethod = None.

    #2259
    alexnotalex
    Spectator

    I interpret compounding and amortization as two things that can happen together or apart. As soon as you have multiple calculationPeriods contributing to one paymentPeriod you should be using compoundingMethod to explain how the numbers should be put together. All my zero coupon swaps are flat compounded implicity, with or without amortization. The FpML grammar can describe all of this, it’s down to you to tell the right story. best, Alex

    #2261
    roma
    Participant

    If amortization dates = payment dates, everything ok) but i have some examples: 1) Payment frq = 6M Reset frq = 3M Calculation period = 3M Compounding Method = Flat 2) Payment frq = 6M Amortization frq = 1M Calculation Period = 1M Compounding Method = None 3) Payment frq = 6M Reset frq = 3M Amortization frq = 1M Calculation Period = 1M Compounding Method = ???

    #2262
    alexnotalex
    Spectator

    if amortization frq > payment frq then you’ll have multiple calculation periods per payment period and should be indicating the compoundingMethod. This method applies to the whole payment period. If you want periods 1 2 4 and 5 None and 3 and 6 Flat then I think we can’t describe this with the parameters. cashflowsMatchParameters = false and lay it out in each cashflow period. Yuk. Alex

Viewing 6 posts - 1 through 6 (of 6 total)
  • You must be logged in to reply to this topic.