Also, ich habe mich mal etwas näher mit der technischen Analyse von Aktienkursen beschäftigt.
z. B. Momentum = Berechnung aus der Differenz des heutigen Kurses zum Kurs vor z.B. 30 Tagen
Folgende Function berechnet das Momentum:
Delphi-Quellcode:
function TForm12.Momentum(Tage: integer): integer;
var
value, value1: integer;
begin
Value := Table3.FieldByName('Kurs').AsInteger;
Table3.MoveBy(-Tage);
Value1 := Table3.FieldByName('Kurs').AsInteger;
Table3.MoveBy(Tage);
result := Value - Value1;
end;
Die Darstellung des Momentums in einem TChart:
Delphi-Quellcode:
Table3.First;
Table3.MoveBy(Anzahl);
for i := 0 to RecCount -1 do
begin
Value := Momentum(Anzahl);
Series4.AddY(Value, Table3.FieldByName('Datum').AsString, clTeal);
Table3.Next;
end;
Dabei ist Anzahl die Zahl der Tage für die Berechnung des Momentums.
Soweit funktioniert auch anscheinend alles.
Mein Problem sind aber nun die Kurswerte am Ende der Tabelle.
(Siehe Anlage).
Die Berechnung funzt offenbar nicht mehr richtig, wenn die Anzahl der Kurse in der Table3 kleiner sind als die Variable Anzahl, d.h. die
Zahl der in der function momentum angegebenen Tage.
Bloß wie kann ich das ändern, dass auch für die letzten Werte eine korrekte Berechnung durchgeführt wird?