Winzigen Fehler entdeckt:
Delphi-Quellcode:
function SimpleMovingAverage(data: TDoubleDynArray; n: Word): TDoubleDynArray;
var
i: Integer;
dSum: Double;
begin
SetLength(Result, Length(data));
dSum := 0;
for i := Low(data) to High(data) do
begin
if i >= n then
dSum := dSum - data[i - n];
dSum := dSum + data[i];
if Succ(i) <= n // hier FEHLER ausgebessert
then Result[i] := 0 // keine Berechnung für die ersten n-1 Werte
else Result[i] := dSum / n;
end;
end;