Diese Methode hilft dabei herauszufinden wieviele junge Aktien man bei einer Kapitalerhöhung nur durch den Verkauf von Bezugsrechten kaufen kann ohne neues Geld zu investieren.
Die Methode gewinnbeteiligungAb prüft ab wann die Junge Aktie gewinnbeteiligt ist und errechnet den Faktor dafür.
Danach werden die bezahlbaren jungen Aktien berechnet und die Restlichen Bezugsrechte die verkauft werden können.
Die Abrechnung stellt beide Posten gegeneinander und berechnet den Restwert der nach der Operation übrig bleibt.
Hierzu auch:
https://de.wikipedia.org/wiki/Op%C3%A9ration_blanche
//Beispieldaten Opération blanche
double grundkaptitalErhöhung = 16000000;
double grundkapitalVorher = 56000000;
double grundkapitalNachher = 76000000;
double dividende = 1.20;
double aktienBestandSTK = 600;
double aktienkursAlt = 90;
double aktienkursNeu = 70;
string gewinnbeteiligtAb = "September";
double divNachteil = gewinnBeteiligungAb(gewinnbeteiligtAb, dividende);
double returnBlancheJungeAktien = operationBlancheErwerbJungeAktien(grundkaptitalErhöhung, grundkapitalVorher, grundkapitalNachher, aktienBestandSTK, aktienkursAlt, aktienkursNeu, divNachteil);
double returnBlancheVerkaufBezugsrechte = operationBlancheVerkaufBezugsrechte(grundkaptitalErhöhung, grundkapitalVorher, aktienBestandSTK,returnBlancheJungeAktien);
double returnBlancheAbrechnung = operationBlancheAbrechnung(aktienkursNeu, returnBlancheJungeAktien, returnBlancheVerkaufBezugsrechte);
//Junge Aktien Gewinnbeteiligt ab Monat X
public static double gewinnBeteiligungAb(string gewinnbeteiligtAb, double dividende)
{
double factor = 0;
switch (gewinnbeteiligtAb)
{
case "Januar":
factor = 0;
break;
case "Februar":
factor = 1;
break;
case "März":
factor = 2;
break;
case "April":
factor = 3;
break;
case "Mai":
factor = 4;
break;
case "Juni":
factor = 5;
break;
case "Juli":
factor = 6;
break;
case "August":
factor = 7;
break;
case "September":
factor = 8;
break;
case "Oktober":
factor = 9;
break;
case "November":
factor = 10;
break;
case "Dezember":
factor = 11;
break;
default:
factor = 12;
break;
}
return Math.Round((dividende / 12 * factor),2);
}
//Erwerb junge Aktien durch verkauf von Bezugsrechten
public static double operationBlancheErwerbJungeAktien(double grundkapitalErhöhung, double grundkapitalVorher, double grundkapitalNachher,
double aktienBestand, double aktienkursAlt, double aktienkursNeu, double dividendenNachteil)
{
//Bezugsverhältnis
double bezugsverhältnis = grundkapitalVorher / grundkapitalErhöhung;
//Wert ein Bezugsrecht
double bezugsrecht = (aktienkursAlt - aktienkursNeu - dividendenNachteil) / (bezugsverhältnis + 1);
double bezugsrechtRound = Math.Round(bezugsrecht,2);
//Gesamtwert Bezugsrechte
double gesWertBezugsrechte = aktienBestand * bezugsrechtRound;
double gesWertBezugsrechteRound = Math.Round(gesWertBezugsrechte);
//Anzahl der zu beziehenden neuen Aktien
double eineJungeAktie = (aktienkursNeu + (bezugsverhältnis * bezugsrechtRound));
//Anzahl junge Aktien die gekauft werden können
double anzahlJungeAktien = gesWertBezugsrechte / eineJungeAktie;
double anzahlJungeAktienRound = Math.Round(anzahlJungeAktien);
return anzahlJungeAktienRound;
}
//Verkauf restlicher Bezugsrechte
public static double operationBlancheVerkaufBezugsrechte(double grundkapitalErhöhung, double grundkapitalVorher,
double aktienBestand, double returnBlancheJungeAktien)
{
double bezugsverhältnis = grundkapitalVorher / grundkapitalErhöhung;
double benötigteBezugsrechte = bezugsverhältnis * returnBlancheJungeAktien;
//Anzahl der zu verkaufenden Bezugsrechte
double BezugsrechteVerkauf = aktienBestand - benötigteBezugsrechte;
return BezugsrechteVerkauf;
}
//Abrechnung Gutschrift gegen Belastung
public static double operationBlancheAbrechnung(double aktienkursNeu, double returnBlancheJungeAktien, double returnBlancheVerkaufBezugsrechte)
{
//Gutschrift bei Verkauf der übrigen Bezugsrechte
double tatsächlicherKursBezugsrechte = 4.50;
//Bitte Provision und Courtage beachten, falls vorhanden!
double provision = 0.01;
double courtage = 0.0008;
double bezugsrechteWert = returnBlancheVerkaufBezugsrechte * tatsächlicherKursBezugsrechte;
double gutschrift = bezugsrechteWert - Math.Round((bezugsrechteWert * provision),2) - Math.Round((bezugsrechteWert * courtage),2);
//Belastung bei Kauf der jungen Aktien
double wertJungeAktien = aktienkursNeu * returnBlancheJungeAktien;
double belastung = wertJungeAktien + Math.Round((wertJungeAktien * provision),2);
double verrechnung = gutschrift - belastung;
double verrechnungRound = Math.Round(verrechnung, 2);
return verrechnungRound;
}
4 Kommentare zum Snippet