n日移動平均

意外と簡単だった。

/**
n日移動平均を求める
*/
public static CalcSMA(hiashiArr: Array<Hiashi>, days: number): Array<DateVal> {
var retArr: Array<DateVal> = [];
var currentSum: number = 0;
for (var i in hiashiArr) {
var hiashi: Hiashi = hiashiArr[i];
var dv: DateVal = new DateVal;
dv.date = new Date(hiashi.ymd);
currentSum += Number(hiashi.close);
if (i >= days) {
var nPrevHiashi = hiashiArr[i - days];
currentSum -= Number(nPrevHiashi.close);
dv.val = currentSum / days;
} else {
dv.val = currentSum / (i + 1);
}
retArr[i] = dv;
}
return retArr;
}


緑:25日平均、青:75日平均
今日はここまで。


コメントを残す

メールアドレスが公開されることはありません。