Ugrás a tartalomhoz

moving average

A Wikiszótárból, a nyitott szótárból


Főnév

moving average (tsz. moving averages)

  1. (informatika) mozgóátlag

A moving average (mozgó átlag) egy idősor-elemzési és szűrési módszer, amely segít az adatok trendjének kiemelésében és a rövid távú ingadozások kisimításában. A moving average az egyik legalapvetőbb és leggyakrabban használt statisztikai és pénzügyi eszköz.



1. Mi az a moving average?

A mozgó átlag egy sorozat tagjaiból számított átlag, amely folyamatosan változik az új értékek érkezésével. Az aktuális értéket mindig az adott időpont körüli (vagy előtti) értékekből számítjuk.

Általános forma:

– ahol:

  • : az aktuális mozgó átlag
  • : az idősor aktuális értéke
  • : az ablakméret (hány adatból számolunk átlagot)



2. Fő típusok

a) Simple Moving Average (SMA)

Egyszerű, egyenlő súlyozású átlag:

📌 Pl. 5 napos SMA: az utolsó 5 nap értékeinek átlaga.



b) Weighted Moving Average (WMA)

Nagyobb súlyt ad az újabb értékeknek:

📌 Példa: súlyok = [1, 2, 3, 4, 5] → legfrissebb érték legfontosabb.



c) Exponential Moving Average (EMA)

A legfrissebb érték exponenciálisan nagyobb súlyt kap:

  • : simítási együttható,
  • Képlet rekurzív, gyors és érzékeny a változásokra



3. Mire használják?

📈 Idősor elemzés

  • Trendek felismerése
  • Zaj szűrése
  • Előrejelzés alapja

💹 Pénzügy

  • Részvényárfolyamok trendjeinek követése
  • Technikai indikátorok (pl. „SMA crossover”)

📊 Mérnöki tudomány

  • Jel- és adatfeldolgozás
  • Szenzoradatok zajszűrése

🤖 Gépi tanulás / AI

  • Feature-simítás
  • Sztochasztikus gradiens csillapítása



4. Előnyök és hátrányok

Előnyök Hátrányok
Egyszerű, gyors számítás Lassú reagálás hirtelen változásra
Csökkenti a zajt Előrejelzésre korlátozott
Érthető, vizuálisan hasznos Nem tükröz nemlineáris trendeket



5. SMA példa Pythonban

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

data = [2, 3, 5, 8, 12, 18, 21, 20, 16, 10]
series = pd.Series(data)

sma = series.rolling(window=3).mean()

plt.plot(series, label='Eredeti')
plt.plot(sma, label='3-napos SMA')
plt.legend()
plt.grid(True)
plt.show()

6. SMA kézi példa

Adatok: [10, 13, 15, 14, 16, 18]

3-napos SMA:

Idő Adat SMA
1 10
2 13
3 15 (10+13+15)/3 = 12.67
4 14 (13+15+14)/3 = 14.00
5 16 (15+14+16)/3 = 15.00
6 18 (14+16+18)/3 = 16.00



7. EMA simítási együttható

Általában:

→ Pl. 10 napos EMA esetén Értelmezés sikertelen (formai hiba): {\textstyle \alpha = 2/11 ≈ 0.1818}

Az EMA gyorsabban reagál az új adatokra, mint az SMA.



8. C++ példa – SMA kiszámítása

#include <iostream>
#include <vector>
#include <iomanip>

std::vector<double> simpleMovingAverage(const std::vector<double>& data, int window) {
    std::vector<double> result;
    for (int i = 0; i <= data.size() - window; ++i) {
        double sum = 0;
        for (int j = 0; j < window; ++j) {
            sum += data[i + j];
        }
        result.push_back(sum / window);
    }
    return result;
}

int main() {
    std::vector<double> values = {10, 13, 15, 14, 16, 18};
    int window = 3;
    std::vector<double> sma = simpleMovingAverage(values, window);

    for (double val : sma) {
        std::cout << std::fixed << std::setprecision(2) << val << "\n";
    }
    return 0;
}

9. Kombinált használat – SMA és EMA

  • Rövid távú mozgó átlag (pl. 10 nap)
  • Hosszú távú mozgó átlag (pl. 50 nap)

📌 „Crossover” jelzések:

  • Ha a rövid távú átlag megszegi a hosszút alulról: vételi jelzés
  • Ha felülről: eladási jelzés



10. Összefoglalás

Fogalom Leírás
Moving average Idősorok simítása, trendek kiemelése
SMA Egyszerű átlag, egyforma súly
EMA Exponenciálisan csökkenő súlyok
WMA Egyéni súlyozás
Alkalmazás Idősor-elemzés, pénzügy, gépi tanulás, zajszűrés



A moving average egyszerű, de hatékony módszer trendek és jellemzők feltárására idősoros adatokon. Segít a döntéshozatalban, vizualizációban, és adatelőkészítésben is.