Prédiction du marché basée sur des indicateurs macroéconomiques - page 56

 
Vladimir:

3 : Rendements de titres de différentes échéances, plus un autre.

Taux annuel en pourcentage pour l'achat et la conservation, de 1974 à aujourd'hui : TAEG = 7,35%.

Stratégie d'achat et de vente à l'aide d'indicateurs économiques : TAEG = 13,18 %.

Cette stratégie a donné un signal de vente en décembre 2019. Aucun signal d'achat n'a été donné jusqu'à présent. Apparemment, le marché va baisser.

Achetez et gardez.

Il serait intéressant de voir un test avancé d'un tel modèle, mais ce n'est pas possible ici.

Pour l'instant, d'après ce que je comprends, tout le monde attend les élections.

 
Vladimir:

3 : Rendements de titres de différentes échéances, plus un.

Taux annuel en pourcentage pour l'achat et la conservation, 1974 - aujourd'hui : TAEG = 7,35%.

Stratégie d'achat et de vente à l'aide d'indicateurs économiques : TAEG = 13,18 %.

Cette stratégie a donné un signal de vente en décembre 2019. Aucun signal d'achat n'a été donné jusqu'à présent. Apparemment, le marché va baisser.

S'agit-il d'un instrument spécifique ou d'un indicateur général ?

 
Vladimir :

Ainsi, la tâche consiste à prédire l'indice S&P 500 sur la base des indicateurs économiques disponibles.

Étape 1 : Trouvez les indicateurs. Les indicateurs sont accessibles au public ici : http://research.stlouisfed.org/fred2/ Il en existe 240 000. Le plus important est la croissance du PIB. Cet indicateur est calculé chaque trimestre. D'où notre étape - 3 mois. Tous les indicateurs pour une période plus courte sont recalculés pour une période de 3 mois, le reste (annuel) est rejeté. Nous écartons également les indicateurs pour tous les pays sauf les États-Unis et les indicateurs qui n'ont pas une histoire profonde (au moins 15 ans). Ainsi, avec un travail minutieux, nous filtrons un tas d'indicateurs et obtenons environ 10 000 indicateurs. Nous formulons une tâche plus spécifique consistant à prédire l'indice S&P 500 un ou deux trimestres à l'avance, en ayant 10 000 indicateurs économiques disponibles avec une période trimestrielle. Je fais tout en MatLab, même si c'est possible en R.

Étape 2 : Convertir toutes les données sous forme stationnaire par différenciation et normalisation. Il existe de nombreuses méthodes ici. L'essentiel est que les données d'origine puissent être restaurées à partir des données converties. Sans stationnarité, aucun modèle ne fonctionnera. La série S&P 500 avant et après la conversion est présentée ci-dessous.

Étape 3 : Choisissez un modèle. Peut-être un réseau de neurones. On peut faire une régression linéaire multi-variable. Vous pouvez faire une régression polynomiale multivariable. Après avoir testé des modèles linéaires et non linéaires, nous arrivons à la conclusion que les données sont si bruyantes qu'il est insensé d'entrer dans un modèle non linéaire. Le graphique y(x), où y = S&P 500 et x = l'un des 10 000 indicateurs, est un nuage presque circulaire. Ainsi, nous formulons la tâche encore plus précisément : prédire l'indice S&P 500 un ou deux trimestres à l'avance, en ayant 10 000 indicateurs économiques avec une période trimestrielle, en utilisant une régression linéaire multivariable.

Étape 4 : Nous sélectionnons les indicateurs économiques les plus importants parmi 10 000 (réduire la dimension du problème). C'est l'étape la plus importante et la plus difficile. Disons que nous prenons l'histoire du S&P 500 aussi longue que 30 ans (120 trimestres). Pour représenter le S&P 500 comme une combinaison linéaire d'indicateurs économiques de natures diverses, il suffit de disposer de 120 indicateurs pour décrire précisément le S&P 500 sur ces 30 années. De plus, les indicateurs peuvent être absolument quelconques afin de créer un modèle aussi précis de 120 indicateurs et 120 valeurs S&P 500. Vous devez donc réduire le nombre d'entrées en dessous du nombre de valeurs de fonction décrites. Par exemple, nous recherchons les 10 à 20 indicateurs d'entrée les plus importants. De telles tâches de description de données avec un petit nombre d'entrées sélectionnées parmi un grand nombre de bases candidates (dictionnaire) sont appelées codage parcimonieux.

Il existe de nombreuses méthodes pour sélectionner les entrées des prédicteurs. Je les ai tous essayés. Voici les deux principaux :

  1. Nous classons les 10 000 données en fonction de leur pouvoir prédictif S&P 500. Le pouvoir prédictif peut être mesuré par un coefficient de corrélation ou une information mutuelle.
  2. Nous parcourons les 10 000 indicateurs en bas et choisissons celui qui a donné le modèle linéaire y_mod = a + b*x1 décrivant le S&P 500 avec la plus petite erreur. Ensuite, nous sélectionnons à nouveau la deuxième entrée en triant les 10 000 -1 indicateurs restants afin qu'elle décrive le reste y - y_mod = c + d*x2 avec le moins d'erreur. Etc. Cette méthode est appelée régression pas à pas ou poursuite correspondante.

Voici le top 10 des indicateurs avec le coefficient de corrélation le plus élevé avec le S&P 500 :

Identifiant de la série Décalage Corr Infos Mut
'PPICRM' 2 0,315 0,102
'CWUR0000SEHE' 2 0,283 0,122
'CES1021000001' une 0,263 0,095
'B115RC1Q027SBEA' 2 0,262 0,102
'CES1000000034' une 0,261 0,105
'A371RD3Q086SBEA' 2 0,260 0,085
'B115RC1Q027SBEA' une 0,256 0,102
'CUUR0000SAF111' une 0,252 0,117
'CUUR0000SEHE' 2 0,251 0,098
'USMINE' une 0,250 0,102

Voici le top 10 des indicateurs avec le plus d'informations mutuelles avec le S&P 500 :

Identifiant de la série Décalage Corr Infos Mut
'CPILEGSL' 3 0,061 0,136
'B701RC1Q027SBEA' 3 0,038 0,136
'CUSR0000SAS' 3 0,043 0,134
'PIBPOT' 3 0,003 0,134
'NGDPPOT' 5 0,102 0,134
'AUTRESEC' 4 0,168 0,133
'LNU01300060' 3 0,046 0,132
'LRAC25TTUSM156N' 3 0,046 0,132
'LRAC25TTUSQ156N' 3 0,046 0,131
'CUSR0000SAS' une 0,130 0,131

Le décalage est le retard de la série d'entrées par rapport à la série simulée du S&P 500. Comme on peut le voir dans ces tableaux, différentes méthodes de choix des entrées les plus importantes se traduisent par différents ensembles d'entrées. Étant donné que mon objectif ultime est de minimiser l'erreur de modèle, j'ai choisi la deuxième méthode de sélection d'entrée, c'est-à-dire énumération de toutes les entrées et sélection de l'entrée qui a donné le moins d'erreur.

Étape 5 : Choisissez une méthode pour calculer l'erreur et les coefficients du modèle. La méthode la plus simple est la méthode COEX, c'est pourquoi la régression linéaire utilisant cette méthode est si populaire. Le problème avec la méthode RMS est qu'elle est sensible aux valeurs aberrantes, c'est-à-dire ces valeurs aberrantes affectent significativement les coefficients du modèle. Pour réduire cette sensibilité, la somme des valeurs d'erreurs absolues peut être utilisée à la place de la somme des erreurs au carré, conduisant à la méthode des moindres modules (LSM) ou régression robuste. Cette méthode n'a pas de solution analytique pour les coefficients du modèle contrairement à la régression linéaire. Habituellement, les modules sont remplacés par des fonctions d'approximation lisses/différentiables et la solution est effectuée par des méthodes numériques et prend beaucoup de temps. J'ai essayé les deux méthodes (régression maigre et MHM) et je n'ai pas remarqué beaucoup d'avantages de MHM. Au lieu de MHM, j'ai fait un détour. Dans la deuxième étape d'obtention de données stationnaires en les différenciant, j'ai ajouté une opération de normalisation non linéaire. Autrement dit, la série d'origine x[1], x[2], ... x[i-1], x[i] ... est d'abord convertie en une série de différences x[2]-x[1] . .. x [i]-x[i-1] ... puis chaque différence est normalisée en la remplaçant par sign(x[i]-x[i-1])*abs(x[i]-x[ i-1] )^u, où 0 < u < 1. Pour u=1, on obtient la méthode COSE classique avec sa sensibilité aux valeurs aberrantes. À u = 0, toutes les valeurs de la série d'entrée sont remplacées par des valeurs binaires +/- 1 avec presque aucune valeur aberrante. Pour u=0.5, on obtient quelque chose proche de MNM. La valeur optimale de u se situe quelque part entre 0,5 et 1.

Il convient de noter que l'une des méthodes populaires pour convertir des données sous une forme stationnaire consiste à remplacer les valeurs de la série par la différence des logarithmes de ces valeurs, c'est-à-dire log(x[i]) - log(x[i-1]) ou log(x[i]/x[i-1]). Le choix d'une telle transformation est dangereux dans mon cas, car le dictionnaire de 10 000 entrées comporte de nombreuses lignes avec des valeurs nulles et négatives. Le logarithme a également l'avantage de réduire la sensibilité de la méthode RMS aux valeurs aberrantes.Essentiellement, ma fonction de transformation sign(x)*|x|^u a le même objectif que log(x), mais sans les problèmes associés à zéro et valeurs négatives.

Étape 6 : Calculez la prédiction du modèle en remplaçant les nouvelles données d'entrée et en calculant la sortie du modèle à l'aide des mêmes coefficients de modèle que ceux trouvés par régression linéaire dans les segments d'historique précédents. Ici, il est important de garder à l'esprit que les valeurs trimestrielles des indicateurs économiques et du S&P 500 arrivent presque simultanément (avec une précision de 3 mois). Par conséquent, afin de prédire le S&P 500 pour le prochain trimestre, le modèle doit être construit entre la valeur trimestrielle actuelle du S&P 500 et des entrées retardées d'au moins 1 trimestre (Lag>=1). Pour prédire le S&P 500 avec un trimestre d'avance, le modèle doit être construit entre la valeur trimestrielle actuelle du S&P 500 et des entrées retardées d'au moins 2 trimestres (Lag>=2). Etc. La précision des prédictions diminue de manière significative avec un retard croissant supérieur à 2.

Étape 7 : Vérifier l'exactitude des prédictions sur l'historique précédent. La technique originale décrite ci-dessus (mettre chaque entrée dans l'historique précédent, choisir l'entrée qui donne la plus petite MSE et calculer la prédiction à partir de la nouvelle valeur de cette entrée) a produit une prédiction MSD qui était encore pire que les prédictions aléatoires ou nulles. Je me suis posé cette question : pourquoi une entrée qui s'inscrit bien dans le passé devrait-elle avoir une bonne capacité de prévisibilité pour l'avenir ? Il est logique de sélectionner les entrées du modèle en fonction de leur erreur de prédiction précédente, plutôt qu'en fonction de la plus petite erreur de régression sur les données connues.

Au final, mon modèle peut être décrit pas à pas comme ceci :

  1. Téléchargement des données économiques de stlouisfed (environ 10 000 indicateurs).
  2. Données Preobrazeum à une forme stationnaire et normaliser.
  3. Nous choisissons un modèle linéaire de l'indice S&P 500, résolu analytiquement par la méthode RMS (régression linéaire).
  4. Nous choisissons la durée de l'histoire (1960 - Q2 2015) et la divisons en un segment de formation (1960 - Q4 1999) et un segment de test (Q1 2000 - Q2 2015).
  5. Nous commençons les prévisions à partir de 1960 + N + 1, où N*4 est le nombre initial de valeurs trimestrielles connues du S&P 500.
  6. Sur les N premières données, un modèle linéaire est construit y_mod = a + b*x pour chaque indicateur économique, où y_mod est le modèle S&P 500 et x est l'un des indicateurs économiques.
  7. Nous prévoyons N + 1 bar avec chaque modèle.
  8. Nous calculons les erreurs de prédiction de N + 1 barres par chaque modèle. Nous nous souvenons de ces erreurs.
  9. Nous augmentons de 1 le nombre de valeurs connues du S&P 500, c'est-à-dire N + 1, et répétez les étapes 6 à 9 jusqu'à ce que nous atteignions la fin du segment de formation (Q4 1999). A cette étape, nous avons stocké les erreurs de prédiction de 1960 + N +1 au T4 1999 pour chaque indicateur économique.
  10. Nous commençons à tester le modèle dans la deuxième période de l'histoire (Q1 2000 - Q2 2015).
  11. Pour chacune des 10 000 entrées, nous calculons l'erreur standard des prévisions pour 1960 - Q4 1999.
  12. Sur 10 000 entrées, nous sélectionnons celle qui avait la prédiction RMS la plus basse pour 1960 - Q4 1999.
  13. Nous construisons un modèle linéaire y_mod = a + b*x pour chaque indicateur économique pour 1960 - Q4 1999.
  14. Nous prédisons Q1 2000 par chaque modèle.
  15. La prédiction de l'entrée sélectionnée avec la valeur efficace la plus faible des prédictions pour l'intervalle de temps précédent (1960 - Q4 1999) est choisie comme notre prédiction principale du Q1 2000.
  16. Nous calculons les erreurs de prédiction de toutes les entrées pour Q1 2000 et les ajoutons au RMS des mêmes entrées pour l'intervalle de temps précédent (1960 - Q4 1999).
  17. Passez au Q2 2000 et répétez les étapes 12 à 17 jusqu'à ce que nous atteignions la fin de la zone de test (Q2 2015) avec une valeur inconnue pour le S&P 500, qui est notre principal objectif de prédiction.
  18. Nous accumulons les erreurs de prédiction pour Q1 2000 - Q4 2014 faites par les entrées avec l'écart type le plus bas des prédictions dans les segments précédents. Cette erreur (err2) est notre modèle d'erreur de prédiction hors échantillon.

En bref, le choix d'un prédicteur dépend de leur RMS des prédictions précédentes du S&P 500. Il n'y a pas de regard vers l'avenir. Le prédicteur peut changer au fil du temps, mais à la fin du segment de test, il cesse essentiellement de changer. Mon modèle a sélectionné PPICRM avec un décalage de 2 trimestres comme première entrée pour prédire Q2 2015. La régression linéaire du S&P 500 avec l'entrée PPICRM(2) sélectionnée pour 1960 - Q4 2014 est illustrée ci-dessous. Cercles noirs - régression linéaire. Cercles multicolores - données historiques pour 1960 - Q4 2014. La couleur du cercle indique l'heure.


Prédictions stationnaires du S&P 500 (ligne rouge) :

Prédictions S&P 500 sous forme brute (ligne rouge) :

Le graphique montre que le modèle prédit la croissance du S&P 500 au deuxième trimestre de 2015. L'ajout d'une deuxième entrée augmente l'erreur de prédiction :

1 err1=0.900298 err2=0.938355 PPICRM (2)

2 err1=0.881910 err2=0.978233 PERMIS1 (4)

où err1 est l'erreur de régression. Il est évident qu'il diminue dès l'ajout d'une seconde entrée. err2 est l'erreur de prédiction quadratique moyenne divisée par l'erreur de prédiction aléatoire. Autrement dit, err2>=1 signifie que la prédiction de mon modèle n'est pas meilleure que les prédictions aléatoires. err2<1 signifie que la prédiction de mon modèle est meilleure que les prédictions aléatoires.

PPICRM = Indice des prix à la production : Matières brutes pour transformation ultérieure

PERMIT1 = Nouvelles Unités de Logement Privées Autorisées par Permis de Construire - Dans des Structures avec 1 Unité

Le modèle décrit ci-dessus peut être reformulé de cette manière. Nous réunissons 10 000 économistes et leur demandons de prédire le marché pour le trimestre à venir. Chaque économiste fait sa propre prédiction. Mais au lieu de choisir une prédiction basée sur le nombre de manuels qu'ils ont écrits ou le nombre de prix Nobel qu'ils ont remportés dans le passé, nous attendons quelques années pour recueillir leurs prédictions. Après un nombre important de prédictions, nous voyons quel économiste est le plus précis et commençons à croire ses prédictions jusqu'à ce qu'un autre économiste le surpasse en précision.

L'analyse est impressionnante, mais une question demeure : avez-vous déjà pensé qu'il était un peu plus difficile de prédire 500 (!!!) taux qui s'influencent mutuellement à la fois que 1 ? Vraiment, pourquoi le S&P500 a-t-il été choisi ? Eh bien, 500 entreprises indépendantes et difficiles à prévoir en font partie. La logique élémentaire suggère qu'il est souhaitable de tester cette approche sur un émetteur, ce qui augmentera la confiance dans le résultat final d'environ ... 500 fois. :)
 
Реter Konow:
L'analyse est impressionnante, mais une question demeure : ne vous est-il jamais venu à l'esprit qu'il est un peu plus difficile de prédire que 500 ( !!!) personnes se touchent en même temps qu'une seule ? Je veux dire, vraiment, pourquoi choisir le S&P500 ? Il est formé de 500 entreprises indépendantes et difficiles à prévoir. La logique élémentaire veut que cette approche soit testée de préférence sur un seul émetteur, ce qui augmentera la confiance dans le résultat final d'environ... par un facteur de 500. :)
Faux. Bien que le thème s'appelle "prédire le marché sur la base d'indicateurs macroéconomiques", les indicateurs n'ont aucune signification dans cette analyse. De simples variables substituées dans une formule après avoir été mathématiquement dépersonnalisées et dissociées de toute connexion sémantique et logique externe au monde. Des nombres secs, disposés en séries numériques abstraites, servent de modèle à un réseau neuronal, qui prédit... non, pas le marché, mais la même série numérique.

De ce point de vue, peu importe le nombre de taux dans l'indice et peu importe les politiques de leurs entreprises, mais il est nécessaire que toutes les variables et valeurs soient substituées dans la formule. Et c'est ainsi.

Donc, tout est correct, seulement le sujet devrait être appelé différemment, parce qu'essentiellement, ce n'est pas de l'analyse fondamentale, mais de l'analyse technique.
 
Реter Konow:
Faux. Même si le sujet s'intitule "prévoir le marché sur la base d'indicateurs macroéconomiques", les indicateurs ne sont pas pertinents dans cette analyse. De simples variables substituées dans une formule après avoir été mathématiquement dépersonnalisées et désidentifiées de tous les liens sémantiques et logiques externes avec le monde. Des nombres secs, disposés en séries numériques abstraites, servent de modèle à un réseau neuronal, qui prédit... non, pas le marché, mais la même série numérique.

De ce point de vue, peu importe le nombre de cours dans l'indice et peu importe les politiques de leurs entreprises, mais toutes les variables et valeurs doivent être substituées dans la formule. Et c'est ainsi.

Donc, tout est correct, seulement le sujet devrait être appelé différemment, parce qu'en essence il ne s'agit pas d'analyse fondamentale mais technique.

Il s'avère que l'analyse technique sur lesdonnées fondamentales.

L'analyse fondamentale n'est pas si simple.De nombreux facteurs influent sur les prix, qui ne relèvent pas des indicateurs économiques. Il s'agit des élections, du Brexit, de toutes sortes de rumeurs, etc. Ils peuvent influencer le prix plus que tous les indicateurs économiques.

 
Hors sujet. <br/ translate="no">
Je suis depuis longtemps intéressé par les questions qui découlent de la lecture du "stream of consciousness" des nombreux traders sur le forum :

1) Pourquoi les gens oublient-ils facilement et rapidement l'objet de leur étude, se perdant dans les "séries de nombres", les coefficients, etc. et ne revenant jamais au point d'origine, errant à jamais dans les contrées sauvages des mathématiques ?

2. Qu'est-ce qui les motive ? Est-ce vraiment juste de l'argent ?

La première question n'a pas encore trouvé de réponse, mais la seconde ... ...il y en a un :

Toutes leurs recherches de compagnons mènent à un certain "paradis" fantasmagorique, où l'existence est ramassée, ordonnée et prévisible dans tous ses aspects. C'est comme ça que les gens intelligents imaginent le Graal.

Le premier message de ce fil de discussion ne montre ni le premier ni le deuxième pas dans cette direction obscure...
 
Uladzimir Izerski:

Vous obtenez une analyse technique sur desdonnées fondamentales.

Ce n'est pas si simple avec l'analyse fondamentale.Il existe de nombreux facteurs influençant les prix qui ne relèvent pas des indicateurs économiques. Ce sont les élections, le Brexit, les rumeurs de toutes sortes, etc. Ils peuvent affecter le prix plus que tous les indicateurs économiques.

Oui, c'est vrai.
 

Pour Peter : Je ne prédis pas directement l'indice S&P500. L'objectif de ce document est de prédire les récessions afin de sortir du marché avant qu'elles ne surviennent et d'améliorer la rentabilité de la stratégie buy&hold. Bien que le S&P500 contienne les actions de 500 sociétés, il est piloté par des investisseurs institutionnels qui achètent et vendent l'indice lui-même (ou ses options), et non ses composants. 13 % par an, ça ne semble pas beaucoup, mais c'est suffisant pour les grosses sommes d'argent où la rotation est importante. Bernie Madoff a attiré ses clients en leur promettant un modeste 10 % par an, qu'il n'a pas réussi à atteindre.

A Uladzimir : Je suis d'accord que les fluctuations de prix dépendent de différents événements sociaux et politiques, élections, brexits, infections, etc. En fin de compte, tout se résume à l'offre et à la demande de produits/services, au chômage et à d'autres indicateurs de l'économie. Je ne me soucie pas des fluctuations quotidiennes des prix du marché. Même une simple stratégie d'achat et de conservation rapporte 7,4 % par an. Je tiens à éviter les positions longues pendant les récessions et à améliorer la rentabilité de cette stratégie. À propos, une autre stratégie consiste à acheter des biens immobiliers. Mais cela ne rapporte que 5 % par an, aux États-Unis.

 
Реter Konow:
Faux. Même si le sujet s'intitule "prévoir le marché sur la base d'indicateurs macroéconomiques", les indicateurs ne sont pas pertinents dans cette analyse. De simples variables substituées dans une formule après avoir été mathématiquement dépersonnalisées et désidentifiées de tous les liens sémantiques et logiques externes avec le monde. Des nombres secs, disposés en séries numériques abstraites, servent de modèle à un réseau neuronal, qui prédit... non, pas le marché, mais la même série numérique.

De ce point de vue, peu importe le nombre de cours dans l'indice et peu importe les politiques de leurs entreprises, mais toutes les variables et valeurs doivent être substituées dans la formule. Et c'est ainsi.

Donc, tout est correct, seulement le sujet devrait être appelé différemment, parce que dans le fond, il ne s'agit pas d'analyse fondamentale, mais d'analyse technique.

Alors, quelles sont les prévisions pour le S&P500 ?

 
Vladimir:

Je suis désolé, mais tout ça pour 5-13% par an ??? Cela n'en vaut pas la peine).