Je voudrais utiliser ANN pour automatiser le trading de devises, de préférence USD / EUR ou USD / GBP. Je sais que c'est difficile et peut-être pas simple. J'ai déjà lu quelques articles et fait quelques expériences mais sans trop de chance. J'aimerais obtenir des conseils d'EXPERTS pour que cela fonctionne.
Voici ce que j'ai fait jusqu'à présent:
- J'ai reçu des données tick par tick pour le mois de juillet 2013. Il y a une offre / demande / volume d'offre / volume de demande.
- Extrait tous les ticks pour la période de 12h à 14h pour tous les jours.
- À partir de ces données, créé un ensemble de données où chaque entrée se compose de n valeurs d'enchères dans l'ordre.
- Utilisé ces données pour former un ANN avec n-1 entrées et la sortie est la nième valeur d'offre prévue.
- L'ANN avait n-1 neurones d'entrée, (n-1) * 2 + 1 neurones cachés et 1 neurone de sortie. La couche d'entrée avait TF linéaire, cachée avait TF log et la sortie avait TF linéaire.
- Formé le réseau avec rétropropagation avec n-125 d'abord puis 10.
Pour les deux n, le MSE n'est pas tombé en dessous de 0,5 et est resté à cette valeur pendant l'entraînement complet. En supposant que cela pourrait être dû au fait que les séries temporelles sont totalement aléatoires, j'ai utilisé le package R pour trouver une autocorrélation partielle sur l'ensemble de données (pacf). Cela a donné des valeurs non nulles pour 2 et 3 retards seulement.
Question 1: Qu'est-ce que cela signifie exactement?
Ensuite, j'ai utilisé exposant hurst pour évaluer le caractère aléatoire. Dans R, hurst (valeurs) a montré des valeurs supérieures à 0,9.
Question 2: Il est censé être presque aléatoire. Doit-il avoir une valeur plus proche de 0,5?
J'ai répété la formation de l'ANN avec n = 3. L'ANN a été formé et a pu obtenir une valeur assez faible pour le MSE. Cependant, la sortie calculée de cette ANN ne diffère pas beaucoup de la (n-1) e valeur de l'offre. Il semble qu'ANN prend la dernière enchère comme la prochaine enchère! J'ai essayé différentes structures de réseau (toutes les perceptions multicouches), différents paramètres de formation, etc., mais les résultats sont les mêmes.
Question 3: Comment puis-je améliorer la précision? Existe-t-il d'autres méthodes de formation que la rétropropagation?
la source
Réponses:
Les résultats que vous voyez ne sont pas un sous-produit de votre produit de formation, mais
neural nets
ne sont pas un excellent choix pour cette tâche.Neural nets
sont effectivement un moyen de créer une fonction non linéaire d'ordre élevé en composant un certain nombre de fonctions plus simples. C'est souvent une très bonne chose, car cela permet aux réseaux neuronaux de s'adapter à des schémas très complexes.Cependant, dans une bourse, tout modèle complexe, une fois négocié, se détériorera rapidement. La détection d'un motif complexe ne générera généralement pas de résultats utiles, car il s'agit généralement de motifs complexes à court terme. De plus, selon la métrique que vous choisissez, il existe un certain nombre de façons de bien performer qui ne seront pas rentables en termes d'investissement (comme simplement prédire la dernière valeur dans votre exemple).
En outre, le marché boursier est étonnamment chaotique, ce qui peut entraîner un sur-
neural net
ajustement. Cela signifie que les modèles qu'il apprend se généraliseront mal. Quelque chose dans le sens de simplement voir un stock diminuer sur une journée et de décider uniformément que le stock diminuera toujours simplement parce qu'il a été vu à relativement court terme. Au lieu de cela, les techniques commeridge
etrobust regression
, qui identifieront des modèles plus généraux et moins complexes, font mieux.Le gagnant d'un concours Kaggle similaire utilisé
robust regression
pour cette raison même. Vous obtiendrez probablement de meilleurs résultats si vous passez à un modèle d'apprentissage superficiel qui trouvera des fonctions d'un ordre polynomial inférieur, par rapport aux fonctions complexes profondes d'un réseau neuronal.la source
Essayez un réseau neuronal récurrent, un modèle bien adapté aux données de séries chronologiques. Ils sont notoirement difficiles à former, mais semblent bien fonctionner lorsqu'ils sont formés correctement: http://cs229.stanford.edu/proj2012/BernalFokPidaparthi-FinancialMarketTimeSeriesPredictionwithRecurrentNeural.pdf
la source