Découvrez un indicateur performant pour la sélection automatique des coefficients dans un portefeuille pseudo-stationnaire, qui cherche à atteindre un équilibre autour de zéro.
Pour fonctionner correctement, cet indicateur nécessite la présence de la bibliothèque AlgLib dans le dossier Include\Math de votre terminal.
Un peu de théorie
Chaque instrument évolue dans sa propre direction, chaque direction représentant une dimension dans un tableau multidimensionnel. En manipulant la matrice, c'est-à-dire en multipliant chaque élément par un certain nombre, nous cherchons à identifier un axe avec la distance minimale entre cet axe et l'ensemble des instruments, c'est-à-dire la variance totale la plus faible. Le nombre utilisé pour multiplier chaque élément de la matrice devient alors la valeur de l'angle, indiquant comment l'instrument doit être orienté pour se déplacer dans la même direction que les autres. Cette valeur d'angle est le coefficient pour chaque devise dans le portefeuille.
Si la valeur du coefficient est supérieure à 0, la devise est achetée ; si elle est inférieure à 0, elle est vendue. Ainsi, nous pouvons maintenir la stationnarité du synthétique créé en recalculant les coefficients régulièrement. De plus, la PCA ne se contente pas de trouver l'axe avec la variance la plus faible pour le portefeuille, mais en identifie plusieurs. Le nombre d'instruments dans le portefeuille correspond au nombre de composants (vecteurs). Chacun d'eux est appelé composante principale et détermine son impact sur le mouvement global du portefeuille.
Problèmes potentiels
Si le graphique ne s'affiche pas, vérifiez les messages dans l'onglet Experts. Il se peut qu'il y ait des erreurs ou que des synchronisations avec d'autres graphiques soient en cours. En l'absence de messages, essayez de naviguer sur d'autres périodes temporelles.
Les valeurs vectorielles obtenues ont été vérifiées par rapport à celles calculées avec le package R, donc ces valeurs sont correctes. Cependant, le signe d'un coefficient spécifique peut être erroné, car la PCA ne prend pas en compte les signes. Le signe "-" ou "+" doit donc être déterminé empiriquement, c'est-à-dire par essais et erreurs.
Le problème #2 est illustré avec des images ici : http://stats.stackexchange.com/questions/34396/im-getting-jumpy-loadings-in-rollapply-pca-in-r-can-i-fix-it
Paramètres
InpFrame = 300; // Fenêtre flottante pour le calcul des coefficients, pour chaque barre de InpDepth, effectuez des calculs de InpFrame
InpDepth = 1000; // Nombre total de barres dans l'historique, pour lequel le graphique est dessiné
InpForward = 500; // La barre où arrêter de recalculer les coefficients et utiliser les précédents, c'est OOS
InpPeriod = 1; // Lissage pour le MA, pour rendre le graphique moins saccadé
InpTimePeriod = PERIOD_CURRENT; // Période de temps pour les calculs
InpNormalize = true; // Normalisez les prix avant de les afficher, pour atténuer les écarts de volatilité de USDJPY et EURGBP
InpSynthetics = true; // Dessinez le synthétique résumé multiplié par les coefficients trouvés ou chaque paire individuellement
InpPrices = Logs; // Algorithme de normalisation des paires
InpSymbols = "AUDUSD,USDCHF,USDCAD"; // Paires pour le portefeuille
InpMagic = "ID" // Nom personnalisé de l'indicateur, pour faciliter le placement de plusieurs instances sur un même graphique sans conflits
L'idée a été adoptée d'ici : https://www.mql5.com/en/code/9908



Articles connexes
- Découvrez l'indicateur Tymen STARC Bands MTF pour MetaTrader 5
- Découvrez l'indicateur 3 en 1 Stochastic pour MetaTrader 5
- Découvrez l'Indicateur Donchian Ultimate pour MT5 : Un Outil Indispensable pour les Traders
- Découvrez le 3XMA_Ichimoku : Un Indicateur Incontournable pour MetaTrader 5
- Découvrez l'indicateur Ultra Spearman Rank Correlation pour MetaTrader 5