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

 
Evgeny Dyuka #:

Je ne comprends pas pourquoi toutes ces fantaisies avec ONNX en premier lieu.

Il y a un scénario de base évident pour faire de MT5 et MO des amis :
1. A partir de OnInit() le script python est démarré comme un processus séparé.
2. Nous avons besoin de quelques fonctions d'échange d'information entre python et EA, dans le mode où EA peut attendre que l'information arrive.
3. Nous créons un dossier Models et y plaçons des modèles TensorFlow.

C'EST TOUT ! !! L'intégration de MT et MO a eu lieu ! Tout le monde est content.

Cela pourrait être plus simple... connecter Redis, obtenir RedisAI avec PyTorch, ONNX, le support de TensorFlow, et si désiré, distribuer la charge à travers les nœuds et les nuages.

 
Maxim Dmitrievsky #:
Une béquille de moins, la gamme de modèles utilisés sera grandement élargie (avant, tout le monde optimisait les poids via les entrées terminales). Apparemment, ça devrait fonctionner sur mac aussi, je vérifierai bientôt :) parfois c'est bien de ne rien faire et d'attendre que la nourriture arrive toute seule dans la bouche

Bon, je me suis impliqué dans cette affaire pour élever le niveau de python - je ne peux plus m'en passer maintenant) je pense commencer par LightGBM. Il semble y avoir deux façons d'obtenir ONNX pour lui - onnxmltools et skl2onnx.

 
Notez que l'exécution native des modèles onnx vous permet de les exécuter facilement et très rapidement dans le testeur et le claudnet sans surcharge du système, ce qui est presque impossible avec des intégrations tierces.

C'est au cours des tests de stratégie que toutes ces questions "quel est le problème de perdre 50 ms par appel" augmenteront le temps de test par des milliers de fois.
 
Evgeny Dyuka #:
J'entends constamment cette légende sur l'importance de la vitesse, mais je n'arrive pas à comprendre en quoi elle est importante.
En tenant compte du spread et des commissions de change/courtier, vous devez prévoir pour un temps mesuré en dizaines de minutes ou d'heures. Qu'est-ce que 50 millisecondes de différence ont à voir là-dedans ?
En quoi le fait de battre MQ de 5 millisecondes sur fxsaber vous aide-t-il dans la vie réelle ?

C'est comme vous voulez, mais je ne serais pas contre une augmentation de la vitesse, même minime. Aussi bien pour les tests/optimisation que pour le trading.

 
Renat Fatkhullin #:
Notez que l'exécution native des modèles onnx permet de les exécuter facilement et très rapidement dans le testeur et le claudnet sans surcharge du système, ce qui est presque impossible avec des intégrations tierces.

C'est au cours des tests de stratégie que toutes ces questions "quel est le problème de perdre 50 ms par appel" augmenteront le temps de test par des milliers de fois.
Je crains que l'optimisation dans le nuage ne fonctionne pas. Le but de l'optimisation est de modifier les paramètres de la stratégie. Par exemple, la sélection TP/SL. Lorsqu'ils sont modifiés, les données pour la formation changent. En d'autres termes, il est nécessaire d'entraîner le modèle avec chaque variante de paramètres et, à cette fin, le logiciel MO (Catbust, réseau neuronal, etc.) doit être installé. Il est peu probable que quelqu'un ait installé le logiciel requis, dans la bonne version, dans le nuage.
.

L'entraînement ne peut donc se faire que dans le testeur, sur la machine du développeur.
Et cela n'a aucun sens de télécharger le modèle fini dans le nuage.

 
Maxim Kuznetsov #:

Cela peut être plus simple... connecter Redis, obtenir RedisAI avec le support de PyTorch, ONNX, TensorFlow, et si désiré, distribuer la charge à travers les nœuds et les nuages.

Notre avion dispose à bord d'une piscine, d'une piste de danse, d'un restaurant, d'espaces de loisirs confortables, d'un jardin d'hiver... Chers passagers, attachez vos ceintures, nous allons essayer de décoller avec toute cette merde.

 
Forester #:
Je crains que l'optimisation dans le nuage ne fonctionne pas. Le but de l'optimisation est de modifier les paramètres du TS. Par exemple, la sélection TP/SL. Lorsqu'ils sont modifiés, les données pour l'entraînement changent. Il est donc nécessaire d'entraîner le modèle avec chaque variante de paramètres et, à cette fin, le logiciel MO (Catbust, réseau neuronal, etc.) doit être installé. Il est peu probable que quelqu'un ait installé le logiciel requis, dans la bonne version, dans le nuage.
.

L'entraînement ne peut donc se faire que dans le testeur, sur la machine du développeur.
Et cela n'a aucun sens de télécharger le modèle fini dans le nuage.

Pour être juste, un modèle n'est pas nécessairement une TS complète. Par exemple, le modèle prédit une augmentation de prix, et dans les paramètres de l'EA, une valeur seuil pour l'augmentation prédite est fixée, que l'EA tente de négocier.

 
Aleksey Nikolayev #:

Notre avion est équipé d'une piscine, d'une piste de danse, d'un restaurant, de salons confortables, d'un jardin d'hiver... Chers passagers, attachez vos ceintures, nous allons essayer de décoller avec toute cette merde.

Je pense que cela correspond à l'évolution actuelle de MQL. Il s'agit d'une tentative de tout intégrer en même temps au lieu de procéder à des intégrations.

 
Maxim Kuznetsov #:

Selon moi, cela correspond au développement actuel de MQL. Une tentative de tout intégrer en une seule fois au lieu de procéder à des intégrations.

+

 
Maxim Kuznetsov #:

Selon moi, cela correspond au développement actuel de MQL. Une tentative de tout intégrer en une seule fois au lieu de procéder à des intégrations.

Les voies d'intégration ont toujours été ouvertes :

  • DLL natives
  • DLL .NET
  • HTTP/HTTPS
  • Sockets brutes
  • Fichiers/Pipes
  • SQLite
  • Bibliothèque Python


Mais ce sont les intégrations dans le langage natif qui permettent d'écrire des applications complètes.

En ce qui concerne le ML, nous avons travaillé et mis en œuvre des vecteurs, des matrices et des opérations sur ces derniers comme base de l'apprentissage automatique :

  • les vecteurs, les matrices et leurs opérations comme base de l'apprentissage automatique
  • l'intégration avec Python, y compris le lancement de programmes Python dans le terminal en tant que scripts ordinaires
  • utilisation de modèles ONNX natifs, ce qui ouvre une porte énorme à l'application pratique des neuromodèles

Nous parvenons à créer des solutions complètes et rapides.

Les mots "essayer de bachoter" n'indiquent qu'une attitude négative sans justification rationnelle. D'autant plus que la disponibilité des possibilités ne limite en rien l'auteur.