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

 
Renat Fatkhullin:

Nous avons déjà dit que nous allions mettre en œuvre l'apprentissage automatique dans MQL5.

Bientôt, nous publierons un support natif pour les nombres complexes (prêt), les vecteurs de vitesse et les matrices. Il s'agit exactement de la fonctionnalité native du langage, et non des bibliothèques.

Ensuite, nous inclurons un large ensemble de mécaniques ML et donnerons une fonctionnalité similaire à TensorFlow. Cela nous permettra d'écrire un niveau complètement différent de robots natifs.

C'est intéressant, mais nous avons besoin d'interprètes de modèle du même CatBoost avec un support pour les prédicteurs catégoriels et différentes variantes de construction d'arbre, plus avec la multiclassification. Je pars du principe que j'ai besoin de fonctionnalités pour utiliser les réalisations modernes, puis de fonctionnalités pour les recréer, les améliorer, les recycler.

Construit dans différentes méthodes de regroupement, de classification, de conversion, de compression de la dimensionnalité, de transformation, de sélection de prédicteurs peut être utile, ajusté au commerce.

 
Aleksey Vyazmikin:

C'est intéressant, mais nous avons besoin d'interprètes du modèle CatBoost qui prennent en charge les prédicteurs catégoriels et les différentes variantes d'arbres, ainsi que la multi-classification. Je suppose que nous avons besoin de fonctionnalités pour utiliser les réalisations modernes, puis de fonctionnalités pour les recréer, les améliorer, les recycler.

Différentes méthodes de regroupement, de classification, de conversion, de compression de la dimension, de transformation, de sélection de prédicteurs sont intégrées et peuvent être utiles avec une marge de manœuvre pour le commerce.

Tout cela étape par étape.

Nous avons déjà fait des choses (complexes, vecteurs et matrices dans les versions alpha) que les langages conventionnels, y compris Python (qui n'a même pas de tableaux natifs de types simples) n'ont pas.

En réalité, les filtres et les moteurs de TensorFlow ne sont pas super complexes. Ils peuvent être portés de manière créative vers MQL5 sans le fardeau de la compatibilité avec tout et n'importe quoi qui est inhérent au projet initial.

En notre temps, nous avons transféré et présenté dans le code source de MQL5 environ 500 fonctions de R. Et dans MQL5, il est 3 à 50 fois plus rapide.

Статистические распределения в MQL5 - берем лучшее из R и делаем быстрее
Статистические распределения в MQL5 - берем лучшее из R и делаем быстрее
  • www.mql5.com
Рассмотрены функции для работы с основными статистическими распределениями, реализованными в языке R. Это распределения Коши, Вейбулла, нормальное, логнормальное, логистическое, экспоненциальное, равномерное, гамма-распределение, центральное и нецентральные распределения Бета, хи-квадрат, F-распределения Фишера, t-распределения Стьюдента, а также дискретные биномиальное и отрицательное биномиальные распределения, геометрическое, гипергеометрическое и распределение Пуассона. Есть функции расчета теоретических моментов распределений, которые позволяют оценить степень соответствия реального распределения модельному.
 
Renat Fatkhullin:

Nous avons déjà dit que nous allions mettre en œuvre l'apprentissage automatique dans MQL5.

Bientôt, nous publierons un support natif pour les nombres complexes (prêt), les vecteurs de vitesse et les matrices. Il s'agit exactement de la fonctionnalité native du langage, et non des bibliothèques.

Ensuite, nous inclurons un large ensemble de mécaniques ML et donnerons une fonctionnalité similaire à TensorFlow. Cela vous permettra d'écrire un niveau complètement différent de robots natifs.

Allez-vous utiliser WinML ou DirectML ou votre propre solution ?

Y aura-t-il un soutien pour ONNX ?

 
Renat Fatkhullin:

Nous avons déjà dit que nous allions mettre en œuvre l'apprentissage automatique dans MQL5.

Bientôt, nous publierons un support natif pour les nombres complexes (prêt), les vecteurs de vitesse et les matrices. Il s'agit exactement de la fonctionnalité native du langage, et non des bibliothèques.

Ensuite, nous inclurons un large ensemble de mécaniques ML et donnerons une fonctionnalité similaire à TensorFlow. Cela permettra d'écrire des robots natifs à un niveau absolument différent.

Renat, c'est vraiment intéressant. J'espère une documentation à part entière sur la direction développée. Merci !
 

Renat Fatkhullin:

Bientôt, nous mettrons en place un support natif pour les nombres complexes (prêt), les vecteurs de vitesse et les matrices.

La capacité de travailler avec des tableaux sans boucles, comme dans matlab et numpy (multiplication par nombre, multiplication élément par élément, tranche) est très nécessaire.

 
Rorschach:

La capacité de travailler avec des tableaux sans boucles, comme dans matlab et numpy (multiplication par nombre, multiplication élément par élément, tranche) est très nécessaire.

Ceci est déjà disponible au niveau de la langue.

 
Koldun Zloy:

Utiliserez-vous WinML ou DirectML, ou une autre solution de votre choix ?

Y aura-t-il un support ONNX ?

Tout d'abord, nous assurons une prise en charge native des nouveaux types de données et des opérations sur ces derniers directement dans le langage.

L'accélération des opérations via OpenCL/multithreading sera cachée et transparente pour les développeurs.

WinML/ONNX sera examiné plus tard.

 
Hors sujet supprimé.
 
Renat Fatkhullin:

Nous prévoyons d'appliquer OpenCL de manière automatique et transparente aux opérations matricielles et ML.

En fait, nous allons tirer le maximum sans utiliser des tonnes de bibliothèques CUDA et tensorflow monstrueusement configurables.

OpenCL ne sera-t-il pas automatiquement appliqué aux vecteurs ?
C'est-à-dire que si nous travaillons avec plusieurs vecteurs, il serait plus raisonnable d'utiliser une matrice ?
Ou les vecteurs seront-ils également pris en charge par OpenCL ?

Ajouté.
La ressource matérielle sur le CPU ou le GPU sera-t-elle sélectionnée automatiquement parmi ce qui est disponible ?
Ou sera-t-il possible de décider de la ressource à utiliser ?

 
Romain:

OpenCL ne s'appliquera-t-il pas automatiquement aux vecteurs ?
C'est-à-dire que si nous travaillons avec plusieurs vecteurs, il serait plus rationnel d'utiliser une matrice ?
Ou les vecteurs seront-ils également pris en charge par OpenCL ?

Ajouté.
La ressource matérielle sur le CPU ou le GPU sera-t-elle sélectionnée automatiquement parmi ce qui est disponible ?
Ou sera-t-il possible de déterminer quelle ressource utiliser ?

Il est peu judicieux d'utiliser OpenCL, dont le coût est élevé, pour des vecteurs uniques.

Lorsque nous trouvons un effet, nous l'appliquons. OpenCL n'est pas une fin en soi.

Attendez d'abord les versions bêta des opérations matricielles sans OpenCL. Une fois que la fonctionnalité de base aura été déboguée, nous passerons à l'accélération.

Tout sera certainement couvert par des tests de résistance et des benchmarks.