Rolling and Expanding Windows For Dummies

tämänpäiväisessä artikkelissa tutustutaan rullaaviin ja laajeneviin ikkunoihin.

postauksen loppuun mennessä pääset vastaamaan näihin kysymyksiin:

  • mikä on rullaava ikkuna?
  • mikä on laajeneva ikkuna?
  • miksi ne ovat hyödyllisiä?

mikä on rullaava tai laajeneva ikkuna?

tässä on normaali ikkuna.

käytämme normaaleja ikkunoita, koska haluamme nähdä vilauksen ulkopuolelta, mitä suurempi ikkuna on, sitä enemmän saamme nähdä ulkopuolta.

myös yleisenä nyrkkisääntönä voidaan sanoa, että mitä isommat ikkunat jonkun talossa, sitä paremmin hänen osakesalkkunsa pärjäsi …

aivan kuten oikeat ikkunat, myös data-ikkunat tarjoavat meille pienen kurkistuksen johonkin suurempaan.

liikkuvan ikkunan avulla voimme tutkia tietomme osajoukkoa.

rullaavat ikkunat

usein haluamme tietää tilastollisen ominaisuuden aikasarjatiedoistamme, mutta koska kaikki aikakoneet ovat lukittuina Roswellissa, emme voi laskea tilastoa koko otoksen päälle ja käyttää sitä oivalluksen saamiseksi.

se toisi tutkimukseemme ennakkoluuloja.

tässä on ääriesimerkki siitä. Tässä olemme piirtäneet TSLA: n hinnan ja keskiarvon koko otoksen päälle.

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()

tässä tapauksessa, jos olisimme vain ostaneet TSLAN hinnan ollessa alle keskiarvon ja myyneet sen yli keskiarvon, olisimme tehneet tappavan tuloksen ainakin vuoteen 2019 asti…

mutta ongelma on, että emme olisi tienneet keskiarvoa sillä hetkellä.

on siis aika selvää, miksi emme voi käyttää koko otosta, mutta mitä voimme sitten tehdä? Yksi tapa, jolla voisimme lähestyä tätä ongelmaa, on rullaamalla tai laajentamalla ikkunoita.

Jos olet joskus käyttänyt yksinkertaista liukuvaa keskiarvoa, niin onneksi olkoon – olet käyttänyt rullaavaa ikkunaa.

miten rullaavat ikkunat toimivat?

sanotaan, että sinulla on 20 päivän varastotiedot ja haluat tietää osakkeen keskihinnan viimeisten 5 päivän ajalta. Mitä sinä teet?

otat Viimeiset 5 päivää, summaat ne ja jaat 5: llä.

mutta entä jos haluat tietää tietokokonaisuudessasi edeltävien 5 päivän keskiarvon kullekin päivälle?

tästä voi olla apua rullaavissa ikkunoissa.

tässä tapauksessa ikkunamme koko olisi 5, eli jokaiselle ajankohdalle se sisältää viimeisten 5 datapisteen keskiarvon.

visualisoidaan esimerkki, jonka koko on liikkuva ikkuna 5 askel askeleelta.

#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()

joten eritellään tämä kaavio.

  • meillä on tässä kaaviossa 20 osakekurssipäivää merkittyinä Osaketietoina.
  • jokaiselle ajankohdalle (sininen piste) haluamme tietää, mikä on 5 päivän keskihinta.
  • laskennassa käytetään kantatietoja kahden sinisen pystyviivan välissä.
  • kun laskemme keskiarvon 0-5, tulee 5.päivän keskiarvo käyttöön.
  • saadakseen 6.päivän keskiarvon meidän täytyy siirtää ikkunaa 1: llä niin, tietoikkunasta tulee 1-6.

ja tämä on niin sanottu rullaava ikkuna, ikkunan koko on kiinteä. Me vain viemme sitä eteenpäin.

kuten Olet luultavasti huomannut, meillä ei ole SMA-arvoja pisteille 0-4. Tämä johtuu siitä, että ikkunan koko (joka tunnetaan myös nimellä tähystysaika) vaatii vähintään 5 datapistettä laskennan tekemiseen.

laajenevat ikkunat

Jos vierivät ikkunat ovat kiinteän kokoisia, laajenevilla ikkunoilla on kiinteä lähtöpiste, ja ne sisältävät uutta tietoa sitä mukaa kuin se tulee saataville.

tätä haluan ajatella näin:

”mikä on menneiden n-arvojen keskiarvo tässä vaiheessa?”- Käytä rullaavia ikkunoita täällä.

”mikä on kaikkien tähän mennessä saatavilla olevien tietojen keskiarvo?”- Käytä laajenevia ikkunoita täällä.

Laajenevissa ikkunoissa on kiinteä alaraja. Vain ikkunan yläosaa rullataan eteenpäin (ikkuna suurenee).

visualisoidaan laajeneva ikkuna, jossa on samat tiedot edellisestä juonesta.

#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()

voi nähdä, että alussa SMA on hieman säikky. Tämä johtuu siitä, että meillä on pienempi määrä datapisteitä tontin alussa, ja kun saamme enemmän tietoa, ikkuna laajenee, kunnes lopulta laajenevan ikkunan keskiarvo lähentyy koko otoksen keskiarvoon, koska ikkuna on saavuttanut koko datajoukon koon.

Yhteenveto

on tärkeää, ettei tulevaisuuden tietoja käytetä menneisyyden analysointiin. Rolling ja laajenevat ikkunat ovat välttämättömiä työkaluja auttaa ”kävellä tietoja eteenpäin” välttää näitä kysymyksiä.

If you liked this you ’ ll probably like these too…

Financial Data Manipulation in Dplyr for Quant Traders

käyttäen digitaalista signaalinkäsittelyä kvantitatiivisissa Kaupankäyntistrategioissa

backtesting bias: feels good, until you blow up

Vastaa

Sähköpostiosoitettasi ei julkaista.