Description

MATLAB code

Problem 1

Problem 2

Problem 3

Problem 4

Problem 5

Results

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

 

 

Description

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.

 

MATLAB code

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];

 

Problem 1

 

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);

 

 

 

Problem 2

 

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);

 

 

Problem 3

 

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);

 

Problem 4

 

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);

 

 

 

Problem 5

 

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

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

 

_amg2469

 

Figure 2. Attachment Points for the Optimal Solution of Problem 2

 

_amg2470

 

Figure 3. Attachment Points for the Optimal Solution of Problem 3

 

_amg2471

 

Figure 4. Attachment Points for the Optimal Solution of Problem 4

 

_amg2472

 

Figure 5. Attachment Points for the Optimal Solution of Problem 5

 

_amg2473

 

Figure 6. Default Probabilities of CDO Tranche vs. Ratings

 

_amg2474

 

Figure 7. Default Probabilities of CDO Tranche vs. Ratings

 

_amg2475

 

Figure 8. Single-Period Default Probabilities vs. Ratings for Problem 1

 

_amg2476

 

Figure 9. Single-Period Default Probabilities vs. ratings for Problem 2

 

_amg2477

 

Figure 10. Single-Period Default Probabilities vs. ratings for Problem 3

 

_amg2478

 

Figure 11. Single-Period Default Probabilities vs. ratings for Problem 4

 

_amg2479

 

Figure 12. Single-Period Default Probabilities vs. ratings for Problem 5

 

_amg2480