rularea și extinderea ferestrelor pentru manechine

în articolul de astăzi, vom arunca o privire asupra rulării și extinderii ferestrelor.

până la sfârșitul postării, veți putea răspunde la aceste întrebări:

  • ce este o fereastră de rulare?
  • ce este o fereastră în expansiune?
  • de ce sunt utile?

ce este o fereastră de rulare sau extindere?

aici este o fereastră normală.

folosim ferestre normale pentru că vrem să avem o privire asupra exteriorului, cu cât fereastra este mai mare, cu atât mai mult din exterior ajungem să vedem.

De asemenea, ca regulă generală, cu cât ferestrele de pe casa cuiva sunt mai mari, cu atât portofoliul lor de acțiuni a făcut mai bine …

la fel ca ferestrele reale, ferestrele de date ne oferă, de asemenea, o mică privire în ceva mai mare.

o fereastră în mișcare ne permite să investigăm un subset al datelor noastre.

ferestre rulante

de multe ori, vrem să cunoaștem o proprietate statistică a datelor noastre din seriile de timp, dar pentru că toate mașinile timpului sunt închise în Roswell, nu putem calcula o statistică pe eșantionul complet și să o folosim pentru a obține o perspectivă.

asta ar introduce prejudecăți de perspectivă în cercetarea noastră.

Iată un exemplu extrem în acest sens. Aici am reprezentat prețul TSLA și media acestuia pe eșantionul complet.

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

în acest caz, dacă am fi cumpărat TSLA când prețul era sub medie și l-am fi vândut peste medie, am fi făcut o ucidere, cel puțin până în 2019…

dar problema este că nu am fi cunoscut valoarea medie în acel moment.

deci este destul de evident de ce nu putem folosi întregul eșantion, dar ce putem face atunci? O modalitate prin care am putea aborda această problemă este utilizarea ferestrelor rulante sau extinse.

dacă ați folosit vreodată o medie mobilă simplă, atunci felicitări – ați folosit o fereastră rulantă.

cum funcționează ferestrele rulante?

Să presupunem că aveți 20 de zile de date stoc și doriți să știți prețul mediu al stocului pentru ultimele 5 zile. Cu ce te ocupi?

luați Ultimele 5 zile, însumați-le și împărțiți-le la 5.

dar dacă doriți să cunoașteți media celor 5 zile anterioare pentru fiecare zi din setul dvs. de date?

aici vă pot ajuta ferestrele rulante.

în acest caz, fereastra noastră ar avea o dimensiune de 5, ceea ce înseamnă că pentru fiecare punct în timp conține media ultimelor 5 puncte de date.

să vizualizăm un exemplu cu o fereastră în mișcare de dimensiunea 5 pas cu pas.

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

deci, să defalcare această diagramă.

  • avem 20 de zile de prețurile acțiunilor în acest grafic, etichetate Date stoc.
  • pentru fiecare punct în timp (punctul albastru) vrem să știm ce este prețul mediu de 5 zile.
  • datele de stoc utilizate pentru calcul sunt lucrurile dintre cele 2 linii verticale albastre.
  • după ce calculăm media de la 0-5, media noastră pentru ziua 5 devine disponibilă.
  • pentru a obține media pentru ziua 6 trebuie să schimbăm fereastra cu 1 deci, fereastra de date devine 1-6.

și aceasta este ceea ce este cunoscut ca o fereastră de rulare, dimensiunea ferestrei este fix. Tot ce facem este să-l rostogolim înainte.după cum probabil ați observat, nu avem valori SMA pentru punctele 0-4. Acest lucru se datorează faptului că dimensiunea ferestrei noastre (cunoscută și sub numele de perioadă de retrospectivă) necesită cel puțin 5 puncte de date pentru a face calculul.

ferestre expandabile

unde ferestrele rulante au o dimensiune fixă, ferestrele expandabile au un punct de pornire fix și încorporează date noi pe măsură ce devin disponibile.

Iată cum îmi place să mă gândesc la asta:

„care este media valorilor n din trecut în acest moment?”- Folosiți ferestre rulante aici.

„care este media tuturor datelor disponibile până în acest moment?”- Utilizați ferestre în expansiune aici.

ferestrele expandabile au o limită inferioară fixă. Numai limita superioară a ferestrei este rulată înainte (fereastra devine mai mare).

să vizualizăm o fereastră în expansiune cu aceleași date din graficul anterior.

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

puteți vedea că la început, SMA este un pic nervozitate. Asta pentru că avem un număr mai mic de puncte de date la începutul graficului și, pe măsură ce obținem mai multe date, fereastra se extinde până când în cele din urmă media ferestrei în expansiune converge la media completă a eșantionului, deoarece fereastra a atins dimensiunea întregului set de date.

rezumat

este important să nu folosiți date din viitor pentru a analiza trecutul. Rularea și extinderea ferestrelor sunt instrumente esențiale pentru a vă ajuta „să vă deplasați datele înainte” pentru a evita aceste probleme.

dacă ți-a plăcut asta probabil că îți vor plăcea și astea…

manipularea datelor financiare în dplyr pentru traderii cuantici

utilizarea procesării semnalelor digitale în strategiile de tranzacționare cantitative

backtesting bias: se simte bine, până când arunca în aer

Lasă un răspuns

Adresa ta de email nu va fi publicată.