FinancePy
FinancePy copied to clipboard
Bond Portfolio Object for Strategy Analysis
Create object that contains a portfolio of bonds Calculate duration, convexity and price Pricing from discount curve object
Hi @domokane is this issue still open? I am currently reading Schreve's book and am interested to actively contribute to FinancePy and strengthen my technical skills.
Yes. You're welcome to to do it. Let me know how it goes. Best D
Hi @domokane Is the product.bonds.bond_portfolio.py for this issue? It's not implemented yet. So the goal of this issue is to implement the bond_portfolio.py?
Exactly. If you wish to have a go, be my guest. Ultimate idea would be to have a portfolio object that you can use to analyse multi-bonds for hedging and scenario analysis and curve fitting.
I am thinking about a method of computing the profit of a Bond given the inital ytm and final ytm. It should look like this:
def get_profit(self, initial_date, end_date, begin_ytm, end_ytm):
It adds all the cashflow during the period and calculate the simple return and compounded return. Where should I put this method?
I also would like to work on this. But before that someone with more strategic view should implement base bond class and other bonds should inherit from that base. Base bond class should have at least the following attributes "Currency" "Issue Date" "Interest Accrues" - sometimes it can be later or before than issue date "Maturity Date" "Floater Formula" "Security identifier" -- at least ISIN
Then the Portfolio class should have a base currency.
If I implement, for example,
if not bondWeights:
#calculate the sum of bond dirty prices
#calculate weight of each bond
#return ndarray bondWights
if in the future there will be multicurrency portfolio, the code will need to change again.
@domokane please let me know if should ignore these challenges and work on portfolio class right away.
Hi @sagayev, product.bonds.Bond is the base class you want, except for the Security Identifier attribute. However, all types of bonds are implemented individually, not by inheritance. Domokane prefered this way for simplicity. What's Floater Formula by the way?
Hi - I am not against refactoring the code to have a bond base class. I prefered to keep it separate for the specific case of a zero coupon bond. But if the benefits outweigh the cost then I am happy to reconsider.