Rolling and Expanding Windows For Dummies

Nell’articolo di oggi, ci accingiamo a dare un’occhiata a rolling and expanding windows.

Alla fine del post, sarai in grado di rispondere a queste domande:

  • Che cos’è una finestra mobile?
  • Che cos’è una finestra in espansione?
  • Perché sono utili?

Che cos’è una finestra mobile o in espansione?

Ecco una finestra normale.

Usiamo finestre normali perché vogliamo avere un assaggio dell’esterno, più grande è la finestra più dell’esterno vediamo.

Inoltre, come regola generale, più grandi sono le finestre sulla casa di qualcuno, migliore è il loro portafoglio azionario did

Proprio come le finestre reali, le finestre dei dati ci offrono anche un piccolo assaggio di qualcosa di più grande.

Una finestra in movimento ci permette di indagare un sottoinsieme dei nostri dati.

Rolling Windows

Spesso, vogliamo conoscere una proprietà statistica dei nostri dati delle serie temporali, ma poiché tutte le macchine del tempo sono bloccate a Roswell, non possiamo calcolare una statistica sull’intero campione e usarla per ottenere informazioni.

Ciò introdurrebbe un pregiudizio lungimirante nella nostra ricerca.

Ecco un esempio estremo di ciò. Qui abbiamo tracciato il prezzo TSLA e la sua media sul campione completo.

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

In questo caso, se avessimo appena comprato TSLA quando il prezzo era sotto la media e lo avessimo venduto sopra la media, avremmo fatto una strage, almeno fino al 2019

Ma il problema è che non avremmo conosciuto il valore medio in quel momento.

Quindi è abbastanza ovvio perché non possiamo usare l’intero campione, ma cosa possiamo fare allora? Un modo per affrontare questo problema è quello di utilizzare le finestre a rotazione o in espansione.

Se hai mai usato una media mobile semplice, allora congratulazioni – hai usato una finestra di rotolamento.

Come funzionano le finestre rotolanti?

Supponiamo di avere 20 giorni di dati sulle scorte e di voler conoscere il prezzo medio delle scorte per gli ultimi 5 giorni. Cosa fa?

Prendi gli ultimi 5 giorni, sommali e dividi per 5.

Ma cosa succede se vuoi conoscere la media dei 5 giorni precedenti per ogni giorno nel tuo set di dati?

Questo è dove rolling windows può aiutare.

In questo caso, la nostra finestra avrebbe una dimensione di 5, il che significa che per ogni punto nel tempo contiene la media degli ultimi 5 punti dati.

Visualizziamo un esempio con una finestra in movimento di dimensione 5 passo dopo passo.

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

Quindi scomponiamo questo grafico.

  • Abbiamo 20 giorni di prezzi delle azioni in questo grafico, etichettati Dati Stock.
  • Per ogni punto nel tempo (il punto blu) vogliamo sapere qual è il prezzo medio di 5 giorni.
  • I dati di stock utilizzati per il calcolo sono le cose tra le 2 linee verticali blu.
  • Dopo aver calcolato la media da 0-5 la nostra media per il giorno 5 diventa disponibile.
  • Per ottenere la media per il giorno 6 dobbiamo spostare la finestra di 1 quindi, la finestra dei dati diventa 1-6.

E questo è ciò che è noto come una finestra di rotolamento, la dimensione della finestra è fissa. Tutto quello che stiamo facendo è rotolare in avanti.

Come probabilmente avrai notato, non abbiamo valori SMA per i punti 0-4. Questo perché la nostra dimensione della finestra (nota anche come periodo di lookback) richiede almeno 5 punti dati per eseguire il calcolo.

Finestre in espansione

Dove le finestre in rotazione sono di dimensioni fisse, le finestre in espansione hanno un punto di partenza fisso e incorporano nuovi dati non appena disponibili.

Ecco il modo in cui mi piace pensare a questo:

” Qual è la media dei valori n passati a questo punto nel tempo?”- Usa le finestre a rotazione qui.

“Qual è la media di tutti i dati disponibili fino a questo momento?”- Usa finestre in espansione qui.

Le finestre in espansione hanno un limite inferiore fisso. Solo il limite superiore della finestra viene spostato in avanti (la finestra diventa più grande).

Visualizziamo una finestra in espansione con gli stessi dati della trama precedente.

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

Puoi vedere che all’inizio, la SMA è un po ‘ nervosa. Questo perché abbiamo un numero minore di punti dati all’inizio della trama, e man mano che otteniamo più dati, la finestra si espande fino a quando alla fine la media della finestra in espansione converge alla media del campione completo, perché la finestra ha raggiunto la dimensione dell’intero set di dati.

Sommario

È importante non utilizzare i dati del futuro per analizzare il passato. Rotolamento e l’espansione di windows sono strumenti essenziali per aiutare “camminare i dati in avanti” per evitare questi problemi.

Se ti è piaciuto questo probabilmente come questi…

Dati Finanziari di Manipolazione del dplyr per Quant Trader

l’Utilizzo di Elaborazione del Segnale Digitale in Quantitativi Strategie di Trading

Backtesting Bias: si Sente Bene, Fino a quando Si saltare

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.