Bezeichnung des AlgorithmusXEN_Netto_Buchwert_abzueglich_Short_Positionen
KurzbezeichnungAlgorithmus zur Ermittlung des "Netto-Buchwert abzüglich Short-Positionen (NBWAS)"
Verbale Beschreibung/Beispiele

Es werden alle Geschäftsfälle selektiert, deren Restlaufzeit, Währung und direkte Gegenpartei gem. FinRep identisch zu Restlaufzeit, Währung und Gegenpartei des betrachteten Long-Geschäftsfalls sind. Anschließend wird über diese Geschäftsfälle iteriert, um die Summe deren "Netto-Buchwerte inkl. Zinsabgrenzungen (NBW)" zu ermitteln - dabei wird zwischen Long- und Short-Postionen unterschieden. Übersteigt die Summe der Short-Positionen die der Long-Positionen, so wird der Wert 0 zurückgegeben. Sonst wird der Anteil des Geschäftsfalls an der Differenz der Long- und Short-Positionen zurückgegeben. Die Summe der Werte "Netto-Buchwert abzüglich Short-Positionen" über die relevanten Geschäftsfälle ist demnach genau die Differenz der Netto-Buchwerte der Long- minus der Short-Positionen.

Hinweis: Dieser Algorithmus ist auf (auslands-)filialübergreifender Basis mandantenübergreifend durchzuführen.

Kommt vor in/wird verwendet fürWertart_CL
Formale Beschreibung

FUNKTION XEN_Netto_Buchwert_abzueglich_Short_Positionen(AI_Mandant MA, AI_Geschaeftsfall_ID gfId, AI_Stichtag_Datum repDate)

counterparty = SELEKTIERE KR.AI_Einheitennummer_ID VON KR_Kundenrollen MIT KR.AI_Rolle_Code = "Direkte Gegenpartei gem. FinRep (GF)" VON GF_Geschaeftsfall

restlaufzeit = SELEKTIERE GF.GFA168_Vertragliche_Restlaufzeit_Ende_Datum VON GF_Geschaeftsfall

gfkategorie = SELEKTIERE GF.GF00_Geschaeftsfallkategorie_Code VON GF_Geschaeftsfall

bilanzseite = SELEKTIERE GK.GKA01_Bilanzseite_Code VON GK_Geschaeftsfall_Konsolidierungssicht

waehrung = SELEKTIERE GF.GF03_Geschaeftsfall_Waehrung_Code VON GF_Geschaeftsfall

//Hiermit werden alle Geschäftsfälle selektiert, deren Restlaufzeit, Währung und direkte Gegenpartei gem. FinRep identisch zu Restlaufzeit und Gegenpartei des betrachteten Geschäftsfalls sind. Ist die Restlaufzeit gleich NULL, so erfolgt kein Netting, sondern der NBWAS entspricht dem NBW.

WENN(NICHT(ISTLEER(restlaufzeit))) DANN

relevanteGF = SELEKTIERE ALLE GF.AI_Geschaeftsfall_ID MIT (counterparty ISTGLEICH KR.AI_Einheitennummer_ID VON KR_Kundenrollen MIT KR.AI_Rolle_Code ISTGLEICH "Direkte Gegenpartei gem. FinRep (GF)") UND (GF.GFA168_Vertragliche_Restlaufzeit_Ende_Datum ISTGLEICH restlaufzeit) UND (GF. GF03_Geschaeftsfall_Waehrung_Code ISTGLEICH waehrung) UND NICHT(GF.AI_Geschaeftsfall_ID ISTGLEICH gfIdVON GF_Geschaeftsfall

SONST

relevanteGF = NULL

ENDE

shortKZ = SELEKTIERE GF.GF40_Short_Position_Kennzeichen VON GF_Geschaeftsfall

netto_bw = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT GFW.AI_Wertart_Code ISTGLEICH "Netto-Buchwert inkl. Zinsabgrenzungen (NBW)"

WENN(gfkategorie ENTHAELT ("Einmalkredit (exkl. Kreditlinie) (X)", "Kreditlinie (Y)", "Wechselkredit (B)", "Barvorlage (E)", "Operating Leasing (F)", "Finance Leasing (G)", "Kreditkartenkredit (C)", "revolvierender Kredit (exkl. Überziehungskredit) (V)", "Überziehungskredit (W)", "Wertpapiere (H)", "Investmentfonds (I)", "Verbriefung (J)", "Sonstige Forderungen (AB)" ODER (gfkategorie ENTHAELT ("Sonstige Aktiva/Passiva aus Zwischenkonten (T)", "Sonstige Aktiva/Passiva aus Schwebender Verrechnung (U)") UND bilanzseite ISTGLEICH "Aktiv in der Bilanz (AKT)"))  DANN

WENN(shortKZ ISTGLEICH FALSCH UND netto_bw > 0) DANN

summe_long = netto_bw

summe_short = 0

//Iteration über alle relevanten Geschäftsfälle, um die Summe der Long- bzw. der Short-Positionen zu ermitteln

ITERIERE relGf von 1 bis Anzahl(relevanteGF)

short_kz_rel = SELEKTIERE GF.GF40_Short_Position_Kennzeichen VON GF_Geschaeftsfall MIT GF.AI_Geschaeftsfall_ID ISTGLEICH relGf

netto_bw_rel = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT (GFW.AI_Wertart_Code ISTGLEICH "Netto-Buchwert inkl. Zinsabgrenzungen (NBW)" UND AI_Geschaeftsfall_ID ISTGLEICH relGf)

gfkategorie_rel = SELEKTIERE GF.GF00_Geschaeftsfallkategorie_Code VON GF_Geschaeftsfall MIT GF.AI_Geschaeftsfall_ID ISTGLEICH relGf

WENN(gfkategorie_rel ENTHAELT ("Einmalkredit (exkl. Kreditlinie) (X)", "Kreditlinie (Y)", "Wechselkredit (B)", "Barvorlage (E)", "Operating Leasing (F)", "Finance Leasing (G)", "Kreditkartenkredit (C)", "revolvierender Kredit (inkl. Überziehungskredit) (D)", "revolvierender Kredit (exkl. Überziehungskredit) (V)", "Überziehungskredit (W)", "Wertpapiere (H)", "Investmentfonds (I)", "Verbriefung (J)")  DANN

WENN(short_kz_rel ISTGLEICH WAHR) DANN

summe_short  = summe_short  + netto_bw_rel

SONST

summe_long = summe_long + netto_bw_rel

ENDE

ENDE

ITERATION ENDE

WENN(summe_short >= summe_long) DANN

//Übersteigt die Summe der Short-Positionen die der Long-Positionen, so wird der Wert 0 zurückgegeben

rValue = 0

SONST

//Sonst wird der Anteil des Geschäftsfalls an der Differenz der Long- und Short-Positionen zurückgegeben. Die Summe der Werte "Netto-Buchwert abzüglich Short-Positionen" über die relevanten Geschäftsfälle ist demnach genau die Differenz der Netto-Buchwerte der Long- minus der Short-Positionen.

rValue = netto_bw * (summe_longsumme_short) / summe_long

ENDE

ENDE

RUECKGABE rValue

ENDE

FUNKTIONSENDE

  • No labels