8&computedmethod_name. = 0;
10CALL PMXELEM(stresstest_coef,
"DEFAULT_STATE_INDEX_CMatrix", 1, DEFAULT_STATE_INDEX_CMatrix, rc4);
12 put
"ERROR: Unable to parse the parameter DEFAULT_STATE_INDEX_CMatrix.";
14if CREDIT_STATE=DEFAULT_STATE_INDEX_CMatrix then
do;
15 AlreadyDefaultedBin=1;
17STAGE2_Contribution = 0;
18STAGE3_Contribution = 0;
21if AlreadyDefaultedBin NE 1 then
do;
22 do t = 1 to &period_cnt.;
25 b_tr11=GET_QUERYVAL_SCEN(
'TR_11',
'Value',t,
"&Scenario_base.");
26 b_tr12=GET_QUERYVAL_SCEN(
'TR_12',
'Value',t,
"&Scenario_base.");
27 b_tr21=GET_QUERYVAL_SCEN(
'TR_21',
'Value',t,
"&Scenario_base.");
28 b_tr22=GET_QUERYVAL_SCEN(
'TR_22',
'Value',t,
"&Scenario_base.");
29 b_tr13=GET_QUERYVAL_SCEN(
'TR_13',
'Value',t,
"&Scenario_base.");
30 b_tr23=GET_QUERYVAL_SCEN(
'TR_23',
'Value',t,
"&Scenario_base.");
31 stage3_frc_base=GET_QUERYVAL_SCEN(
'STG3_FRC',
'Value',t,
"&Scenario_base.");
35 a_tr11=GET_QUERYVAL_SCEN(
'TR_11',
'Value',t,
"&Scenario_adv.");
36 a_tr12=GET_QUERYVAL_SCEN(
'TR_12',
'Value',t,
"&Scenario_adv.");
37 a_tr21=GET_QUERYVAL_SCEN(
'TR_21',
'Value',t,
"&Scenario_adv.");
38 a_tr22=GET_QUERYVAL_SCEN(
'TR_22',
'Value',t,
"&Scenario_adv.");
39 a_tr13=GET_QUERYVAL_SCEN(
'TR_13',
'Value',t,
"&Scenario_adv.");
40 a_tr23=GET_QUERYVAL_SCEN(
'TR_23',
'Value',t,
"&Scenario_adv.");
41 stage3_frc_adv=GET_QUERYVAL_SCEN(
'STG3_FRC',
'Value',t,
"&Scenario_adv.");
45 w_adv = (max(6-tk,0))/6;
52 if activationScenario=
"&Scenario_base." then
do;
59 tmp11=b_tr11*( 0 + w_base*b_tr13 );
60 tmp21=b_tr21*( 0 + w_base*b_tr13 );
61 tmp12=b_tr12*( 0 + w_base*b_tr23 );
62 tmp22=b_tr22*( 0 + w_base*b_tr23 );
64 else if activationScenario=
"&Scenario_adv." then
do;
68 tmp11=a_tr11*( w_adv*a_tr13 + 0 );
69 tmp21=a_tr21*( w_adv*a_tr13 + 0 );
70 tmp12=a_tr12*( w_adv*a_tr23 + 0 );
71 tmp22=a_tr22*( w_adv*a_tr23 + 0 );
77 tmp11=a_tr11*( w_adv*a_tr13 + w_base*b_tr13 );
78 tmp21=a_tr21*( w_adv*a_tr13 + w_base*b_tr13 );
79 tmp12=a_tr12*( w_adv*a_tr23 + w_base*b_tr23 );
80 tmp22=a_tr22*( w_adv*a_tr23 + w_base*b_tr23 );
88 dsc_factor = 1.0 / (1+EFFECTIVE_INTEREST_RT)**t;
90 if t < (&ft.+1) then
do;
91 if activationScenario=
"&Scenario_base." then
do;
94 STAGE3_Contribution = STAGE3_Contribution + stage3_frc_base*UNPAID_BALANCE_AMT*LGD*dsc_factor;
97 STAGE3_Contribution = STAGE3_Contribution + stage3_frc_adv*UNPAID_BALANCE_AMT*LGD*dsc_factor;
100 else if t = (&ft.+1) then
do;
101 STAGE1_Contribution = (tmp11+tmp21)*UNPAID_BALANCE_AMT*LGD*dsc_factor;
102 STAGE2_Contribution = (tmp12+tmp22)*UNPAID_BALANCE_AMT*LGD*dsc_factor;
103 prev_stg2 = (tmp12+tmp22);
105 else if t > (&ft.+1) then
do;
106 STAGE2_Contribution = STAGE2_Contribution + ((tmp12+tmp22)-prev_stg2)*UNPAID_BALANCE_AMT*LGD*dsc_factor;
107 prev_stg2 = (tmp12+tmp22);
112 &computedmethod_name. = STAGE1_Contribution + STAGE2_Contribution + STAGE3_Contribution;
115 &computedmethod_name. = UNPAID_BALANCE_AMT*LGD;