L'apprentissage automatique dans la négociation : théorie, modèles, pratique et algo-trading - page 285

 

Mihail Marchukajtes:
J A propos de l'apprentissage profond. Maintenant que beaucoup de gens en parlent, je veux en savoir plus. Et une dernière question. Qui a mis en œuvre le réseau récurrent sans professeur sur MT4 ?

=====================================

Lire ici, ici.

Quant à la deuxième question, je ne sais même pas quoi dire.

Bonne chance

 
Vladimir Perervenko:
Maintenant je vois. En d'autres termes, nous formons d'abord, disons, un réseau sans professeur. Ensuite, nous écrivons les poids obtenus en poids de classificateur et ensuite le classificateur est entraîné avec un professeur. Supposons que nous ayons reçu les poids du réglage fin guidé par les neurones, les poids continuent à être optimisés ?????. En d'autres termes, en préapprenant sans professeur, nous définissons des poids initiaux pour le classificateur qui l'amènent au minimum global. C'est comme ça que ça marche ?
 

Je n'utilise la cible en formation que comme une certaine base, que le modèle s'efforce d'atteindre, mais qu'il n'atteint jamais. Et pour estimer le modèle, je n'utilise pas la précision des prédictions, mais je construis un graphique de la balance commerciale en fonction de ces prédictions et j'estime ce graphique en utilisant, par exemple, le Sharp Ratio ou le Recovery Factor ou autre chose. Il est bon de travailler avec l'objectif "couleur de la prochaine barre". Nous pouvons aller encore plus loin et modifier génétiquement cette cible afin d'éviter d'utiliser les transactions sur les petits mouvements et de les laisser de côté. Vous pouvez également éviter ce problème si la taille de la bougie suivante est inférieure à l'écart. En général, la décision (acheter/vendre) sur chaque barre doit être sélectionnée génétiquement pour obtenir le plus grand profit.

Je prends certains indicateurs et d'autres instances, j'entraîne le modèle, je fais des prédictions sur les mêmes données d'entraînement, j'utilise les prédictions pour construire un graphique d'équilibre et je l'évalue. Ensuite, je prends beaucoup de temps pour sélectionner les paramètres du modèle et les paramètres des indicateurs et leurs combinaisons afin d'obtenir une meilleure estimation du graphique d'équilibre. Par conséquent, la précision de la prédiction ne dépasse pas 60 %, mais le modèle s'inscrit dans les tendances et ne réalise pas fréquemment des transactions sur chaque barre.
Ce n'est que la partie émergée de l'iceberg, sous l'eau il y a beaucoup plus de parties secrètes telles que l'estimation de l'utilité des intentions et la vérification que le modèle donne moins de poids aux mauvaises intentions ; la sélection d'un modèle approprié parmi les centaines disponibles dans R ; la validation croisée ; la sélection de la longueur de l'historique utilisée pour l'entraînement du modèle et des tonnes d'autres choses encore.

Au début, je n'ai réussi à le faire que sur D1, mais ensuite j'ai réussi à passer sur H1. Pour moi, les petites échéances sont déjà un bruit imprévisible.

 
Jele fais:


Je recommande à https://www.accern.com/ de l'essayer, je l'utilise, j'en suis très satisfait.

Ça a l'air cool, mais c'est un peu cher.

J'aimerais m'entraîner sur quelque chose de gratuit, voir comment ça fonctionne en temps réel sans délai, mais il y a une démo avec un énorme décalage.

Pouvez-vous décrire en quelques mots comment un tel signal est utilisé dans le trading et le MO ? Si ce n'est pas un secret, lorsque des nouvelles importantes sont publiées, avez-vous le temps d'effectuer des transactions ou est-ce qu'il suffit d'une seconde, d'une demi-seconde avant que quelqu'un ne se lance sur le marché et morde à l'hameçon ?

 
Dr. Trader:

Et pour évaluer le modèle, je n'utilise pas la précision de la prédiction, mais je trace l'équilibre du commerce sur de telles prédictions, et j'évalue ce graphique par exemple par le ratio de Sharpe ou le facteur de récupération ou autre chose.

C'est exactement ce que j'ai toujours fait, les prédictions sont toujours mauvaises, mais le commerce lui-même ne l'est pas toujours.....En général, l'objectif idéal n'est pas un vecteur avec des valeurs "00110" mais la recherche d'un minimum global, par exemple, nous demandons simplement à la grille de négocier pour que le facteur de récupération ne descende pas en dessous de 4 et nous la laissons ajuster ses poids jusqu'à ce qu'elle trouve une solution, nous ne nous soucions pas de la manière dont elle le fera... Cette méthode élimine tous les inconvénients de la cible vectorielle habituelle et présente de nombreux avantages. En outre, cette méthode est absolument objective par rapport au commerce, alors qu'une cible vectorielle est absolument subjective (chacun la voit différemment).

Il est impossible de réaliser un tel objectif dans R, c'est trop "populaire" dans ce sens, tout y est "rails", tout suit un modèle, c'est bon et mauvais à la fois. Je ne sais pas comment faire, si quelqu'un le sait, je serais très intéressé d'étudier le code, et si c'était fait avec R, ce serait un conte de fées...

Je prends certains indicateurs et d'autres instances, j'entraîne le modèle, je fais des prédictions en utilisant les mêmes données d'entraînement, je construis un graphique d'équilibre en utilisant les prédictions et je l'estime. Ensuite, je prends beaucoup de temps pour sélectionner les paramètres du modèle et les paramètres des indicateurs et leurs combinaisons afin d'obtenir une meilleure estimation du graphique d'équilibre. Par conséquent, la précision de la prédiction ne dépasse pas 60 %, mais le modèle s'inscrit dans les tendances et ne réalise pas fréquemment des transactions sur chaque barre.

Je peux vous dire comment améliorer considérablement le trading sur le net (si cela vous intéresse) en y apportant un peu de réflexion critique, j'obtiens pratiquement toujours de meilleurs résultats que sans cela.

 

mytarmailS:

Il n'est pas réaliste d'implémenter un tel objectif dans R, c'est trop "poppy" dans ce sens, tout y est "rails" tout dans un schéma, c'est bon et mauvais en même temps. Il faut donc écrire un réseau soi-même, je ne suis pas capable de le faire moi-même, si quelqu'un en est capable, j'étudierais le code avec grand intérêt, et si c'était fait en R, alors ce serait un conte de fées....


Vous vous trompez. En clair : "Je ne connais pas assez bien la langue et je ne sais pas comment faire ce que je veux faire". Vous ne devriez pas évaluer quelque chose que vous ne connaissez pas profondément. Le langage R peut réaliser n'importe quelle idée, pour autant que vous la connaissiez suffisamment bien. Si quelque chose n'est pas dans R, utilisez les rouages de Python.

Bien sûr, à proprement parler, l'apprentissage de tout modèle avec un professeur n'est pas un "apprentissage". L'apprentissage profond s'en approche, mais le plus prometteur est l'apprentissage pur sans enseignant et sa mise en œuvre - l'apprentissage par renforcement. Dans R, il n'y a jusqu'à présent qu'un seul paquet qui permet d'implémenter cette méthode - RNeat. Mais ce niveau ne peut être atteint qu'avec une excellente compréhension de tous les niveaux précédents. Ce domaine est bien développé en Python. Et il s'intègre parfaitement à R.

Bonne chance

 
Vladimir Perervenko:


Et encore, clarifier ce point sur l'apprentissage profond. Lorsque nous obtenons les poids des neurones à la première étape. Nous inscrivons ces poids dans une couche cachée du classificateur. Et nous commençons à former le classificateur par la variable de sortie. Si nous fixons une valeur dure pour les poids, alors ce qui est optimisé. A quoi ressemble le réglage fin ? ? ??? Pouvez-vous expliquer ????
 
Vladimir Perervenko:

Vous ne formulez pas l'idée correctement. Écrivez plus simplement : "Je ne connais pas assez bien la langue et je ne sais pas comment faire ce que je veux faire". Vous ne devriez pas évaluer quelque chose que vous ne connaissez pas en profondeur. Le langage R vous permet de mettre en œuvre n'importe quelle idée, pour autant que vous la connaissiez suffisamment bien. Si quelque chose n'est pas dans R, utilisez Python.

Bien sûr, à proprement parler, l'apprentissage de tout modèle avec un professeur n'est pas un "apprentissage". L'apprentissage profond s'en approche, mais le plus prometteur est l'apprentissage pur sans enseignant et sa mise en œuvre - l'apprentissage par renforcement. Dans R, il n'y a jusqu'à présent qu'un seul paquet qui permet d'implémenter cette méthode - RNeat. Mais ce niveau ne peut être atteint qu'avec une excellente compréhension de tous les niveaux précédents. Ce domaine est bien développé en Python. Et il s'intègre parfaitement à R.

Bonne chance

Néanmoins, vous n'avez pas de réponse à la question de savoir comment mettre en œuvre cette cible en utilisant R, si j'ai bien compris.
 
Mihail Marchukajtes:
Y Je vois. En d'autres termes, nous formons d'abord un réseau sans enseignant. Ensuite, nous inscrivons les poids obtenus dans les poids du classificateur, puis le classificateur est entraîné davantage avec un professeur. Supposons que nous ayons reçu les poids du réglage fin guidé par les neurones, les poids continuent à être optimisés ?????. En d'autres termes, en préapprenant sans professeur, nous définissons les poids initiaux du classificateur qui l'amènent au minimum global. C'est bien ça ?

Vous saisissez rapidement et pas tout à fait correctement. Il existe deux paquets dans R qui mettent en œuvre des réseaux de neurones profonds - deepnet et darch v.0.12. Le premier est assez simplifié, sans beaucoup de configurations et de fonctionnalités, mais vous permet de les essayer et de les évaluer. La seconde offre les plus grandes possibilités de concevoir et de configurer un réseau neuronal, mais un utilisateur non formé aurait beaucoup de mal à l'utiliser. Mais il a les bonnes capacités d'apprentissage profond.

1. Pré-entraînement d'un réseau auto-associatif (SAE/SRBM) sur la quantité maximale possible de données d'entrée non étiquetées.

2. Transférer les poids dans les couches cachées du réseau neuronal et former uniquement la couche supérieure sur les données non placées. Le paquet vous permet de spécifier les couches que vous voulez entraîner.

3. affiner l'ensemble du réseau avec un petit nombre d'époques (2-3) et un entraînement de bas niveau sur une petite quantité de données balisées. C'est là que les exemples autour des pics doivent être appliqués.

Une caractéristique très importante de la mise en œuvre de ce progiciel est la possibilité de préformation du réseau neuronal.

Bien sûr, il est possible de former un réseau sans pré-formation.

Le réseau est très rapide mais nécessite de l'expérience et des connaissances.

Bonne chance

 

Mihail Marchukajtes:
Et laissez-moi vous interroger sur une autre chose : l'apprentissage profond. Lorsque nous recevons les poids des neurones à la première étape. Nous inscrivons ces poids dans une couche cachée du classificateur. Et nous commençons à former le classificateur par la variable de sortie. Si nous fixons une valeur dure pour les poids, alors ce qui est optimisé. A quoi ressemble le réglage fin ? ? ??? Pouvez-vous expliquer ????

======================================

Je me demande de plus en plus souvent : "Pourquoi est-ce que j'écris des articles dans lesquels j'essaie de décortiquer, au mieux de mes capacités, les concepts de base du sujet ?"

Avez-vous lu mes articles sur l'apprentissage profond ? J'ai tout expliqué ici avec ce que je pense être un peu de détails. Nous n'avons pas le temps de répéter ce qui a été écrit. S'il y a une question qui n'y est pas traitée, je suis prêt à y répondre.

Bonne chance