CRR Binomial Tree Convertible Bond pricing (MATLAB)

LVB

Hey guys,

Working on a project regarding short interest. Additionally, I want to price a number of convertible bonds at their moment of issuance.
I would like to use the Cbondbycrr function in MATLAB (link) (unless there are better alternatives, i.e. quantlib python)
I don't have much experience with MATLAB, but I am surpised I can't find any written code or examples.

Anyone might have any old projects laying around that they used this convertible bond pricing function for?
(I use datastream for Rf, CRSP for stock data and Mergent for Convertible bond data)

IntoDarkness

i dont remember seeing anybody take seriously with matlab's financial toolbox other than its calendar manipulation

Daniel Duffy

C++ author, trainer
And the binomial method is not the most modern method around.

LVB

Oh, I did know it was that bad. Any constructive advice on what else I should use to obtain the theoretical price? @IntoDarkness

I am looking to value roughly a couple hundreds convertible bonds price at the time of issuance.

P.s. What method would you see more fit instead? @Daniel Duffy

Daniel Duffy

C++ author, trainer
I supervised a number of CB MSc projects using both lattice and finite difference method (FDM). The latter is more flexible _by far_ (BTW CRR is not very good... ziggy zaggy).
I'm not a CB practitioner, so I am not familiar with the latest nuances. The last state of art I know is

I would say Python is taking over from Matlab? Python is hot.

Last edited:

LVB

I supervised a number of CB MSc projects using both lattice and finite difference method (FDM). The latter is more flexible _by far_ (BTW CRR is not very good... ziggy zaggy).
I'm not a CB practitioner, so I am not familiar with the latest nuances. The last state of art I know is

I would say Python is taking over from Matlab? Python is hot.

Thank you, very interesting article.

I looked into Python and the Quantlib package, and it seems to support indeed multiple pricing engines, from finite difference to lattice and to binomial.

However please note, for the research I want to perform a more accurate theoretical pricing method would of course be a nice plus, but I am mainly looking into a relation between underpricing of bonds and short interest. I believe this relation would still be observable with a less accurate method, therefore for simplicity, using any method should give similar results.

But if understand correctly, using MATLAB for my research would not be a smart smove. I am surpised the link @Daniel Duffy posted is pretty much the only thing I can find about CB pricing and python

Daniel Duffy

C++ author, trainer
No free lunch I suppose. There are several commercial products. Or build your own CB code. If you need more than free stuff it is necessary to allocate resources..
Out of curiosity, is it a student project?

Last edited:

Daniel Duffy

C++ author, trainer
" relation between underpricing of bonds and short interest"

In that case you probably mean a 2-factor model? In that case a PDE/FDM model is probably needed, especially if you have correlation, dividend-paying stock and free boundaries.
It has been done.

Last edited:

LVB

It is indeed a student project.

Short interest as a proxy of liquidity basically. FINRA provides daily short interest data which I notice has not been exploited much so far in acadamic research (as it got available only since 2011~). By looking at underpricing and the degree of a short interest on the underlying stock, while controlling for certain factors, the 'cost' of shorting, reflected in the underpriced bond price, can be researched. If you have any tips/opinion if this would make any sense or if I should take a different angle, happy for any advice.

True, it will be necessary to allocate resources, but before I blindly start from scratch I always like to spend a couple of days researching if something is already out there. I rather not spend a bunch of time re-inventing the wheel...

Last edited:

Daniel Duffy

C++ author, trainer
Fair enough. But in a student project it's also important to do some original work as well. My MSc students locate the relevant finance paper and take it all the way to code themselves. I do not accept code that they have found on internet.

A feature of copying from other articles, blogs and code is that you _can_ also inherit their errors, faults and defects.

Last edited:

LVB

Fair enough. But in a student project it's also important to do some original work as well. My MSc students locate the relevant finance paper and take it all the way to code themselves. I do not accept code that they have found on internet.

A feature of copying from other articles, blogs and code is that you _can_ also inherit their errors, faults and defects.

@Daniel Duffy As you recommended, I wrote the code myself. Sadly I used MATLAB though, as for now it's a tool that is apparently recommended by my teachers. I also looked into quantlib, but as much as I would like to make a pricing script with it, I am afraid it's above my level (I am only a finance student, not a mathemtical/financial engineering).

A question, or tip, that you might be able to help me with: My next step is to identify a big number of vanilla convertible bonds for my desired time window (2011-2016~), afterwards I would need to get all the inputs, such as the vola of the underlying stock, the settlement date of the CB, coupon, the Rf, sigma, etc.
Any tip on how to speed up this process, or is there no other way to simply use all databases (CRSP, Datastream) and get this data bond by bond?

Daniel Duffy

C++ author, trainer
@Daniel Duffy As you recommended, I wrote the code myself. Sadly I used MATLAB though, as for now it's a tool that is apparently recommended by my teachers. I also looked into quantlib, but as much as I would like to make a pricing script with it, I am afraid it's above my level (I am only a finance student, not a mathemtical/financial engineering).

A question, or tip, that you might be able to help me with: My next step is to identify a big number of vanilla convertible bonds for my desired time window (2011-2016~), afterwards I would need to get all the inputs, such as the vola of the underlying stock, the settlement date of the CB, coupon, the Rf, sigma, etc.
Any tip on how to speed up this process, or is there no other way to simply use all databases (CRSP, Datastream) and get this data bond by bond?
I don't know the details but it feels like typically a sequential process. Do you get the data from one source and is there much pre-computing taking place?

LVB

I don't know the details but it feels like typically a sequential process. Do you get the data from one source and is there much pre-computing taking place?

I am getting it from multiple places. Pretty much 3-4 seperate databases.

Daniel Duffy

C++ author, trainer
I am getting it from multiple places. Pretty much 3-4 seperate databases.
I suppose each db can have its own thread, so you could fire up multiple threads and wait for them to finish? Which language are you using?

LVB

I suppose each db can have its own thread, so you could fire up multiple threads and wait for them to finish? Which language are you using?

Well I haven't written a script yet that would run multiple threads to pull the data. I do have a web scraper, built in python, that uses multi-threading to scrape short interest data from a webserver. The problem is, is that for example Datastream, is only accessible on my university on two PC's and as far as I know it's not possible to run your own scripts on there. I guess it will just be tedious proces.

I was just curious how maybe you or other people usually get their input parameters to price CB's.

Replies
3
Views
7K
Replies
8
Views
4K
Replies
0
Views
857
Replies
0
Views
554
Replies
0
Views
947