Rouler et étendre les Fenêtres Pour les nuls

Dans l’article d’aujourd’hui, nous allons jeter un coup d’œil au roulement et à l’expansion des fenêtres.

À la fin du post, vous pourrez répondre à ces questions:

  • Qu’est-ce qu’une fenêtre roulante?
  • Qu’est-ce qu’une fenêtre en expansion ?
  • Pourquoi sont-ils utiles?

Qu’est-ce qu’une fenêtre roulante ou en expansion?

Voici une fenêtre normale.

Nous utilisons des fenêtres normales parce que nous voulons avoir un aperçu de l’extérieur, plus la fenêtre est grande, plus l’extérieur est visible.

En règle générale, plus les fenêtres de la maison de quelqu’un sont grandes, meilleur est leur portefeuille d’actions better

Tout comme les vraies fenêtres, les fenêtres de données nous offrent également un petit aperçu de quelque chose de plus grand.

Une fenêtre mobile nous permet d’étudier un sous-ensemble de nos données.

Fenêtres tournantes

Souvent, nous voulons connaître une propriété statistique de nos données de séries chronologiques, mais comme toutes les machines temporelles sont verrouillées à Roswell, nous ne pouvons pas calculer une statistique sur l’échantillon complet et l’utiliser pour obtenir un aperçu.

Cela introduirait un biais d’anticipation dans nos recherches.

En voici un exemple extrême. Ici, nous avons tracé le prix TSLA et sa moyenne sur l’échantillon 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()

Dans ce cas, si nous venions d’acheter TSLA alors que le prix était inférieur à la moyenne et que nous le vendions au-dessus de la moyenne, nous aurions fait une mise à mort, au moins jusqu’en 2019But

Mais le problème est que nous n’aurions pas connu la valeur moyenne à ce moment-là .

Il est donc assez évident pourquoi nous ne pouvons pas utiliser l’échantillon entier, mais que pouvons-nous faire alors? Une façon d’aborder ce problème consiste à utiliser des fenêtres déroulantes ou en expansion.

Si vous avez déjà utilisé une Moyenne Mobile simple, alors félicitations – vous avez utilisé une fenêtre roulante.

Comment fonctionnent les fenêtres roulantes ?

Disons que vous avez 20 jours de données de stock et que vous voulez connaître le prix moyen du stock pour les 5 derniers jours. Que fais-tu?

Vous prenez les 5 derniers jours, les additionnez et divisez par 5.

Mais que faire si vous voulez connaître la moyenne des 5 jours précédents pour chaque jour dans votre ensemble de données?

C’est là que le roulement de windows peut aider.

Dans ce cas, notre fenêtre aurait une taille de 5, ce qui signifie que pour chaque point dans le temps, elle contient la moyenne des 5 derniers points de données.

Visualisons un exemple avec une fenêtre mobile de taille 5 étape par étape.

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

Alors décomposons ce graphique.

  • Nous avons 20 jours de cours des actions dans ce graphique, étiquetés Données boursières.
  • Pour chaque point dans le temps (le point bleu), nous voulons savoir quel est le prix moyen de 5 jours.
  • Les données de stock utilisées pour le calcul sont les éléments entre les 2 lignes verticales bleues.
  • Après avoir calculé la moyenne de 0 à 5, notre moyenne pour le jour 5 devient disponible.
  • Pour obtenir la moyenne du jour 6, nous devons décaler la fenêtre de 1 pour que la fenêtre de données devienne 1-6.

Et c’est ce qu’on appelle une fenêtre roulante, la taille de la fenêtre est fixe. Tout ce que nous faisons, c’est le faire avancer.

Comme vous l’avez probablement remarqué, nous n’avons pas de valeurs SMA pour les points 0-4. En effet, la taille de notre fenêtre (également appelée période de retour) nécessite au moins 5 points de données pour effectuer le calcul.

Fenêtres en expansion

Lorsque les fenêtres déroulantes ont une taille fixe, les fenêtres en expansion ont un point de départ fixe et intègrent de nouvelles données à mesure qu’elles deviennent disponibles.

Voici la façon dont j’aime penser à cela:

« Quelle est la moyenne des n valeurs passées à ce stade? » – Utilisez des fenêtres roulantes ici.

« Quelle est la moyenne de toutes les données disponibles jusqu’à présent ? » – Utilisez Windows en expansion ici.

Les fenêtres en expansion ont une limite inférieure fixe. Seule la limite supérieure de la fenêtre est roulée vers l’avant (la fenêtre s’agrandit).

Visualisons une fenêtre en expansion avec les mêmes données du tracé précédent.

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

Vous pouvez voir qu’au début, le SMA est un peu nerveux. En effet, nous avons un plus petit nombre de points de données au début du tracé, et à mesure que nous obtenons plus de données, la fenêtre se développe jusqu’à ce que la moyenne de la fenêtre en expansion converge vers la moyenne complète de l’échantillon, car la fenêtre a atteint la taille de l’ensemble de données.

Résumé

Il est important de ne pas utiliser les données du futur pour analyser le passé. Le déploiement et l’extension de windows sont des outils essentiels pour aider à  » faire avancer vos données » afin d’éviter ces problèmes.

Si vous avez aimé cela, vous les aimerez probablement aussi these

Manipulation de données financières dans dplyr pour les Traders Quant

Utilisation du Traitement du Signal Numérique dans les Stratégies de Trading quantitatives

Biais De Backtesting: Se Sent Bien, Jusqu’À Ce Que Vous Explosiez

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.