# How to optimise Fixed Income portfolio (Yieldbook) based on YTM, duration, rating and exchange rate

I have a fixed income portfolio built up in the Yieldbook and BBG Port. However due to some bad performance of my portfolio compared to the benchmark I would like to build up an optimisation which maximise a score such as the ratio (or not necessarily a ratio) between YTM and risk where risk is a function of duration, rating (S&Ps) and exchange rate currency (I want to keep some bonds in local currency and other not). The current simulation only considers YTM, duration and rating, and performs badly when the yield curve is flat because it allocates everything at very low maturity and only in US bond due to high rating. Consequently if the interest rates grow that is beneficial but everytime the interest drop then i keep going short duration and I underperform the benchmark. So my questions are: do you have any reference (paper etc.) on how to formulate such an objective function? also do you think that this score YTM/f(duration, rating, exchange rate) is a proper way to proceed or do you have additional suggestions on how to properly set my objective function? Many thanks

• Given the peculiarities of your portfolio, I would suggest to leverage its convexity. First, build a framework such that you can reprice your portfolio by moving each risk factor 1 bp up and 1 bp down: interest rates, credit spreads, and exchanges rates. Compute the weighted performance under both the positive and the negative scenarios. Then your objective function is the ratio between the two weighted performances as a function of the chosen weights. Second, introduce some correlation between the risk factors. Third, introduce more risk factors (principal components). Optimize again. – Lisa Ann Jul 22 '20 at 18:11
• thanks for the useful comments. In practice, how in the Yieldbook do you estimate the "weighted performance"? how also can I introduce in the Yieldbook correlation and principal components? they are matrices so I do not see where in the software I can compute or import them. Thanks! – Luigi87 Jul 23 '20 at 7:09
• I'm not familiar with Yieldbook, I am sorry. When I was sitting in front of the Bloomberg terminal, I was used to call the API to download all the needed stuff into R and/or Excel. In Excel I used custom C++ (QuantLib behind) .xll to model the bonds, while you can make scenario analysis over complicated in R (like in any other language with statistical libraries). Today I would suggest to move to Python because of QuantLib-Python, albeit you can easily call it from R with reticulate. – Lisa Ann Jul 23 '20 at 7:35
• well I usually use python but for running the allocation of Fixed Income portfolio we use a commercial solution as it is well known and accepted. The user won't be me but my fixed income manager who does not know python. So I am helping her in building this portfolio but I do not know the YB..anyway thanks for helping – Luigi87 Jul 23 '20 at 8:05