-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCredit.java
More file actions
79 lines (44 loc) · 1.57 KB
/
Credit.java
File metadata and controls
79 lines (44 loc) · 1.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
package eWAGI_Firms;
public class Credit {
int creditorID;
int bankID;
double initialDebtLevel;
double currentDebtLevel;
double exposureAtRisk;
double interestRate;
double interestPayment;
double installmentPayment;
int repaymentPeriod;
double riskOfDefault;
double collateral=0;
double expectedLossGivenDefault = 1.0;
boolean restructuring = false;
boolean restructured = false;
boolean defaulted = false;
boolean justGranted = true;
int debtRestructuringCounter;
double interestRateMonthly;
int iterationPerYear = 12;
double v =0.1;
BalanceSheet balanceSheetFirm;
Credit(int creditorID,int bankID, double initialDebtLevel, double interestRate, int repaymentPeriod, BalanceSheet balanceSheetFirm ){
this.initialDebtLevel = initialDebtLevel;
this.currentDebtLevel = initialDebtLevel;
this.interestRate = interestRate;
this.interestRateMonthly = interestRate/iterationPerYear;
this.installmentPayment = 0;
this.riskOfDefault = 0.0;
this.balanceSheetFirm = balanceSheetFirm;
this.repaymentPeriod = repaymentPeriod;
if(repaymentPeriod > 0) {
this.installmentPayment = initialDebtLevel / (1.0*repaymentPeriod);
}
}
void riskAssesment() {
if(balanceSheetFirm.equity>0)
riskOfDefault = Math.max(3e-4,1- Math.exp(-v*(balanceSheetFirm.liabilities.totalDebt)/balanceSheetFirm.equity));
else
riskOfDefault = 1.0;
exposureAtRisk = riskOfDefault*expectedLossGivenDefault*currentDebtLevel;
}
}