International Securities Identification Number
aus Wikipedia, der freien Enzyklopädie
Die International Securities Identification Number (ISIN) ist eine zwölfstellige Buchstaben-Zahlen-Kombination und stellt eine Identifikation für ein Wertpapier dar. Wertpapiere können Aktien, Fonds, Schuldverschreibungen (bzw. Anleihe), Optionen oder Futures sein.
Die ISIN identifiziert ein Wertpapier eindeutig, aber nicht den Handel mit einem Wertpapier. Zum Beispiel wird Bayer AG (ISIN DE0005752000) an fünfzehn verschiedenen Börsenplätzen (elektronischer Handel und Parketthandel) in vier verschiedenen Währungen gehandelt.
Die ISINs werden nach und nach weltweit eingeführt. Zur Zeit haben sie viele Staaten als eine weitere Möglichkeit zur Identifikation von Wertpapieren eingeführt. Nur wenige dieser Staaten haben sie bisher zur vorrangigen Identifikation erklärt.
Aufbau der ISIN | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | |
Länder- code |
NSIN | Prüf- ziffer |
Der Aufbau der ISIN ist in der ISO 6166 festgelegt. Die ersten zwei Buchstaben sind der Ländercode des herausgebenden Landes. Dafür wird der ALPHA-2-Code der ISO 3166-1 verwendet. Dann folgen neun Buchstaben und/oder Ziffern, die so genannte NSIN (National Securities Identifying Number). An der letzten Stelle steht eine Prüfziffer.
Die ISIN wird von der jeweiligen nationalen Behörde herausgegeben (National numbering agency, NNA). Im deutschen Börsenhandel wurden Wertpapiere bisher über eine sechsstellige WKN (Wertpapierkennnummer) klassifiziert. Diese wurde am 22. April 2003 durch die ISIN ersetzt.
Deutsche ISINs beginnen mit dem Länderkürzel DE, die folgende NSIN setzt sich aus drei Nullen gefolgt von der bisherigen WKN zusammen. Mit der abschließenden Prüfziffer ergibt sich z. B. für die Bayer AG (WKN 575200) die ISIN DE0005752000. In Österreich beginnen die ISINs mit den Länderkürzel AT gefolgt von derzeit noch vier Nullen dann der eindeutigen Wertpapiernummer und abschließend der Prüfziffer.
Prüfziffer berechnen für DE0005752000 |
||||
---|---|---|---|---|
ISIN ohne Prüfziffer |
Faktor | Produkt | Ziffern für Quersumme |
|
D | 1 | 2 | 2 | 2 |
3 | 1 | 3 | 3 | |
E | 1 | 2 | 2 | 2 |
4 | 1 | 4 | 4 | |
0 | 2 | 0 | 0 | |
0 | 1 | 0 | 0 | |
0 | 2 | 0 | 0 | |
5 | 1 | 5 | 5 | |
7 | 2 | 14 | 1 + 4 | |
5 | 1 | 5 | 5 | |
2 | 2 | 4 | 4 | |
0 | 1 | 0 | 0 | |
0 | 2 | 0 | 0 | |
Quersumme: | 30 | |||
(10-(Quersumme mod 10)) mod 10 | 0 |
Die Prüfziffer wird mittels der sog. Double-Add-Double-Formel berechnet und verifiziert. Die Berechnung basiert auf den ersten elf Zeichen der ISIN - ohne die ja noch zu berechnende Prüfziffer. Die Verifikation kann durch Neuberechnung der Prüfziffer und Vergleich oder aber auch durch Einbezug der Prüfziffer in den Algorithmus erfolgen. In letzterem Fall zeigen das Ergebnis 0 die Korrektheit und alle anderen Resultate einen Fehler an.
- Alle Buchstaben werden durch Zahlen ersetzt. Dafür wird die Position des Buchstaben im Alphabet um neun erhöht, z. B. A = 10, B = 11, .., Z = 35. Alle Ziffern bleiben unverändert.
- Jede zweite Ziffer wird mit zwei multipliziert. Begonnen wird mit der letzten Ziffer vor der Prüfziffer.
- Von dieser Ziffernfolge wird die Quersumme gebildet. Da vorher jede zweite Ziffer verdoppelt wurde (siehe Punkt 2) ergibt sich daraus die Bezeichnung Double-Add-Double.
- Die Prüfziffer ergibt sich aus der Differenz zum nächst größeren Vielfachen von 10. Oder: 10 - (Quersumme mod 10) = Prüfziffer
[Bearbeiten] Beispiele
Bayer AG: ISIN DE0005752000, WKN 575200
Treasury Corporation of Victoria, 5 3/4%, 2005-2016: ISIN AU0000XVGZA3
[Bearbeiten] Double-Add-Double: Prozedurale Java-Implementierung
Da die Zeichenkettenverarbeitung auf Rechnern meist sehr viel teurer als Ganzzahlarithmetik ist, sollte in der programmtechnischen Umsetzung der Double-Add-Double-Formel auf die explizite Ausführung der beschriebenen Zeichersetzungen und Mengenbildungen verzichtet werden. Die folgende Java-Implementierung folgt diesem Grundsatz. Sie nutzt außerdem aus, dass lediglich die Restklasse der Quersumme modulo 10, d.h. die Einerstelle ihrer Dezimaldarstellung, und nicht ihr tatsächlicher Zahlenwert von Interesse ist.
/** * Berechnet die Double-Add-Double-Prüfziffer der Zeichenkette src (Länge = 11) * bzw. prüft deren Gültigkeit (Länge = 12, Ergebnis 0 wenn die Prüfziffer korrekt ist, * ansonsten undefiniert). */ public static int dad(String src) { boolean check = src.length() == 12; int s = 0; int a = check? 1 : 2; int b = 3 - a; for( int i = src.length() - 1; i >= 0; i-- ) { int c = src.charAt(i); if( src.substring(i,i+1).matches("\\D") ) { // Es ist ein Buchstabe c -= ( 'A' - 10 ); s += b*(c/10) + a*c + (a-1)*(c%10)/5; } else { // Es ist eine Ziffer c -= '0'; s += a*c + (a-1)*(c/5); a = b; b = 3 - a; } } s %= 10; return (10 - s%10) % 10; }