Listenfunktionen
Einige Funktionen in MM-Talk liefern nicht nur ein Objekt zurück, sondern Listen von Objekten. Solche Funktionen spielen besonders als Präformeln in Tabellen oder bei der Erstellung von Marktindikatoren eine wichtige Rolle. Listen werden bei der Typisierung durch einen Ausdruck der Form "Liste(<Typ>)" beschrieben, wobei <Typ> eine Typisierung der Listenelemente ist.
Listen müssen nicht notwendigerweise Einträge haben, sondern können auch leer sein. Wird die Funktion "WP" z. B. auf einem Ordner angewendet, liefert sie eine Liste der in diesem Ordner enthaltenen Wertpapiere; ist der Ordner leer, ist das Ergebnis der Funktion eine leere Liste.
Jede herkömmliche Funktion, wie z. B. "WP" oder "Name", hat eine doppelte Auswertungssemantik (und Typisierung):
- Eine "herkömmliche" Funktion kann auf das Objekt angewendet werden, für das sie vorgesehen ist. Die Formel "Wertpapier.Name" liefert z. B als Ergebnisobjekt den Namen des Wertpapiers.
Wird eine solche "herkömmliche" Funktion auf eine Liste angewendet, z. B. "Liste(Wertpapier).Name", erhält die Funktion eine Listenextension. Die Funktion "#Name" wird dann auf alle Elemente der Liste angewendet. Die so erhaltenen Ergebnisse werden wieder in einer Liste zusammengestellt. Sind die einzelnen Ergebnisse selbst auch listenwertig, werden diese Listen aneinandergefügt (s. Beispiele).
Die Listenextension bezieht sich immer nur auf das erste Argument (das vor dem Punkt steht), weitere Parameter werden immer als Listen übergeben.
Die meisten Listenfunktionen werden auf die Liste selbst angewendet, d. h., sie haben also keine Listenextensionssemantik. Ob es sich um eine Funktion mit Listenextensionssemantik handelt, zeigt die Deklaration "IsListFunction" an, die für jede Funktion hinterlegt ist.
Makros können sowohl die eine als auch die andere Bedeutung haben. Für alle benutzerdefinierten Makros können Sie daher selbst festlegen, ob dieses Makro eine Listenextensionssemantik besitzt oder nicht (Kontrollkästchen "Listenfunktion" auf der Registerkarte "Deklaration").
Beispiele
- Die Formel "WP.Name" liefert, z. B. auf einen Ordner angewendet, eine Liste mit den Namen aller im Ordner enthaltenen Wertpapiere. Die Funktion "WP" liefert zuerst eine Liste von Wertpapieren. Die Funktion "Name" wiederum ist auf Wertpapiere definiert und gibt für jedes Wertpapier den Namen zurück. Die so ermittelten Ergebnisse werden in einer Liste zusammengestellt.
- Die Formel "WP.OOS" liefert, z. B. auf einen Ordner angewendet, eine Liste aller Optionen und Optionsscheine, die zu den im Ordner enthaltenen Wertpapieren verfügbar sind. Die Funktion "WP" liefert zuerst eine Liste von Wertpapieren. Die Funktion "OOS" wiederum liefert für jedes Wertpapier eine Liste aller zu diesem Papier verfügbaren Optionen und Optionsscheine. Die so erzeugten Listen werden zu einer neuen Liste zusammengestellt.