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

Sinüzoidal Sinyal Dalgası

results matching ""

    No results matching ""