Table 1. Example 1, Case 1: Attachment Points vs. Rating
Table 2. Example 1, Case 2: Attachment Points vs. Rating
Table 3. Example 2: Attachment Points vs. Rating
Table 4. Example 3, Case 1: Attachment Points vs. Rating
Table 5. Example 3, Case 2: Attachment Points vs. Rating
Table 6. Comparison of Attachment Points: Example 1, Case 1 vs. Example 3, Case 1
Table 7. Comparison of Attachment Points: Example 1, Case 2 vs. Example 3, Case 2
Table 8. Default Probabilities of CDO Tranche vs. Ratings for Problems 1 - 5
Table 9. Single-Period Default Probabilities in Problem 1
Table 10. Single-Period Default Probabilities in Problem 2
Table 11. Single-Period Default Probabilities in Problem 3
Table 12. Single-Period Default Probabilities in Problem 4
Table 13. Single-Period Default Probabilities in Problem 5
Figure 1. Attachment Points for the Optimal Solution of Problem 1
Figure 2. Attachment Points for the Optimal Solution of Problem 2
Figure 3. Attachment Points for the Optimal Solution of Problem 3
Figure 4. Attachment Points for the Optimal Solution of Problem 4
Figure 5. Attachment Points for the Optimal Solution of Problem 5
Figure 6. Default Probabilities of CDO Tranche vs. Ratings
Figure 7. Default Probabilities of CDO Tranche vs. Ratings
Figure 8. Single-Period Default Probabilities vs. Ratings for Problem 1
Figure 9. Single-Period Default Probabilities vs. Ratings for Problem 2
Figure 10. Single-Period Default Probabilities vs. Ratings for Problem 3
Figure 11. Single-Period Default Probabilities vs. Ratings for Problem 4
Figure 12. Single-Period Default Probabilities vs. Ratings for Problem 5
Case study Hedging Portfolio of Options (see Formal Problem Statement) in MATLAB Environment is solved with tbpsg_run PSG function.
MATLAB code is in file CS_Structuring_Step_up_CDO_Optimization_I_Toolbox.m.
Data are saved in files Data_for_Step-up_CDO_I_Toolbox.mat.
Let us describe the main operations. To run case study you need to do the following main steps:
In file CS_Structuring_Step_up_CDO_Optimization_I_Toolbox.m:
Load data:
load('Data_for_Step-up_CDO_I_Toolbox.mat');
tbpsg_export_to_workspace(toolboxstruc_arr);
Specify the set of values of upper bound on probability that the cumulative collateral loss exceeds the tranche attachment point at least once in periods 1,…, T. Columns correspond to credit rating (BBB, A, AA, AAA).
Param_Mult_Prob = [0.0281 0.0071 0.0036 0.0012];
Specify the set of values of upper bound on single-period default probability. Rows correspond to credit rating (BBB, A, AA, AAA), and columns correspond to the single-periods.
Param_Single_Prob = [0.0053018868 0.0106037736 0.0159056604 0.0227981132 0.0281;...
0.0013396226 0.0026792453 0.0040188679 0.0057603774 0.0071;...
0.0006792453 0.0013584904 0.0020377358 0.0029207547 0.0036;...
0.0002264151 0.0004528302 0.0006792453 0.0009735849 0.0012];
Generate fragments of the problem description common for all parameter values within Optimization Problem 1 (Example 1,Case 1):
str1 = sprintf('Problem: problem_example_1_case_1, type = minimize');
str2 = sprintf('Objective: objective_linear_sum_of_x_5, linearize = 0');
str3 = sprintf('linear_sum_of_x_5(matrix_sum_of_x_5)');
str5 = sprintf('prmulti_pen_5_periods(0.0,matrix_10000_1,matrix_10000_2,matrix_10000_3,matrix_10000_4,matrix_10000_5)');
str6 = sprintf('Box_of_Variables: lowerbounds = point_lowerbounds, upperbounds = point_upperbounds');
str7 = sprintf('Solver: VAN, precision = 9, stages = 30');
Begin loop for Optimization Problem 1 (Example 1,Case 1) over parameter values:
for i=1:1:length(Param_Mult_Prob)
Generate parameter-specific fragment of the problem 1 description:
str4 = sprintf('%s%.7f','Constraint: constraint_mult_prob, upper_bound = ',Param_Mult_Prob(i));
Generate problem statement:
problem_statement = sprintf('%s\n', str1, str2, str3, str4, str5, str6, str7);
%Uncomment the following line to open the problem in Toolbox Window:
%tbpsg_toolbox(problem_statement,toolboxstruc_arr);
Optimize problem 1:
[solution_str, outargstruc_arr] = tbpsg_run(problem_statement, toolboxstruc_arr); |
Extract optimal solution of the problem 1:
point_variables = tbpsg_optimal_point_vars(solution_str, outargstruc_arr);
loc = tbpsg_optimal_point_data(solution_str, outargstruc_arr);
Points_Problem_1(:,i) = loc';
Sum_Attach_Points_Problem_1(i) = tbpsg_objective(solution_str, outargstruc_arr);
Multiple_Probabilities_Problem_1(i) = tbpsg_constraints_data(solution_str, outargstruc_arr);
toolboxstruc_arr(size(toolboxstruc_arr,2)+1) = tbpsg_point_pack(['point_opt_point_Problem_1_' int2str(i)],loc,point_variables);
Constr_period1_Problem_1(i) = tbpsg_function_value(' pr_pen_period1(0.0, matrix_10000_1)', ['point_opt_point_Problem_1_' int2str(i)], toolboxstruc_arr);
Constr_period2_Problem_1(i) = tbpsg_function_value(' prmulti_pen_period2(0.0,matrix_10000_1,matrix_10000_2)', ['point_opt_point_Problem_1_' int2str(i)], toolboxstruc_arr);
Constr_period3_Problem_1(i) = tbpsg_function_value(' prmulti_pen_period3(0.0,matrix_10000_1,matrix_10000_2,matrix_10000_3)', ['point_opt_point_Problem_1_' int2str(i)], toolboxstruc_arr);
Constr_period4_Problem_1(i) = tbpsg_function_value(' prmulti_pen_period4(0.0,matrix_10000_1,matrix_10000_2,matrix_10000_3,matrix_10000_4)', ['point_opt_point_Problem_1_' int2str(i)], toolboxstruc_arr);
Constr_period5_Problem_1(i) = tbpsg_function_value(' prmulti_pen_period5(0.0,matrix_10000_1,matrix_10000_2,matrix_10000_3,matrix_10000_4,matrix_10000_5)', ['point_opt_point_Problem_1_' int2str(i)], toolboxstruc_arr);
Generate fragments of the problem description common for all parameter values within Optimization Problem 2 (Example 1, Case 2):
str1 = sprintf('Problem: problem_example_1_case_2, type = minimize');
str2 = sprintf('Objective: objective_linear_sum_of_x_5, linearize = 0');
str3 = sprintf('linear_sum_of_x_5(matrix_sum_of_x_5)');
str5 = sprintf('prmulti_pen_5_periods(0.0,matrix_10000_1,matrix_10000_2,matrix_10000_3,matrix_10000_4,matrix_10000_5)');
str6 = sprintf('Constraint: constraint_x1_x2, lower_bound = 0, upper_bound = 0, linearize = 0');
str7 = sprintf('linear_x1_x2(matrix_x1_x2)');
str8 = sprintf('Constraint: constraint_x2_x3, lower_bound = 0, upper_bound = 0, linearize = 0');
str9 = sprintf('linear_x2_x3(matrix_x2_x3)');
str10 = sprintf('Constraint: constraint_x3_x4, lower_bound = 0, upper_bound = 0, linearize = 0');
str11 = sprintf('linear_x3_x4(matrix_x3_x4)');
str12 = sprintf('Constraint: constraint_x4_x5, lower_bound = 0, upper_bound = 0, linearize = 0');
str13 = sprintf('linear_x4_x5(matrix_x4_x5)');
str14 = sprintf('Box_of_Variables: lowerbounds = point_lowerbounds, upperbounds = point_upperbounds');
str15 = sprintf('Solver: VAN, precision = 9, stages = 30');
Begin loop for Optimization Problem 2 (Example 1,Case 2) over parameter values:
for i=1:1:length(Param_Mult_Prob)
Generate parameter-specific fragment of the problem 2 description:
str4 = sprintf('%s%.7f','Constraint: constraint_mult_prob, upper_bound = ',Param_Mult_Prob(i));
Generate problem statement:
problem_statement = sprintf('%s\n', str1, str2, str3, str4, str5, str6, str7,...
str8, str9, str10, str11, str12, str13, str14,str15);
%Uncomment the following line to open the problem in Toolbox Window:
%tbpsg_toolbox(problem_statement,toolboxstruc_arr);
Optimize problem 2:
[solution_str, outargstruc_arr] = tbpsg_run(problem_statement, toolboxstruc_arr); |
Extract optimal solution of the problem 2:
point_variables = tbpsg_optimal_point_vars(solution_str, outargstruc_arr);
loc = tbpsg_optimal_point_data(solution_str, outargstruc_arr);
Points_Problem_2(:,i) = loc';
Sum_Attach_Points_Problem_2(i) = tbpsg_objective(solution_str, outargstruc_arr);
constr_data = tbpsg_constraints_data(solution_str, outargstruc_arr);
Multiple_Probabilities_Problem_2(i) = constr_data(1);
toolboxstruc_arr(size(toolboxstruc_arr,2)+1) = tbpsg_point_pack(['point_opt_point_Problem_2_' int2str(i)],loc,point_variables);
Constr_period1_Problem_2(i) = tbpsg_function_value('pr_pen_period1(0.0, matrix_10000_1)', ['point_opt_point_Problem_2_' int2str(i)], toolboxstruc_arr);
Constr_period2_Problem_2(i) = tbpsg_function_value('prmulti_pen_period2(0.0,matrix_10000_1,matrix_10000_2)', ['point_opt_point_Problem_2_' int2str(i)], toolboxstruc_arr);
Constr_period3_Problem_2(i) = tbpsg_function_value('prmulti_pen_period3(0.0,matrix_10000_1,matrix_10000_2,matrix_10000_3)', ['point_opt_point_Problem_2_' int2str(i)], toolboxstruc_arr);
Constr_period4_Problem_2(i) = tbpsg_function_value('prmulti_pen_period4(0.0,matrix_10000_1,matrix_10000_2,matrix_10000_3,matrix_10000_4)', ['point_opt_point_Problem_2_' int2str(i)], toolboxstruc_arr);
Constr_period5_Problem_2(i) = tbpsg_function_value('prmulti_pen_period5(0.0,matrix_10000_1,matrix_10000_2,matrix_10000_3,matrix_10000_4,matrix_10000_5)', ['point_opt_point_Problem_2_' int2str(i)], toolboxstruc_arr);
Generate fragments of the problem description common for all parameter values within Optimization Problem 3 (Example 2):
str1 = sprintf('Problem: problem_example_2, type = minimize');
str2 = sprintf('Objective: objective_problem_3');
str3 = sprintf('0.966736489*pm_pen_g_period_1(0.0, matrix_10000_1)');
str4 = sprintf('+0.903492046*pm_pen_g_period_2(0.0, matrix_10000_2)');
str5 = sprintf('+0.84438509*pm_pen_g_period_3(0.0, matrix_10000_3)');
str6 = sprintf('+0.789144944*pm_pen_g_period_4(0.0, matrix_10000_4)');
str7 = sprintf('+0.737518639*pm_pen_g_period_5(0.0, matrix_10000_5)');
str9 = sprintf('pr_pen_period1(0.0, matrix_10000_1)');
str11 = sprintf('prmulti_pen_period2(0.0,matrix_10000_1,matrix_10000_2)');
str13 = sprintf('prmulti_pen_period3(0.0,matrix_10000_1,matrix_10000_2,matrix_10000_3)');
str15 = sprintf('prmulti_pen_period4(0.0,matrix_10000_1,matrix_10000_2,matrix_10000_3,matrix_10000_4)');
str17 = sprintf('prmulti_pen_period5(0.0,matrix_10000_1,matrix_10000_2,matrix_10000_3,matrix_10000_4,matrix_10000_5)');
str18 = sprintf('Box_of_Variables: lowerbounds = point_lowerbounds, upperbounds = point_upperbounds');
str19 = sprintf('Solver: VAN, precision = 9, stages = 30');
Begin loop for Optimization Problem 3 (Example 2) over parameter values:
for i=1:1:size(Param_Single_Prob,1)
Generate parameter-specific fragments of the problem 3 description:
str8 = sprintf('%s%.10f','Constraint: constraint_period1, upper_bound = ',Param_Single_Prob(i,1));
str10 = sprintf('%s%.10f','Constraint: constraint_period2, upper_bound = ',Param_Single_Prob(i,2));
str12 = sprintf('%s%.10f','Constraint: constraint_period3, upper_bound = ',Param_Single_Prob(i,3));
str14 = sprintf('%s%.10f','Constraint: constraint_period4, upper_bound = ',Param_Single_Prob(i,4));
str16 = sprintf('%s%.10f','Constraint: constraint_period5, upper_bound = ',Param_Single_Prob(i,5));
Generate the problem statement:
clear problem_statement;
problem_statement = sprintf('%s\n', str1, str2, str3, str4, str5, str6, str7,...
str8, str9, str10, str11, str12, str13, str14, str15, str16, str17, str18, str19);
%Uncomment the following line to open the problem in Toolbox Window:
%tbpsg_toolbox(problem_statement,toolboxstruc_arr);
Optimize problem 3:
[solution_str, outargstruc_arr] = tbpsg_run(problem_statement, toolboxstruc_arr); |
Extract optimal solution for the problem 3:
point_variables = tbpsg_optimal_point_vars(solution_str, outargstruc_arr);
loc = tbpsg_optimal_point_data(solution_str, outargstruc_arr);
Points_Problem_3(:,i)= loc';
Obj_Problem_3(i) = tbpsg_objective(solution_str, outargstruc_arr);
toolboxstruc_arr(size(toolboxstruc_arr,2)+1) = tbpsg_point_pack(['point_opt_point_Problem_3_' int2str(i)],loc,point_variables);
Constr_period1_Problem_3(i) = tbpsg_function_value('pr_pen_period1(0.0, matrix_10000_1)', ['point_opt_point_Problem_3_' int2str(i)], toolboxstruc_arr);
Constr_period2_Problem_3(i) = tbpsg_function_value('prmulti_pen_period2(0.0,matrix_10000_1,matrix_10000_2)', ['point_opt_point_Problem_3_' int2str(i)], toolboxstruc_arr);
Constr_period3_Problem_3(i) = tbpsg_function_value('prmulti_pen_period3(0.0,matrix_10000_1,matrix_10000_2,matrix_10000_3)', ['point_opt_point_Problem_3_' int2str(i)], toolboxstruc_arr);
Constr_period4_Problem_3(i) = tbpsg_function_value('prmulti_pen_period4(0.0,matrix_10000_1,matrix_10000_2,matrix_10000_3,matrix_10000_4)', ['point_opt_point_Problem_3_' int2str(i)], toolboxstruc_arr);
Constr_period5_Problem_3(i) = tbpsg_function_value('prmulti_pen_period5(0.0,matrix_10000_1,matrix_10000_2,matrix_10000_3,matrix_10000_4,matrix_10000_5)', ['point_opt_point_Problem_3_' int2str(i)], toolboxstruc_arr);
Multiple_Probabilities_Problem_3(i) = Constr_period5_Problem_3(i);
Generate fragments of the problem description common for all parameter values within Optimization Problem 4 (Example 3, case 1):
str1 = sprintf('Problem: problem_example_3_case_1, type = minimize');
str2 = sprintf('Objective: objective_problem_4');
str3 = sprintf('0.966736489*pm_pen_g_period_1(0.0, matrix_10000_1)');
str4 = sprintf('+0.903492046*pm_pen_g_period_2(0.0, matrix_10000_2)');
str5 = sprintf('+0.84438509*pm_pen_g_period_3(0.0, matrix_10000_3)');
str6 = sprintf('+0.789144944*pm_pen_g_period_4(0.0, matrix_10000_4)');
str7 = sprintf('+0.737518639*pm_pen_g_period_5(0.0, matrix_10000_5)');
str9 = sprintf('prmulti_pen_5_periods(0.0,matrix_10000_1,matrix_10000_2,matrix_10000_3,matrix_10000_4,matrix_10000_5)');
str10 = sprintf('Box_of_Variables: lowerbounds = point_lowerbounds, upperbounds = point_upperbounds');
str11 = sprintf('Solver: VAN, precision = 9, stages = 30');
Begin loop for Optimization Problem 4 (Example 3,Case 1) over parameter values:
for i=1:1:length(Param_Mult_Prob)
Generate parameter-specific fragment of the problem 4 description:
str8 = sprintf('%s%.7f','Constraint: constraint_mult_prob, upper_bound = ',Param_Mult_Prob(i));
Generate problem statement:
problem_statement = sprintf('%s\n', str1, str2, str3, str4, str5, str6, str7,...
str8, str9, str10, str11);
%Uncomment the following line to open the problem in Toolbox Window:
%tbpsg_toolbox(problem_statement,toolboxstruc_arr);
Optimize problem 4:
[solution_str, outargstruc_arr] = tbpsg_run(problem_statement, toolboxstruc_arr); |
Extract optimal solution for the problem 4:
point_variables = tbpsg_optimal_point_vars(solution_str, outargstruc_arr);
loc = tbpsg_optimal_point_data(solution_str, outargstruc_arr);
Points_Problem_4(:,i)= loc';
Obj_Problem_4(i) = tbpsg_objective(solution_str, outargstruc_arr);
constr_data = tbpsg_constraints_data(solution_str, outargstruc_arr);
Multiple_Probabilities_Problem_4(i) = constr_data(1);
toolboxstruc_arr(size(toolboxstruc_arr,2)+1) = tbpsg_point_pack(['point_opt_point_Problem_4_' int2str(i)],loc,point_variables);
Constr_period1_Problem_4(i) = tbpsg_function_value('pr_pen_period1(0.0, matrix_10000_1)', ['point_opt_point_Problem_4_' int2str(i)], toolboxstruc_arr);
Constr_period2_Problem_4(i) = tbpsg_function_value('prmulti_pen_period2(0.0,matrix_10000_1,matrix_10000_2)', ['point_opt_point_Problem_4_' int2str(i)], toolboxstruc_arr);
Constr_period3_Problem_4(i) = tbpsg_function_value('prmulti_pen_period3(0.0,matrix_10000_1,matrix_10000_2,matrix_10000_3)', ['point_opt_point_Problem_4_' int2str(i)], toolboxstruc_arr);
Constr_period4_Problem_4(i) = tbpsg_function_value('prmulti_pen_period4(0.0,matrix_10000_1,matrix_10000_2,matrix_10000_3,matrix_10000_4)', ['point_opt_point_Problem_4_' int2str(i)], toolboxstruc_arr);
Constr_period5_Problem_4(i) = tbpsg_function_value('prmulti_pen_period5(0.0,matrix_10000_1,matrix_10000_2,matrix_10000_3,matrix_10000_4,matrix_10000_5)', ['point_opt_point_Problem_4_' int2str(i)], toolboxstruc_arr);
Generate fragments of the problem description common for all parameter values within Optimization Problem 5 (Example 3, case 2):
str1 = sprintf('Problem: problem_example_3_case_2, type = minimize');
str2 = sprintf('Objective: objective_problem_5');
str3 = sprintf('0.966736489*pm_pen_g_period_1(0.0, matrix_10000_1)');
str4 = sprintf('+0.903492046*pm_pen_g_period_2(0.0, matrix_10000_2)');
str5 = sprintf('+0.84438509*pm_pen_g_period_3(0.0, matrix_10000_3)');
str6 = sprintf('+0.789144944*pm_pen_g_period_4(0.0, matrix_10000_4)');
str7 = sprintf('+0.737518639*pm_pen_g_period_5(0.0, matrix_10000_5)');
str9 = sprintf('prmulti_pen_5_periods(0.00000000,matrix_10000_1,matrix_10000_2,matrix_10000_3,matrix_10000_4,matrix_10000_5)');
str10 = sprintf('Constraint: constraint_x1_x2, lower_bound = 0, upper_bound = 0, linearize = 0');
str11 = sprintf('linear_x1_x2(matrix_x1_x2)');
str12 = sprintf('Constraint: constraint_x2_x3, lower_bound = 0, upper_bound = 0, linearize = 0');
str13 = sprintf('linear_x2_x3(matrix_x2_x3)');
str14 = sprintf('Constraint: constraint_x3_x4, lower_bound = 0, upper_bound = 0, linearize = 0');
str15 = sprintf('linear_x3_x4(matrix_x3_x4)');
str16 = sprintf('Constraint: constraint_x4_x5, lower_bound = 0, upper_bound = 0, linearize = 0');
str17 = sprintf('linear_x4_x5(matrix_x4_x5)');
str18 = sprintf('Box_of_Variables: lowerbounds = point_lowerbounds, upperbounds = point_upperbounds');
str19 = sprintf('Solver: VAN, precision = 9, stages = 30');
Begin loop for Optimization Problem 5 (Example 3,Case 2) over parameter values:
for i=1:1:length(Param_Mult_Prob)
Generate parameter-specific fragment of the problem 5 description:
str8 = sprintf('%s%.7f','Constraint: constraint_mult_prob, upper_bound = ',Param_Mult_Prob(i));
Generate the problem statement:
259 clear problem_statement;
260 problem_statement = sprintf('%s\n', str1, str2, str3, str4, str5, str6, str7,...
261 str8, str9, str10, str11, str12, str13, str14, str15, str16, str17, str18, str19);
%Uncomment the following line to open the problem in Toolbox Window:
%tbpsg_toolbox(problem_statement,toolboxstruc_arr);
Optimize problem 5:
[solution_str, outargstruc_arr] = tbpsg_run(problem_statement, toolboxstruc_arr); |
Extract optimal solution for the problem 5:
point_variables = tbpsg_optimal_point_vars(solution_str, outargstruc_arr);
loc = tbpsg_optimal_point_data(solution_str, outargstruc_arr);
Points_Problem_5(:,i)= loc';
Obj_Problem_5(i) = tbpsg_objective(solution_str, outargstruc_arr);
constr_data = tbpsg_constraints_data(solution_str, outargstruc_arr);
Multiple_Probabilities_Problem_5(i) = constr_data(1);
toolboxstruc_arr(size(toolboxstruc_arr,2)+1) = tbpsg_point_pack(['point_opt_point_Problem_5_' int2str(i)],loc,point_variables);
Constr_period1_Problem_5(i) = tbpsg_function_value('pr_pen_period1(0.0, matrix_10000_1)', ['point_opt_point_Problem_5_' int2str(i)], toolboxstruc_arr);
Constr_period2_Problem_5(i) = tbpsg_function_value('prmulti_pen_period2(0.0,matrix_10000_1,matrix_10000_2)', ['point_opt_point_Problem_5_' int2str(i)], toolboxstruc_arr);
Constr_period3_Problem_5(i) = tbpsg_function_value('prmulti_pen_period3(0.0,matrix_10000_1,matrix_10000_2,matrix_10000_3)', ['point_opt_point_Problem_5_' int2str(i)], toolboxstruc_arr);
Constr_period4_Problem_5(i) = tbpsg_function_value('prmulti_pen_period4(0.0,matrix_10000_1,matrix_10000_2,matrix_10000_3,matrix_10000_4)', ['point_opt_point_Problem_5_' int2str(i)], toolboxstruc_arr);
Constr_period5_Problem_5(i) = tbpsg_function_value('prmulti_pen_period5(0.0,matrix_10000_1,matrix_10000_2,matrix_10000_3,matrix_10000_4,matrix_10000_5)', ['point_opt_point_Problem_5_' int2str(i)], toolboxstruc_arr);
Results of calculations are presented graphically and in form of tables:
The program builds the following tables (see printout at the end of this section):
• | Tables 1 - 5 showing optimal attachment points, corresponding credit ratings (BBB, A, AA, AAA) for Problem 1 (Example 1, Case 1), Problem 2 (Example 1, Case 2), Problem 3 (Example 2), Problem 4 (Example 3, Case 1), and Problem 5 (Example 3, Case 2); |
• | Table 6 comparing attachment points for the optimal point of Problem 1 (with linear objective) with attachment points for the optimal point of Problem 4 (with partial moments objective). The attachment points in both problems almost coincide ; |
• | Table 7 comparing attachment points for the optimal point of Problem 2 (with linear objective) with attachment points for the optimal point of Problem 5 (with partial moments objective). The attachment points in both problems almost coincide ; |
• | Table 8 showing dependence of default probabilities of CDO tranche vs. rating for Problem 1- 5; |
• | Tables 9 - 13 showing dependence of single-period default probabilities at period t = 1… 5, vs. ratings for Problems 1 - 5. |
Tables are presented in the command window and saved in the text file Step-up_CDO_I_Output.txt.
The program builds the following graphs (see printout at the end of this section):
• | Figures 1 - 5 showing optimal attachment points, corresponding credit ratings (BBB, A, AA, AAA) for Problem 1 (Example 1, Case 1), Problem 2 (Example 1, Case 2), Problem 3 (Example 2), Problem 4 (Example 3, Case 1), and Problem 5 (Example 3, Case 2); |
• | Figures 6 - 7 displaying Default Probabilities of CDO Tranche vs. Ratings for Problem 1- 5; |
• | Figures 8 - 12 showing dependence of single-period default probabilities at period t = 1… 5, vs. ratings for Problems 1 - 5. |
Table 1. Example 1, Case 1: Attachment Points vs. Rating
Rating Attach.Point 1 Attach.Point 2 Attach.Point 3 Attach.Point 4 Attach.Point 5
BBB 0.151384 0.182272 0.223295 0.257561 0.291023
A 0.182111 0.214768 0.258687 0.293436 0.329955
AA 0.187741 0.226512 0.272201 0.318533 0.343790
AAA 0.225869 0.255470 0.294241 0.323842 0.367117
Table 2. Example 1, Case 2: Attachment Points vs. Rating
Rating Attach.Point 1 Attach.Point 2 Attach.Point 3 Attach.Point 4 Attach.Point 5
BBB 0.263996 0.263996 0.263996 0.263996 0.263996
A 0.303893 0.303893 0.303893 0.303893 0.303893
AA 0.321268 0.321268 0.321268 0.321268 0.321268
AAA 0.349099 0.349099 0.349099 0.349099 0.349099
Table 3. Example 2: Attachment Points vs. Rating
Rating Attach.Point 1 Attach.Point 2 Attach.Point 3 Attach.Point 4 Attach.Point 5
BBB 0.158945 0.190315 0.227799 0.254987 0.281692
A 0.186293 0.221525 0.266409 0.291184 0.322072
AA 0.216055 0.240669 0.275579 0.311454 0.342342
AAA 0.231422 0.261136 0.305409 0.325404 0.359778
Table 4. Example 3, Case 1: Attachment Points vs. Rating
Rating Attach.Point 1 Attach.Point 2 Attach.Point 3 Attach.Point 4 Attach.Point 5
BBB 0.147523 0.181628 0.221364 0.264479 0.291023
A 0.181145 0.213481 0.265283 0.288932 0.329955
AA 0.194015 0.226512 0.271557 0.314189 0.342342
AAA 0.229086 0.255470 0.292310 0.323842 0.367117
Table 5. Example 3, Case 2: Attachment Points vs. Rating
Rating Attach.Point 1 Attach.Point 2 Attach.Point 3 Attach.Point 4 Attach.Point 5
BBB 0.263996 0.263996 0.263996 0.263996 0.263996
A 0.303893 0.303893 0.303893 0.303893 0.303893
AA 0.321268 0.321268 0.321268 0.321268 0.321268
AAA 0.349099 0.349099 0.349099 0.349099 0.349099
Table 6. Comparison of Attachment Points: Example 1, Case 1 vs. Example 3, Case 1
Rating Attachment Points Example 1,Case 1 Example 3,Case 1 Discrepancy
BBB Attachment Point 1 0.151384 0.147523 2.550478%
BBB Attachment Point 2 0.182272 0.181628 0.353045%
BBB Attachment Point 3 0.223295 0.221364 0.864553%
BBB Attachment Point 4 0.257561 0.264479 2.685821%
BBB Attachment Point 5 0.291023 0.291023 0.000000%
A Attachment Point 1 0.182111 0.181145 0.530035%
A Attachment Point 2 0.214768 0.213481 0.599251%
A Attachment Point 3 0.258687 0.265283 2.549751%
A Attachment Point 4 0.293436 0.288932 1.535088%
A Attachment Point 5 0.329955 0.329955 0.000000%
AA Attachment Point 1 0.187741 0.194015 3.341902%
AA Attachment Point 2 0.226512 0.226512 0.000000%
AA Attachment Point 3 0.272201 0.271557 0.236407%
AA Attachment Point 4 0.318533 0.314189 1.363636%
AA Attachment Point 5 0.343790 0.342342 0.421151%
AAA Attachment Point 1 0.225869 0.229086 1.424501%
AAA Attachment Point 2 0.255470 0.255470 0.000000%
AAA Attachment Point 3 0.294241 0.292310 0.656096%
AAA Attachment Point 4 0.323842 0.323842 0.000000%
AAA Attachment Point 5 0.367117 0.367117 0.000000%
Table 7. Comparison of Attachment Points: Example 1, Case 2 vs. Example 3, Case 2
Rating Attachment Points Example 1,Case 2 Example 3,Case 2 Discrepancy
BBB Attachment Point 1 0.263996 0.263996 0.000000%
BBB Attachment Point 2 0.263996 0.263996 0.000000%
BBB Attachment Point 3 0.263996 0.263996 0.000000%
BBB Attachment Point 4 0.263996 0.263996 0.000000%
BBB Attachment Point 5 0.263996 0.263996 0.000000%
A Attachment Point 1 0.303893 0.303893 0.000000%
A Attachment Point 2 0.303893 0.303893 0.000000%
A Attachment Point 3 0.303893 0.303893 0.000000%
A Attachment Point 4 0.303893 0.303893 0.000000%
A Attachment Point 5 0.303893 0.303893 0.000000%
AA Attachment Point 1 0.321268 0.321268 0.000000%
AA Attachment Point 2 0.321268 0.321268 0.000000%
AA Attachment Point 3 0.321268 0.321268 0.000000%
AA Attachment Point 4 0.321268 0.321268 0.000000%
AA Attachment Point 5 0.321268 0.321268 0.000000%
AAA Attachment Point 1 0.349099 0.349099 0.000000%
AAA Attachment Point 2 0.349099 0.349099 0.000000%
AAA Attachment Point 3 0.349099 0.349099 0.000000%
AAA Attachment Point 4 0.349099 0.349099 0.000000%
AAA Attachment Point 5 0.349099 0.349099 0.000000%
Table 8. Default Probabilities of CDO Tranche vs. Ratings for Problems 1 - 5
Rating Problem 1 Problem 2 Problem 3 Problem 4 Problem 5
BBB 0.028100 0.027900 0.027800 0.028000 0.027900
A 0.007100 0.007100 0.007000 0.007100 0.007100
AA 0.003600 0.003600 0.003600 0.003600 0.003600
AAA 0.001200 0.001200 0.001177 0.001200 0.001200
Table 9. Single-Period Default Probabilities in Problem 1
Rating Period 1 Period 2 Period 3 Period 4 Period 5
BBB 0.007200 0.006800 0.005700 0.005300 0.003100
A 0.001600 0.001900 0.001800 0.001400 0.000400
AA 0.001100 0.000900 0.000700 0.000200 0.000700
AAA 0.000300 0.000300 0.000300 0.000200 0.000100
Table 10. Single-Period Default Probabilities in Problem 2
Rating Period 1 Period 2 Period 3 Period 4 Period 5
BBB 0.000024 0.000264 0.001874 0.007138 0.018600
A 0.000000 0.000000 0.000455 0.001505 0.005140
AA 0.000000 0.000000 0.000164 0.000485 0.002952
AAA 0.000000 0.000000 0.000049 0.000206 0.000945
Table 11. Single-Period Default Probabilities in Problem 3
Rating Period 1 Period 2 Period 3 Period 4 Period 5
BBB 0.005300 0.005200 0.005400 0.006700 0.005200
A 0.001300 0.001000 0.001100 0.002200 0.001400
AA 0.000600 0.000500 0.000900 0.000900 0.000700
AAA 0.000144 0.000217 0.000316 0.000200 0.000300
Table 12. Single-Period Default Probabilities in Problem 4
Rating Period 1 Period 2 Period 3 Period 4 Period 5
BBB 0.005300 0.006600 0.005800 0.003700 0.003400
A 0.001300 0.002200 0.001000 0.001900 0.000300
AA 0.000600 0.000900 0.000800 0.000500 0.000600
AAA 0.000144 0.000300 0.000400 0.000200 0.000100
Table 13. Single-Period Default Probabilities in Problem 5
Rating Period 1 Period 2 Period 3 Period 4 Period 5
BBB 0.005300 0.000264 0.001874 0.007138 0.018600
A 0.001300 0.000000 0.000455 0.001505 0.005140
AA 0.000600 0.000000 0.000164 0.000485 0.002952
AAA 0.000144 0.000000 0.000049 0.000206 0.000945
Figure 1. Attachment Points for the Optimal Solution of Problem 1
Figure 2. Attachment Points for the Optimal Solution of Problem 2
Figure 3. Attachment Points for the Optimal Solution of Problem 3
Figure 4. Attachment Points for the Optimal Solution of Problem 4
Figure 5. Attachment Points for the Optimal Solution of Problem 5
Figure 6. Default Probabilities of CDO Tranche vs. Ratings
Figure 7. Default Probabilities of CDO Tranche vs. Ratings
Figure 8. Single-Period Default Probabilities vs. Ratings for Problem 1
Figure 9. Single-Period Default Probabilities vs. ratings for Problem 2
Figure 10. Single-Period Default Probabilities vs. ratings for Problem 3
Figure 11. Single-Period Default Probabilities vs. ratings for Problem 4
Figure 12. Single-Period Default Probabilities vs. ratings for Problem 5