Hallo Herr Lieck,
eine Überlastung der Datenbank sehe ich nicht. Aus der Datenbank werden z.B. Wertpapiername, Open, Close, High und Low zu jedem Wertpapier (Zeile der Tabelle) für Berechnungen in Tabellen benötigt. Die Berechnungen der Formeln (Makros / Funktionen) erfolgen in der Präformel der Tabelle, so wie ich es in meinem Beitrag
Tabellenberechnung beschrieben habe. Somit werden für jedes Wertpapier die benötigten Werte nur einmal aus der Datenbank gelesen und die Ergebnisse als Liste an die Tabelle übergeben, so dass in den Spaltenformeln nur mit nth[x] auf das jeweilige berechnete Feld in der Liste zugegriffen werden muss.
Die Begrenzung (Zeitdauer) hängt damit nur von der Rechenleistung des Prozessors ab und nicht von dem Flaschenhals Zugriffszeiten und Häufigkeit auf die Datenbank.
Will man z.B. die Bewegungen des Rangs in einem Zeitraum über Y-Wochen für alle Wertpapiere z.B. des Dax in einem Diagramm als Kerzen darstellen, dann berechnet man die Zeitreihe des Rangs für jedes Wertpapier nur einmal in der Präformel und übergibt die Reihe des Rangs als Element einer Liste an die Tabelle. In den Spaltenformeln ermittelt man dann aus diesert Reihe
a) den aktuellen/letzten Wert (close); Nth[x].at[heute;5]
b) den höchsten Wert (z.B. für Y= 4 Wochen); Nth[x].periodenmaximum[5*$Y].at[heute;5]
c) den niedrigstenWert (z.B. für Y= 4 Wochen); Nth[x].periodenminimum[5*$Y].at[heute;5]
d) Den Wert vor Y Wochen (Open); $Datum_Heute:=nth[x].at[heute;5].datum;
Nth[x].at[($Datum_Heute.addworkingdays[-5*$Y;5]) {Wert vor Y-Wochen}
Sie sehen, also auch bei solchen Aufgabenstellungen werden die benötigten Datenbank Werte nur einmal aus der Datenbank gelesen. Auch die berechnungsintensive Funktion Rang ist nur 1-mal für die 4 Spalten zu berechnen, da sie als Reihe in einer Liste an die Tabelle übergeben wird. Nur die Ermittlung der 4 Werte zu dem jeweiligen Zeitpunkt wird in den 4 Spaltenformeln durchgeführt.
Diese Art der Realisierung ist auf eine Minimierung der benötigten Rechenzeit ausgelegt. Überlegungen zu solchen Optimierungen sollte man sich immer machen, wenn man die Lösung erarbeitet hat, denn es ist nervig vor einem Bildschirm zu sitzen, Kaffee zu trinken und auf die Ausgabe der Ergebnisse zu warten.
Chuck