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

 
Je lance un sujet sur l'utilisation de Python dans la formation dans le forum où je vis. Il décrira tout ce dont un trader peut avoir besoin pour développer un SCM. Il n'y aura pas de stratégies toutes faites. La tâche consiste à trouver un "algorithme" pour créer des SCM rentables. Et peu importe les méthodes qui seront utilisées. L'essentiel est qu'ils soient utiles. Le lien sera dans mon fil d'actualité.
 
Grigoriy Chaunin:
Tout est simple avec les réseaux neuronaux en MT. Il existe une bibliothèque de Microsoft CNTK. Il est implémenté pour Python, C# et C++. Toute l'analyse et la formation du réseau sont effectuées en Python, tandis que le C++ est utilisé pour écrire une DLL qui charge le réseau formé et effectue des calculs à l'aide de celui-ci. À mon avis, c'est la meilleure option. La deuxième option, la connexion de Python à MT. J'ai écrit une bibliothèque simple pour cela. Bibliothèque. Nous le connectons et pouvons utiliser tout ce qui est disponible en Python. Et il y a beaucoup de choses disponibles. Je me demande si je dois commencer à écrire sur l'apprentissage automatique dans mon blog.
Pourriez-vous expliquer une chose, après l'initialisation d'un script, il se bloque en mémoire ? C'est-à-dire que les modules chargés par le script python devraient également rester en mémoire, non ?
 
Oui. Le code MQL est censé appeler les fonctions du script Python à chaque tick.
 
Maxim Dmitrievsky:

il serait intéressant de lire les stratégies et les réflexions/expériences personnelles... pour moi personnellement

parce que la plupart des choses qu'ils écrivent ici sont juste des conneries sur le fait de passer en revue un tas de bibliothèques et ce qui est mieux pour écrire dessus... c'est une épidémie, et tout est gaspillé.

Bien que l'idée de base ait été exprimée par fxsaber il y a longtemps, avec la même approche, le sujet pourrait aussi bien être clos, car il est faux dès le départ.

Je suis d'accord.

Le sujet est devenu un véritable fourre-tout sans aucun exemple concret ni théorie.

Remédions à cette situation.

Pour commencer, je conseille à chacun de lire comment définir la taille d'un échantillon pour les prévisions (voir le fichier joint).

Dossiers :
 
Alexander_K2:

Je suis d'accord.

Le sujet est devenu complètement absurde, sans exemples concrets ni théorie.

Réparons la situation.

Pour commencer - je conseille à tout le monde de lire comment déterminer la taille de l'échantillon pour les prévisions (voir le fichier joint).

Merci Alexander, peut-être que vous en tirerez quelque chose d'utile, je le lirai.

 
Alexander_K2:

Je suis d'accord.

Le sujet est devenu complètement absurde, sans exemples concrets ni théorie.

Réparons la situation.

Pour commencer, je suggère à chacun de lire comment déterminer la taille de l'échantillon pour les prévisions (voir le fichier joint).

Un article merveilleux dans son essence. Les résultats présentés dans l'article font cruellement défaut. C'est l'absence d'un tel travail qui donne une base pour prospérer sur la branche "rubbish in, rubbish out".


Mais l'article est présenté dans la tradition du conditionnel à la soveticus - belle théorie sans utilité pratique : il n'y a pas de code.

 

Pour l'instant, il existe un modèle stable. Il a encore besoin de travailler dessus, mais il est occupé par d'autres tâches.

Entrée = prix + 13, 26 yema ;

Prétraitement, sortie = sigmoïde (max, min, close), delta (open-close), dérivée (max, min, close), logarithme de la dérivée (max, min, close), detrend (close-eme13, close-eme26), yema(13, 26), dérivée yema(13, 26) ; Convertir l'ensemble de données en séries temporelles (1 bougie + 5 dernières). Total 16 x 6 = 96 paramètres.

Architecture :
Normalisation des lots(96) ;
GRU(96, L2, Dropout=0.5, 'elu') ;
GRU(64, L2, Dropout=0.5, 'elu') ;
BatchNormalization(64, Dropout=0.3) ;
Dense(32, Dropout=0.3, 'elu') ;
Dense(16, 'elu') ;
Dense(8, 'elu') ;
Dense(3, 'softmax') ;
Optimiseur=Nadam ;
Perte=Centropie croisée catégorielle ;

Les signaux BouncedMA permettent de sortir d'une bougie en avance (ci-dessus dans la branche) ;

Estimations : perte ~0,7-0,8 ; précision ~0,55 ;
Mais ces estimations ne parlent pas de la qualité des signaux du modèle. Ils sont plus faibles, en raison du fait que les signaux sont d'entraînement = 1,0, 0,95, 0,0, -0,95, -1,0, Et la prévision de la classe achat/vente fluctue ~abs(0,45, 0,7).
De plus, sur un ensemble de données de 5000 lignes, l'entraînement fonctionne sur 0,8 partie, ce qui signifie que le modèle ne voit même pas les dernières données de cotation (~1000 lignes). La prédiction est faite sur les 100 derniers chandeliers.

Pronosis

modèle

perteacc

Comme vous pouvez le voir, l'entraînement peut être arrêté à ~45 époques.

prédire

Code, Indicateur.

 
Vizard_:

)))

Apprentissage avec renforcement = apprentissage sans professeur. Un algorithme très gourmand.

Une Maximka défoncée entre dans un casino. Devant lui, une pile de machines "bandit manchot". Il commence à jouer avec chacun d'eux et enregistre les résultats.

Il s'avère qu'une des machines est meilleure et le joyeux Maxim commence à jouer uniquement avec elle. Mais son bonheur n'a pas duré longtemps...

http://www.machinelearning.ru/wiki/index.php?title=Reinforcement_learning


oui, les bandits que j'ai déjà passés :) peuvent rendre epsilon gourmand et passer périodiquement de l'un à l'autre

 
 

C'est un très bon post. Merci, je n'y avais jamais pensé.

C'est comme ça -

I ) Nous prenons un neurone, nous le faisons fonctionner en direct, et en même temps nous prenons sa configuration. Le croupier devient fou avec ses profits, le croupier commence à faire bouger le prix contre lui, mais il est en quelque sorte prêt pour cela et continue à négocier de manière rentable, le croupier copie les transactions sur l'interbancaire et cela rend les robots d'échange fous, ils commencent à ralentir et le marché mondial part à la ruine. L'agent interagit avec l'environnement. C'est du commerce avec renforcement. Je pense qu'un lundi récent, un certain google testait ses nouveaux robots de trading avec des renforts, ceci s'intègre parfaitement.

II ) On prend un neurone, on le fait échanger sur l'histoire. Trouvez les poids et la configuration idéaux du neurone qui lui permettent de négocier parfaitement sur l'historique. Le renforcement ne fonctionne pas, c'est un apprentissage sans professeur. Et le plus probable est qu'il sera suralimenté et échouera.


En bref, le plan est d'avoir une centaine de comptes en direct, chacun avec un neurone pendant quelques jours. La génétique recueille les résultats des neurones et reprend leur nouvelle configuration, générant de nouveaux robots tous les deux jours, puis attendant les résultats pour en créer à nouveau.

Raison: