Can anyone help on this question? I failed to find any public material discussing this topic.

I have rate, say 5%, quoted in Monthly payment, using Actual/360 basis. Now, I need to convert it to an equivalent rate, quoted in Semi-Annual payment, using 30/360 basis. How should I tackle this? How about convert semi-Annual payment, actual/365 basis?

  • $\begingroup$ The idea to convert from one convention to the other is to write the discount or capitalization factor's expression using both conventions, and equate both expressions. Did you try this? Where are you stuck exactly? $\endgroup$ – byouness May 15 '18 at 18:10
  • $\begingroup$ i am stuck in how to convert a rate based on 30/360 to a rate based on actual/360. $\endgroup$ – Quant2015 May 15 '18 at 18:57
  • 2
    $\begingroup$ I think this can hardly be answered in a general form. The exact conversion between rates with different day count conventions depends on the concrete starting date and end date. I think you can do this only numerically with some kind of software (e.g. QuantLib) for a concrete numerical case. $\endgroup$ – Bernd May 15 '18 at 19:01
  • $\begingroup$ I think you what you need is a textcourse on the topic, maybe the relevant chapter in Hull's book - options futures and other derivatives will be useful. There are maybe day count conventions and many compounding possibilities. $\endgroup$ – byouness May 15 '18 at 22:05
  • $\begingroup$ Dear Quant2015, is your question answered? If yes please mark the question as answered. $\endgroup$ – Bernd Jun 13 '18 at 20:08

Act/360 and 30/360 is the 'day count convention'. It is used to determine the 'year fraction'. Computing this year fraction for different day count conventions gives different values depending on the concrete starting date and end date of the considered period.


print( ActualActual().yearFraction(Date(15,1,2016), Date(15,1,2017)) )
print(    Thirty360().yearFraction(Date(15,1,2016), Date(15,1,2017)) )
print(    Actual360().yearFraction(Date(15,1,2016), Date(15,1,2017)) )

Start and end dates one year later:

print( ActualActual().yearFraction(Date(15,1,2017), Date(15,1,2018)) )
print(    Thirty360().yearFraction(Date(15,1,2017), Date(15,1,2018)) )
print(    Actual360().yearFraction(Date(15,1,2017), Date(15,1,2018)) )

Putting this differently, there is no general answer to your question.

What you could do is converting a monthly compounding rate into a quarterly-compounding or so.

  1. Take this equation from Brigo/Mercurio (2006), page 8: rate = k / ( P^(1/(k*tau)) ) - k

  2. Set tau according to concrete number computed above

  3. Set k equal to the compounding type k you are interested (monthly=1/12)

  4. Set rate equal to the rate you want to convert, e.g. 5%

  5. Solve for P

  6. Write down the equation above for the P you got and the other compounding type you want to convert to (quarterly=1/4).

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.