L'Apprentissage Automatique dans le trading : théorie, modèles, pratique et trading algo - page 3269
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Quel est donc l'objectif final de cette corrélation ?
Je vais pouvoir calculer ce que d'autres ne peuvent pas faire en raison de limitations techniques.
Les tests, la visualisation et l'action rapide sont également possibles.
L'optimisation finale est également normale, pour reprendre les paramètres des accords.
J'ai d'abord essayé de faire la variante frontale, c'est-à-dire de compter toutes les lignes à chaque fois. J'ai eu l'impression qu'il y avait une erreur dans Alglib, car je ne l'ai pas trouvée dans le mien.
Le résultat coïncide souvent.
Mais dans certaines situations, ce n'est pas le cas.
Si c'était toujours comme ça, ce serait ma faute. Mais il y a quelque chose de louche ici.
Print(Matrix1) ;
Print("------------------") ;
Print(Matrix2) ;
La matrice 2 contient les 5 premières réponses, puis des zéros.
Les matrices sont devenues similaires, mais IsEqual ne passe toujours pas. Il y a quelque chose d'autre quelque part...J'ai remplacé Res.Col(Corr.Row(0), i) ; par Res.Row(Corr.Row(0), i) ;
Remplacement de Res.Col(Corr.Row(0), i) ; par Res.Row(Corr.Row(0), i) ;
Il semble que ce soit une erreur.
Fabriqué
Print(Matrix1) ;
Print("------------------") ;
Print(Matrix2) ;
La Matrice2 contient les 5 premières correspondances, puis des zéros.
Les matrices sont devenues similaires, mais IsEqual ne passe toujours pas. Il y a quelque chose d'autre quelque part...J'ai remplacé Res.Col(Corr.Row(0), i) ; par Res.Row(Corr.Row(0), i) ;
J'ai trouvé le problème
Cela devrait ressembler à ceci
for (int i = 0 ; i < (int)Matrix.Cols() ; i++)
{
if (i)
Vector.SwapCols(0, i) ;
CBaseStat::PearsonCorrM2(Vector, MatrixIn, MatrixIn.Rows(), 1, MatrixIn.Cols(), Corr) ;
Res.Col(Corr.Row(0), i) ;
}
P.S.
En général, votre code est beau et concis. Je ferais tout en loops))))
Et PearsonCorrM2 peut être accéléré de 2 fois si vous comptez par triangle, c'est-à-dire en commençant par la fin. Comptez 100 lignes avec tous, puis 99 avec tous les 0-99, 99 et 100ème déjà comptés - vous pouvez simplement copier. ...50ème ligne avec tous jusqu'au 50ème et ainsi de suite.
J'ai lu quelque part qu'il était possible de lire rapidement la corrélation grâce à une transformée de Fourier rapide... C'est aussi une option pour accélérer.
Je l'ai fait. Cela a du sens lorsque la longueur de la chaîne est importante. Je vous montrerai un jour.
Le problème a été trouvé
Cela devrait être comme ceci