Verkürzte Notation
Bei der verkürzten MM‑Talk-Notation werden die Parameter einer Funktion durch andere Funktionen ausgedrückt. So können Sie durch geschicktes Verschachteln selbst lange Formeln erheblich verkürzen.
Im Abschnitt Makros erstellen wurde eine Formel entwickelt, die eine Zeitreihe aller Kurse liefert, die im Beobachtungszeitraum über n Perioden hinweg gestiegen sind.
$Zeitreihe:=Object;
$ZeitreiheVorN:=$Zeitreihe.Before[$N];
$Gestiegen:=$Zeitreihe>$ZeitreiheVorN;
$Gestiegen.Count[$Zeitraum]
Mit der verkürzten MM‑Talk-Notation kann die gleiche Formel in einer einzigen Zeile geschrieben werden:
- Als Eingabeobjekt wird eine Zeitreihe erwartet, die mit einer anderen Zeitreihe verglichen werden soll. Die entsprechende Funktion lautet "Greater[]".
Das Argument der Funktion "Greater[]" ist die in die Vergangenheit verschobene Zeitreihe; diese wird mit der Funktion "Before[]" beschrieben. Das Argument der Funktion "Before[]" ist der Zeitraum, um den die Zeitreihe verschoben wird, also n Perioden. Die Formel lautet also:
CODEGreater[Before[$N]]
Diese Formel entspricht den ersten beiden Zeilen der ursprünglichen Formel.
- Nun muss die Anzahl der Fälle ausgelesen werden, in denen diese Funktion den Booleschen Wert "Wahr" annimmt. Dies geschieht ebenso wie in der ursprünglichen Formel mit der Funktion "Count[]".
Nur die Fälle sollen berücksichtigt werden, die im Beobachtungszeitraum "$Zeitraum" liegen; das wird mit dem Argument der Funktion "Count[]" festlegt:
CODECount[$Zeitraum]
Diese Funktion wird auf die in Schritt 2 definierte Funktion angewendet:
CODEGreater[Before[$N]].Count[Zeitraum]
Obwohl diese Funktion sehr viel kürzer ist, ist ihr Ergebnis identisch mit dem der ursprünglichen, vierzeiligen Formel.