public ScenarioLifetimePd(ECL_Scenario scenario, Guid eclId, EclType eclType) { _scenario = scenario; this._eclId = eclId; this._eclType = eclType; _scenarioMarginalPd = new ScenarioMarginalPd(_scenario, eclId, this._eclType); }
public bool CheckOverrideDataExist(Guid eclId, EclType eclType) { var qry = Queries.CheckOverrideDataExist(eclId, eclType); var cnt = DataAccess.i.getCount(qry); return(cnt > 0); }
public ProcessECL_Framework(Guid eclId, ECL_Scenario scenario, EclType eclType) { this._eclId = eclId; this._Scenario = scenario; this._eclType = eclType; _sicrWorkings = new SicrWorkings(eclId, this._eclType); }
public CalibrationResult_LGD_HairCut GetLGDHaircutSummaryData(Guid eclId, EclType eclType) { string qry = Queries.GetLGDHaircutSummaryData(eclId, eclType.ToString()); var dt = DataAccess.i.GetData(qry); if (dt.Rows.Count == 0) { return(new CalibrationResult_LGD_HairCut { Debenture = 0, Cash = 0, Inventory = 0, Plant_And_Equipment = 0, Residential_Property = 0, Commercial_Property = 0, Receivables = 0, Shares = 0, Vehicle = 0 }); } DataRow dr = dt.Rows[0]; var itm = new CalibrationResult_LGD_HairCut(); try { itm.Debenture = double.Parse(dr["Debenture"].ToString().Trim()); } catch { itm.Debenture = 0; } try { itm.Cash = double.Parse(dr["Cash"].ToString().Trim()); } catch { itm.Cash = 0; } try { itm.Inventory = double.Parse(dr["Inventory"].ToString().Trim()); } catch { itm.Inventory = 0; } try { itm.Plant_And_Equipment = double.Parse(dr["Plant_And_Equipment"].ToString().Trim()); } catch { itm.Plant_And_Equipment = 0; } try { itm.Residential_Property = double.Parse(dr["Residential_Property"].ToString().Trim()); } catch { itm.Residential_Property = 0; } try { itm.Commercial_Property = double.Parse(dr["Commercial_Property"].ToString().Trim()); } catch { itm.Commercial_Property = 0; } try { itm.Receivables = double.Parse(dr["Receivables"].ToString().Trim()); } catch { itm.Receivables = 0; } try { itm.Shares = double.Parse(dr["Shares"].ToString().Trim()); } catch { itm.Shares = 0; } try { itm.Vehicle = double.Parse(dr["Vehicle"].ToString().Trim()); } catch { itm.Vehicle = 0; } return(itm); }
public ProcessECL_EAD(Guid eclId, EclType eclType) { this._eclId = eclId; this._eclType = eclType; paymentScheduleProjections = new List <PaymentSchedule>(); reportingDate = GetReportingDate(eclType, eclId); }
public SicrInputWorkings(Guid eclId, EclType eclType) { this._eclId = eclId; this._eclType = eclType; //_scenarioLifetimePd = new ScenarioLifetimePd(ECL_Scenario.Best, this._eclId); //_scenarioRedefaultLifetimePd = new ScenarioRedefaultLifetimePds(ECL_Scenario.Best, this._eclId); //_pdMapping = new PDMapping(this._eclId); }
public ScenarioMarginalPd(ECL_Scenario scenario, Guid eclId, EclType eclType) { _scenario = scenario; this._eclId = eclId; this._eclType = eclType; _pdInternalModelWorkings = new PdInternalModelWorkings(this._eclId, this._eclType); _vasicekWorkings = new VasicekWorkings(_scenario, this._eclId, this._eclType); }
public CreditIndex(Guid eclId, EclType eclType) { this._eclId = eclId; this._eclType = eclType; _vasicekWorkings = new VasicekWorkings(ECL_Scenario.Best, this._eclId, this._eclType); _indexForecastBest = new IndexForecastWorkings(ECL_Scenario.Best, this._eclId, this._eclType); _indexForecastOptimistics = new IndexForecastWorkings(ECL_Scenario.Optimistic, this._eclId, this._eclType); _indexForecastDownturn = new IndexForecastWorkings(ECL_Scenario.Downturn, this._eclId, this._eclType); }
public SicrWorkings(Guid eclId, EclType eclType) { this.eclId = eclId; this._eclType = eclType; _lifetimeEadWorkings = new LifetimeEadWorkings(eclId, this._eclType); _sicrInputs = new SicrInputWorkings(eclId, this._eclType); _pdMapping = new PDMapping(eclId, this._eclType); scenarioLifetimeLGD = new ScenarioLifetimeLGD(eclId, this._eclType); _processECL_LGD = new ProcessECL_LGD(eclId, eclType); }
public ScenarioLifetimeCollateral(ECL_Scenario scenario, Guid eclId, EclType eclType) { _scenario = scenario; this._eclId = eclId; this._eclType = eclType; _lifetimeEad = new LifetimeEadWorkings(eclId, this._eclType); _irFactorWorkings = new IrFactorWorkings(eclId, this._eclType); _updatedFSVsWorkings = new UpdatedFSVsWorkings(eclId, this._eclType); _scenarioLifetimeLGD = new ScenarioLifetimeLGD(eclId, this._eclType); }
public static string Get_nonInternalmodelInputQuery(Guid eclId, EclType eclType, int month) { var subQry = ""; if (month > 0) { subQry = $" and Month ={month} "; } return($"SELECT Month, PdGroup, MarginalDefaultRate, CummulativeSurvival FROM {eclType.ToString()}EclPdAssumptionNonInternalModels where {eclType.ToString()}EclId='{eclId.ToString()}' {subQry}"); }
public ScenarioLifetimeLGD(Guid eclId, EclType eclType, ECL_Scenario _scenario) { this._eclId = eclId; // this._scenario = scenario; this._eclType = eclType; _sicrInputs = new SicrInputWorkings(this._eclId, _eclType); _sicrWorkings = new SicrWorkings(this._eclId, _eclType); _lifetimeEadWorkings = new LifetimeEadWorkings(this._eclId, _eclType); _scenarioLifetimeCollateral = new ScenarioLifetimeCollateral(ECL_Scenario.Best, this._eclId, _eclType); _pdMapping = new PDMapping(this._eclId, _eclType); _creditIndex = new CreditIndex(this._eclId, _eclType); }
private DateTime GetReportingDate(EclType _eclType, Guid eclId) { var ecls = Queries.EclsRegister(_eclType.ToString(), _eclId.ToString()); var dtR = DataAccess.i.GetData(ecls); if (dtR.Rows.Count > 0) { var itm = DataAccess.i.ParseDataToObject(new EclRegister(), dtR.Rows[0]); return(itm.ReportingDate); } return(DateTime.Now); }
public ScenarioEclWorkings(Guid eclId, ECL_Scenario scenario, EclType eclType) { this._eclId = eclId; _scenario = scenario; this._eclType = eclType; _lifetimeEad = new LifetimeEadWorkings(eclId, this._eclType); //_lifetimeLgd = new ScenarioLifetimeLGD(eclId,this._eclType); _irFactorWorkings = new IrFactorWorkings(eclId, this._eclType); _sicrWorkings = new SicrWorkings(eclId, this._eclType); _lifetimeEadWorkings = new LifetimeEadWorkings(eclId, this._eclType); }
private LGDParameters BuildLGDParameter(Guid eclId, DateTime reportingDate, EclType eclType) { var bt_ead = new CalibrationInput_EAD_Behavioural_Terms_Processor(); var bt_ead_data = bt_ead.GetBehaviouralData(eclId, eclType); var obj = new LGDParameters { BasePath = AppSettings.ECLBasePath, Expired = bt_ead_data.Expired, NonExpired = bt_ead_data.NonExpired, ReportDate = reportingDate }; obj.NonExpired = 19; obj.Expired = 26; return(obj); }
public CalibrationResult_EAD_Behavioural GetBehaviouralData(Guid eclId, EclType eclType) { string qry = Queries.GetEADBehaviouralData(eclId, eclType.ToString()); var dt = DataAccess.i.GetData(qry); if (dt.Rows.Count == 0) { return(new CalibrationResult_EAD_Behavioural { Expired = 0, FrequencyExpired = 0, FrequencyNonExpired = 0, NonExpired = 0 }); } DataRow dr = dt.Rows[0]; var itm = new CalibrationResult_EAD_Behavioural(); try { itm.Expired = double.Parse(dr["Assumption_Expired"].ToString().Trim()); } catch { itm.Expired = 0; } try { itm.FrequencyNonExpired = double.Parse(dr["Freq_NonExpired"].ToString().Trim()); } catch { itm.FrequencyNonExpired = 0; } try { itm.FrequencyExpired = double.Parse(dr["Freq_Expired"].ToString().Trim()); } catch { itm.FrequencyExpired = 0; } try { itm.NonExpired = double.Parse(dr["Assumption_NonExpired"].ToString().Trim()); } catch { itm.NonExpired = 0; } return(itm); }
public LifetimeEadWorkings(Guid eclId, EclType eclType) { this._eclId = eclId; this._eclType = eclType; _irFactorWorkings = new IrFactorWorkings(_eclId, _eclType); _sicrInputs = new SicrInputWorkings(this._eclId, _eclType); _processECL_LGD = new ProcessECL_LGD(eclId, eclType); var eclFrameworkAssumptions = GetECLFrameworkAssumptions(); var itm = eclFrameworkAssumptions.FirstOrDefault(o => o.Key == ImpairmentRowKeys.ForwardTransitionStage2to3); try { if (itm != null) { MPD_Default_Criteria = int.Parse(itm.Value) / 30; } } catch { } reportingDate = GetReportingDate(eclType, eclId); }
public List <PD12Months> GetPD12MonthsPD(Guid eclId, EclType eclType) { string qry = Queries.GetPD12MonthsPD(eclId, eclType.ToString()); var dt = DataAccess.i.GetData(qry); if (dt.Rows.Count == 0) { return(new List <PD12Months>()); } var lst = new List <PD12Months>(); for (int i = 0; i < dt.Rows.Count; i++) { DataRow dr = dt.Rows[i]; var itm = new PD12Months(); try { itm.Rating = int.Parse(dr["Rating"].ToString().Trim()); } catch { itm.Rating = 0; } try { itm.Months_PDs_12 = double.Parse(dr["Months_PDs_12"].ToString().Trim()); } catch { itm.Months_PDs_12 = 0; } lst.Add(itm); } return(lst); }
public CalibrationResult_LGD_RecoveryRate GetLGDRecoveryRateData(Guid eclId, EclType eclType) { string qry = Queries.GetLGDRecoveryRateData(eclId, eclType.ToString()); var dt = DataAccess.i.GetData(qry); if (dt.Rows.Count == 0) { return(new CalibrationResult_LGD_RecoveryRate { Corporate_RecoveryRate = 1, Commercial_RecoveryRate = 1, Consumer_RecoveryRate = 1, Overall_RecoveryRate = 1 }); } DataRow dr = dt.Rows[0]; var itm = new CalibrationResult_LGD_RecoveryRate(); try { itm.Corporate_RecoveryRate = double.Parse(dr["Corporate_RecoveryRate"].ToString().Trim()); } catch { itm.Corporate_RecoveryRate = 1; } try { itm.Commercial_RecoveryRate = double.Parse(dr["Commercial_RecoveryRate"].ToString().Trim()); } catch { itm.Commercial_RecoveryRate = 1; } try { itm.Consumer_RecoveryRate = double.Parse(dr["Consumer_RecoveryRate"].ToString().Trim()); } catch { itm.Consumer_RecoveryRate = 1; } try { itm.Overall_RecoveryRate = double.Parse(dr["Overall_RecoveryRate"].ToString().Trim()); } catch { itm.Overall_RecoveryRate = 1; } return(itm); }
/// <summary> /// return index 1= Redefault_Factor /// return index 2= Cure_Rate /// </summary> /// <param name="eclId"></param> /// <param name="eclType"></param> /// <returns></returns> public double[] GetPDRedefaultFactorCureRate(Guid eclId, EclType eclType) { string qry = Queries.GetPDRedefaultFactor(eclId, eclType.ToString()); var dt = DataAccess.i.GetData(qry); if (dt.Rows.Count == 0) { return(new double[] { 0, 0 }); } DataRow dr = dt.Rows[0]; var Redefault_Factor = 0.0; var Cure_Rate = 0.0; var Commercial_CureRate = 0.0; var Consumer_CureRate = 0.0; try { Redefault_Factor = double.Parse(dr["Redefault_Factor"].ToString().Trim()); } catch { Redefault_Factor = 0; } try { Cure_Rate = double.Parse(dr["Cure_Rate"].ToString().Trim()); } catch { Cure_Rate = 0; } try { Commercial_CureRate = double.Parse(dr["Commercial_CureRate"].ToString().Trim()); } catch { Commercial_CureRate = 0; } try { Consumer_CureRate = double.Parse(dr["Consumer_CureRate"].ToString().Trim()); } catch { Consumer_CureRate = 0; } return(new double[] { Redefault_Factor, Cure_Rate, Commercial_CureRate, Consumer_CureRate }); }
public MacroResult_Statistics GetMacroResult_Statistics(Guid eclId, EclType eclType) { string qry = Queries.GetPDStatistics(eclId, eclType.ToString()); var dt = DataAccess.i.GetData(qry); if (dt.Rows.Count == 0) { return(new MacroResult_Statistics()); } var itms = new MacroResult_IndexData(); DataRow dr = dt.Rows[0]; var itm = new MacroResult_Statistics(); try { itm.IndexWeight1 = double.Parse(dr["IndexWeight1"].ToString().Trim()); } catch { itm.IndexWeight1 = 0; } try { itm.IndexWeight2 = double.Parse(dr["IndexWeight2"].ToString().Trim()); } catch { itm.IndexWeight2 = 0; } try { itm.IndexWeight3 = double.Parse(dr["IndexWeight3"].ToString().Trim()); } catch { itm.IndexWeight3 = 0; } try { itm.IndexWeight4 = double.Parse(dr["IndexWeight4"].ToString().Trim()); } catch { itm.IndexWeight4 = 0; } try { itm.Average = double.Parse(dr["Average"].ToString().Trim()); } catch { itm.Average = 0; } try { itm.StandardDev = double.Parse(dr["StandardDev"].ToString().Trim()); } catch { itm.StandardDev = 0; } return(itm); }
public List <MacroResult_IndexData> GetMacroResult_IndexData(Guid eclId, EclType eclType) { string qry = Queries.GetPDIndexData(eclId, eclType.ToString()); var dt = DataAccess.i.GetData(qry); if (dt.Rows.Count == 0) { return(new List <MacroResult_IndexData>()); } var itms = new List <MacroResult_IndexData>(); foreach (DataRow dr in dt.Rows) { var itm = new MacroResult_IndexData(); try { itm.Period = dr["StandardIndex"].ToString(); } catch { itm.Period = ""; } try { itm.StandardIndex = double.Parse(dr["StandardIndex"].ToString().Trim()); } catch { itm.StandardIndex = 0; } try { itm.BfNpl = double.Parse(dr["BfNpl"].ToString().Trim()); } catch { itm.BfNpl = 0; } try { itm.Index = double.Parse(dr["Index"].ToString().Trim()); } catch { itm.Index = 0; } itms.Add(itm); } return(itms); }
private bool RunLGDJob(List <Loanbook_Data> lstRaw, Guid _eclId, EclType _eclType) { //lstRaw = lstRaw.Where(o => o.ContractNo.Contains("182NIFC162940002") || o.ContractId.Contains("182NIFC162940002")).ToList(); //Next Line to be removed //lstRaw = lstRaw.Where(o => o.ContractStartDate == null && o.ContractEndDate == null).Take(5).ToList(); _eclTask = new ECLTasks(_eclId, _eclType); var LGDPreCalc = _eclTask.LGDPreCalculation(lstRaw); Log4Net.Log.Info($"Done with LGD Precalculation - {DateTime.Now}"); var collateral_R = _eclTask.Collateral_OMV_FSV(lstRaw, LGDPreCalc); Log4Net.Log.Info($"Computed Collateral OVM - {DateTime.Now}"); /// /// Save Collateral OMV_FSV /// //Insert to Database ExecuteNative.SaveLGDCollaterals(collateral_R, _eclId, _eclType); Log4Net.Log.Info($"Save LGD Collateral - {DateTime.Now}"); var corTable = _eclTask.CalculateCoR_Main(LGDPreCalc, lstRaw, collateral_R); Log4Net.Log.Info($"Done with Calculate CoR main - {DateTime.Now}"); var accountData = _eclTask.AccountData(lstRaw, LGDPreCalc, collateral_R, corTable); Log4Net.Log.Info($"Done Calculating Account data - {DateTime.Now}"); //Insert to Database ExecuteNative.SaveLGDAccountdata(accountData, _eclId, _eclType); Log4Net.Log.Info($"Saved LGD Account Data - {DateTime.Now}"); return(true); }
private PDParameters BuildPDParameter(Guid eclId, DateTime reportingDate, EclType eclType) { var bt_ead = new CalibrationInput_EAD_Behavioural_Terms_Processor(); var bt_ead_data = bt_ead.GetBehaviouralData(eclId, eclType); var pdCali = new CalibrationInput_PD_CR_RD_Processor().GetPDRedefaultFactorCureRate(eclId, eclType); double readjustmentFactor = pdCali[0]; var obj = new PDParameters { BasePath = AppSettings.ECLBasePath, Expired = bt_ead_data.Expired, NonExpired = bt_ead_data.NonExpired, ReportDate = reportingDate, SandPMapping = "Best Fit", RedefaultAdjustmentFactor = readjustmentFactor }; obj.NonExpired = 19; obj.Expired = 26; obj.RedefaultAdjustmentFactor = 1; return(obj); }
public CalibrationResult_EAD_CCF_Summary GetCCFData(Guid eclId, EclType eclType) { string qry = Queries.GetEADCCFData(eclId, eclType.ToString()); var dt = DataAccess.i.GetData(qry); if (dt.Rows.Count == 0) { return(new CalibrationResult_EAD_CCF_Summary { OD_TotalLimitOdDefaultedLoan = 0, OD_BalanceAtDefault = 0, OD_Balance12MonthBeforeDefault = 0, OD_TotalConversation = 0, OD_CCF = 0, Card_TotalLimitOdDefaultedLoan = 0, Card_BalanceAtDefault = 0, Card_Balance12MonthBeforeDefault = 0, Card_TotalConversation = 0, Card_CCF = 0, Overall_TotalLimitOdDefaultedLoan = 0, Overall_BalanceAtDefault = 0, Overall_Balance12MonthBeforeDefault = 0, Overall_TotalConversation = 0, Overall_CCF = 0 }); } DataRow dr = dt.Rows[0]; var itm = new CalibrationResult_EAD_CCF_Summary(); try { itm.OD_TotalLimitOdDefaultedLoan = double.Parse(dr["OD_TotalLimitOdDefaultedLoan"].ToString().Trim()); } catch { itm.OD_TotalLimitOdDefaultedLoan = 0; } try { itm.OD_BalanceAtDefault = double.Parse(dr["OD_BalanceAtDefault"].ToString().Trim()); } catch { itm.OD_BalanceAtDefault = 0; } try { itm.OD_Balance12MonthBeforeDefault = double.Parse(dr["OD_Balance12MonthBeforeDefault"].ToString().Trim()); } catch { itm.OD_Balance12MonthBeforeDefault = 0; } try { itm.OD_TotalConversation = double.Parse(dr["OD_TotalConversation"].ToString().Trim()); } catch { itm.OD_TotalConversation = 0; } try { itm.OD_CCF = double.Parse(dr["OD_CCF"].ToString().Trim()); } catch { itm.OD_CCF = 0; } try { itm.Card_TotalLimitOdDefaultedLoan = double.Parse(dr["Card_TotalLimitOdDefaultedLoan"].ToString().Trim()); } catch { itm.Card_TotalLimitOdDefaultedLoan = 0; } try { itm.Card_BalanceAtDefault = double.Parse(dr["Card_BalanceAtDefault"].ToString().Trim()); } catch { itm.Card_BalanceAtDefault = 0; } try { itm.Card_Balance12MonthBeforeDefault = double.Parse(dr["Card_Balance12MonthBeforeDefault"].ToString().Trim()); } catch { itm.Card_Balance12MonthBeforeDefault = 0; } try { itm.Card_TotalConversation = double.Parse(dr["Card_TotalConversation"].ToString().Trim()); } catch { itm.Card_TotalConversation = 0; } try { itm.Card_CCF = double.Parse(dr["Card_CCF"].ToString().Trim()); } catch { itm.Card_CCF = 0; } try { itm.Overall_TotalLimitOdDefaultedLoan = double.Parse(dr["Overall_TotalLimitOdDefaultedLoan"].ToString().Trim()); } catch { itm.Overall_TotalLimitOdDefaultedLoan = 0; } try { itm.Overall_BalanceAtDefault = double.Parse(dr["Overall_BalanceAtDefault"].ToString().Trim()); } catch { itm.Overall_BalanceAtDefault = 0; } try { itm.Overall_Balance12MonthBeforeDefault = double.Parse(dr["Overall_Balance12MonthBeforeDefault"].ToString().Trim()); } catch { itm.Overall_Balance12MonthBeforeDefault = 0; } try { itm.Overall_TotalConversation = double.Parse(dr["Overall_TotalConversation"].ToString().Trim()); } catch { itm.Overall_TotalConversation = 0; } try { itm.Overall_CCF = double.Parse(dr["Overall_CCF"].ToString().Trim()); } catch { itm.Overall_CCF = 0; } return(itm); }
public IndexForecastWorkings(ECL_Scenario eCL_Scenario, Guid eclId, EclType eclType) { this._Scenario = eCL_Scenario; this._eclId = eclId; this._eclType = eclType; }
public PdInternalModelWorkings(Guid eclId, EclType eclType) { this._eclType = eclType; this._eclId = eclId; }
public ScenarioLifetimeLGD(Guid eclId, EclType eclType) { this._eclId = eclId; this._eclType = eclType; }
public List <MacroResult_PrincipalComponentSummary> GetMacroResult_PCSummary(Guid eclId, EclType eclType) { string qry = Queries.GetPrincipalComponentSummary(eclId, eclType.ToString()); var dt = DataAccess.i.GetData(qry); if (dt.Rows.Count == 0) { return(new List <MacroResult_PrincipalComponentSummary>()); } var itms = new List <MacroResult_PrincipalComponentSummary>(); foreach (DataRow dr in dt.Rows) { var itm = new MacroResult_PrincipalComponentSummary(); try { itm.PricipalComponentLabelA = dr["PricipalComponentLabelA"].ToString(); } catch { itm.PricipalComponentLabelA = ""; } try { itm.PricipalComponentLabelB = dr["PricipalComponentLabelB"].ToString(); } catch { itm.PricipalComponentLabelB = ""; } try { itm.Value = double.Parse(dr["Value"].ToString().Trim()); } catch { itm.Value = 0; } try { itm.PrincipalComponentIdA = int.Parse(dr["PrincipalComponentIdA"].ToString().Trim()); } catch { itm.PrincipalComponentIdA = 0; } try { itm.PrincipalComponentIdB = int.Parse(dr["PrincipalComponentIdB"].ToString().Trim()); } catch { itm.PrincipalComponentIdB = 0; } itms.Add(itm); } return(itms); }
public IrFactorWorkings(Guid eclId, EclType eclType) { this._eclId = eclId; this._eclType = eclType; }