Rolling and Expanding Windows For Dummies

a mai cikkben megnézzük a gördülő és bővülő ablakokat.

a bejegyzés végére válaszolhat ezekre a kérdésekre:

  • mi az a gördülő ablak?
  • mi az a bővülő ablak?
  • miért hasznosak?

mi az a gördülő vagy bővülő ablak?

itt egy normál ablak.

normál ablakokat használunk, mert meg akarunk pillantani a külsőt, minél nagyobb az ablak, annál többet látunk kívülről.

általános szabályként, minél nagyobb az ablak valakinek a házán, annál jobb volt a részvényportfóliója …

csakúgy, mint a valódi ablakok, az adatablakok is egy kis bepillantást nyújtanak valami nagyobbba.

a mozgó ablak lehetővé teszi számunkra, hogy vizsgálja meg egy részhalmaza adatainkat.

gördülő ablakok

gyakran szeretnénk tudni az idősorok adatainak statisztikai tulajdonságát, de mivel az összes időgép Roswellben van bezárva, nem tudjuk kiszámítani a statisztikát a teljes mintán, és ezt felhasználhatjuk betekintésre.

Ez bevezetné a előretekintő elfogultságot kutatásainkban.

itt van egy szélsőséges példa erre. Itt ábrázoltuk a TSLA árát és átlagát a teljes minta felett.

import pandas as pdimport matplotlib.pyplot as plt #Load TSLA OHLC df = pd.read_csv('TSLA.csv')#Calculate full sample meanfull_sample_mean = df.mean()#Plotplt.plot(df,label='TSLA')plt.axhline(full_sample_mean,linestyle='--',color='red',label='Full Sample Mean')plt.legend()plt.show()

ebben az esetben, ha most vásároltuk volna meg a TSLA-t, amikor az ár az átlag alatt volt, és eladtuk volna az átlag felett, akkor legalább 2019-ig gyilkoltunk volna…

de a probléma az, hogy nem tudtuk volna az átlagértéket abban az időpontban.

tehát elég nyilvánvaló, hogy miért nem tudjuk használni a teljes mintát, de mit tehetünk akkor? Ennek a problémának az egyik módja a gördülő vagy bővülő ablakok használata.

Ha valaha is használt egy egyszerű mozgó átlagot, akkor gratulálok – gördülő ablakot használt.

hogyan működnek a gördülő ablakok?

tegyük fel, hogy 20 napos készletadata van, és szeretné tudni az állomány átlagos árát az elmúlt 5 napban. Mit csinálsz?

az utolsó 5 napot összegezzük és elosztjuk 5-tel.

de mi van, ha tudni szeretné az adatkészlet minden napjának előző 5 napjának átlagát?

Ez az, ahol a gördülő ablakok segíthetnek.

ebben az esetben az ablakunk mérete 5 lenne, ami azt jelenti, hogy minden egyes időpontban az utolsó 5 adatpont átlagát tartalmazza.

nézzünk meg egy példát egy 5-ös méretű mozgó ablakkal lépésről lépésre.

#Random stock pricesdata = #Create pandas DataFrame from listdf = pd.DataFrame(data,columns=)#Calculate a 5 period simple moving averagesma5 = df.rolling(window=5).mean()#Plotplt.plot(df,label='Stock Data')plt.plot(sma5,label='SMA',color='red')plt.legend()plt.show()

tehát bontsuk le ezt a táblázatot.

  • 20 napos részvényárfolyamunk van ebben a diagramban, címkével ellátott Részvényadatok.
  • minden egyes időpontban (a kék pont) szeretnénk tudni, hogy mi az 5 napos átlagár.
  • a számításhoz használt Állományadatok a 2 kék függőleges vonal közötti dolgok.
  • miután kiszámítottuk az átlagot 0-5-ről, elérhetővé válik az 5. nap átlaga.
  • ahhoz, hogy megkapjuk a 6.nap átlagát, az ablakot 1-gyel kell eltolnunk, így az adatablak 1-6 lesz.

és ez az úgynevezett gördülő ablak, az ablak mérete rögzített. Mi csak előre tekerjük.

mint valószínűleg észrevetted, nincs SMA értékünk a 0-4 pontokhoz. Ennek oka az, hogy az ablakméretünk (más néven visszatekintési időszak) legalább 5 adatpontot igényel a számítás elvégzéséhez.

bővülő ablakok

ahol a gördülő ablakok rögzített méretűek, a bővülő ablakok rögzített kiindulási ponttal rendelkeznek, és új adatokat tartalmaznak, amint elérhetővé válnak.

így szeretek gondolkodni erről:

” mi az elmúlt n érték átlaga ebben az időpontban?”- Itt használjon gördülő ablakokat.

” mi az összes rendelkezésre álló adat átlaga eddig az időpontig?”- Itt használja a bővülő ablakokat.

a bővülő ablakok rögzített alsó korláttal rendelkeznek. Csak az ablak felső határát gördítik előre (az ablak nagyobb lesz).

vizualizáljunk egy bővülő ablakot az előző cselekmény azonos adataival.

#Random stock prices data = #Create pandas DataFrame from list df = pd.DataFrame(data,columns=) #Calculate expanding window meanexpanding_mean = df.expanding(min_periods=1).mean()#Calculate full sample mean for referencefull_sample_mean = df.mean()#Plot plt.plot(df,label='Stock Data') plt.plot(expanding_mean,label='Expanding Mean',color='red')plt.axhline(full_sample_mean,label='Full Sample Mean',linestyle='--',color='red')plt.legend()plt.show()

láthatja, hogy az elején az SMA kissé ideges. Ez azért van, mert a cselekmény elején kisebb számú adatpont van, és ahogy több adatot kapunk, az ablak kibővül, amíg végül a bővülő ablak átlaga konvergál a teljes minta átlagához, mert az ablak elérte a teljes adatkészlet méretét.

összefoglaló

fontos, hogy ne használjuk a jövőből származó adatokat a múlt elemzésére. A gördülő és bővülő ablakok alapvető eszközök, amelyek segítenek az” adatok továbbvitelében”, hogy elkerüljék ezeket a problémákat.

ha tetszett ez akkor valószínűleg tetszik ezek is…

pénzügyi adatok manipulálása dplyr a Quant kereskedők

a digitális jelfeldolgozás kvantitatív kereskedési stratégiák

backtesting elfogultság: jó érzés, amíg fel nem robbant

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.