Günlük Hareketli Ortalama
Günümüzde finansal hesaplamalarda kullanılan bu yaklaşım basit bir örnek üzerinden anlatmak gerekirse kısaca şu şekildedir.
Elimizde sayısal değerlerden oluşan bir veri kümesi olsun.
v = [4 3 0 1 7]
2 günlük hareketli ortalama hesaplanacak olsun. Burada hesaplama yaparken dizi de kendi ve kendisinden bir önceki değeri alıp 2 ye bölerek o sayının 2 günlük hareketli ortalamasını bulmuş olacağız.
Yani;
v dizinde 2 günlük hareketli ortalama alacağımız için 2. elemandan başlamak daha doğru olacaktır aksi takdirde kendisinden önceki elemanların hareketli ortalamasını bulamayacağız.
2.elemanın değeri 3 kendisinden bir önceki elemanın (çünkü 2 günlük hareketli ortalama hesaplayacağız) değeri 4 toplamları 7, 2 ye böldüğümüz zaman 3 değerinin 2 günlük hareketli ortalaması 3.5 olarak göreceğiz diğer elemanları da değerlendirdikten sonra yen dizi(vektör) aşağıdaki gibi olacaktır.
h = [0 3.5 1.5 0.5 4]
Örnek Matlab Kodu
v = [4 3 0 1 7]
daily = 2;
h = dailyMovingAvarage(daily, v);
h
function h = dailyMovingAvarage(daily, v)
size = length(v);
h = zeros(1, size);
for i=1:size-daily+1
sum = 0;
for j=i:i+daily-1
sum = sum + v(j);
end
h(i + (daily-1)) = sum / daily;
end
end
Bu örneği şu şekilde değiştirir isek.
v vektörü yerine v = sin(4t) dediğimiz zaman ve t değerimiz ise -pi ile +pi değerleri arasında olur ise sinüzoidal sinyal aşağıdaki gibi görünmektedir.
Örnek Matlab Kodu
t = [-1*pi:0.1:1*pi]
v = sin(4*t);
figure; plot(t,v); hold on;
daily = 25;
h = dailyMovingAvarage(daily, v);
plot(t,h);
hold off;
function h = dailyMovingAvarage(daily, v)
size = length(v);
h = zeros(1, size);
for i=1:size-daily+1
sum = 0;
for j=i:i+daily-1
sum = sum + v(j);
end
h(i + (daily-1)) = sum / daily;
end
end