xuebaunion@vip.163.com

3551 Trousdale Rkwy, University Park, Los Angeles, CA

留学生论文指导和课程辅导

无忧GPA：https://www.essaygpa.com

工作时间：全年无休-早上8点到凌晨3点

扫码添加客服微信

扫描添加客服微信

python代写-MFM 714

时间：2021-02-23

MFM 714: Project Instructions Part 1

Due Midnight, March 11, 2021

Implement a CreditMetrics style of portfolio simulation in python that will be full of

incomplete “stubs” as described below. During the rest of the term, we will continually

replace components with better models/parameters/functionality. The intent is to first

build a working framework that takes the input and makes output, then populate the rest

of the code later.

However, your code must include full documentation within it. Everything must be

well-document with comments. In addition, the code must be stable enough that the

marker can just load it in and run it successfully.

The software is intended to produce risk measures such as standard deviation, VAR

and conditional tail expectation for the class portfolio. The time horizon for the simula-

tion will be ONE YEAR.

The structure of the software:

Step 1) Arrange for the input of the following 5 files describing the make-up of the

portfolio and the financial markets:

i) A data file of names, ratings, and industries for the bond issuers

ii) A data file for the instruments containing the instrument fields described in part A

iii) A file containing a table of yields by term and by rating available on Avenue. An

Excel version 1 of this data is provided.

iv) A file containing a transition matrix of probabilities. An Excel version 1 of this data

is provided.

v) A correlation matrix with companies corresponding to the file of names ( as in (i)

above). For now, create such a data file yourself with “1” down the main diagonal, and

0.36 everywhere else. Use scipy.linalg.cholesky to perform a Cholesky decomposition to

create a matrix of factors that you will take as input to your code.

Step 2) Use the notional amounts times the market prices/100 to determine the re-

ported market value of the portfolio in millions of dollars. For the CDS’s, we will be using

the theoretical swap price. But for now, they will be worth zero initially.

Step 3) Create a routine that produces a matrix of possible prices for each instrument

for each possible credit rating one year from now. For now, for bonds, fill in the price for

every performing rating (performing means not in default) as the theoretical price from

the input file. In event of default, the bond price is to be the expected recovery value.

For the CDS, for now, leave it as zero value if the company is performing, but make it

worth the notional times the recovery value in event of default.

1

Step 4) Create a subroutine to generate N scenarios for the possible ratings of the

named companies at the end of the year, where N is set to 2000. For now, just have all

2000 scenarios simply show the exact same rating that the companies started with. We’ll

code this subroutine properly later. NOTE: you may find it preferrable to work with a

numerical rating system, so that 1=AAA, 2=AA+, and so on.

Step 5) Create a subroutine to go through each of the N scenarios. Compute the

value of the portfolio in each scenario by summing the value of the instruments. This

will be the notional value of the instrument, times (1/100) of the price of the instrument

looked up from the table created in step 3, using the company’s rating for that scenario

as generated in step 4. Record the portfolio value and the change in portfolio value for

each scenario.

Step 6) Create a subroutine to take the 2000 scenarios for the change in portfolio

value and compute:

- average change in value

- standard deviation of change in value

- 95th percentile VAR

- 99th percentile VAR

- 98th percentile CVAR

Report the two initial portfolio value calculations from step 1, as well as the above statis-

tics.

2

学霸联盟

Due Midnight, March 11, 2021

Implement a CreditMetrics style of portfolio simulation in python that will be full of

incomplete “stubs” as described below. During the rest of the term, we will continually

replace components with better models/parameters/functionality. The intent is to first

build a working framework that takes the input and makes output, then populate the rest

of the code later.

However, your code must include full documentation within it. Everything must be

well-document with comments. In addition, the code must be stable enough that the

marker can just load it in and run it successfully.

The software is intended to produce risk measures such as standard deviation, VAR

and conditional tail expectation for the class portfolio. The time horizon for the simula-

tion will be ONE YEAR.

The structure of the software:

Step 1) Arrange for the input of the following 5 files describing the make-up of the

portfolio and the financial markets:

i) A data file of names, ratings, and industries for the bond issuers

ii) A data file for the instruments containing the instrument fields described in part A

iii) A file containing a table of yields by term and by rating available on Avenue. An

Excel version 1 of this data is provided.

iv) A file containing a transition matrix of probabilities. An Excel version 1 of this data

is provided.

v) A correlation matrix with companies corresponding to the file of names ( as in (i)

above). For now, create such a data file yourself with “1” down the main diagonal, and

0.36 everywhere else. Use scipy.linalg.cholesky to perform a Cholesky decomposition to

create a matrix of factors that you will take as input to your code.

Step 2) Use the notional amounts times the market prices/100 to determine the re-

ported market value of the portfolio in millions of dollars. For the CDS’s, we will be using

the theoretical swap price. But for now, they will be worth zero initially.

Step 3) Create a routine that produces a matrix of possible prices for each instrument

for each possible credit rating one year from now. For now, for bonds, fill in the price for

every performing rating (performing means not in default) as the theoretical price from

the input file. In event of default, the bond price is to be the expected recovery value.

For the CDS, for now, leave it as zero value if the company is performing, but make it

worth the notional times the recovery value in event of default.

1

Step 4) Create a subroutine to generate N scenarios for the possible ratings of the

named companies at the end of the year, where N is set to 2000. For now, just have all

2000 scenarios simply show the exact same rating that the companies started with. We’ll

code this subroutine properly later. NOTE: you may find it preferrable to work with a

numerical rating system, so that 1=AAA, 2=AA+, and so on.

Step 5) Create a subroutine to go through each of the N scenarios. Compute the

value of the portfolio in each scenario by summing the value of the instruments. This

will be the notional value of the instrument, times (1/100) of the price of the instrument

looked up from the table created in step 3, using the company’s rating for that scenario

as generated in step 4. Record the portfolio value and the change in portfolio value for

each scenario.

Step 6) Create a subroutine to take the 2000 scenarios for the change in portfolio

value and compute:

- average change in value

- standard deviation of change in value

- 95th percentile VAR

- 99th percentile VAR

- 98th percentile CVAR

Report the two initial portfolio value calculations from step 1, as well as the above statis-

tics.

2

学霸联盟