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

 
mytarmailS:

faire un R-connect.

déjà fait, mais ça n'a pas marchéhttps://www.mql5.com/ru/forum/306688/page10#comment_11308158

 
Renat Fatkhullin:
Pouvez-vous partager l'information ?
1) Utilisez-vous la bibliothèque python de MT5 ?
2) L'utilisez-vous en dehors ou à l'intérieur de MT5 ?
3) Quelles sont les caractéristiques qui manquent à la bibliothèque ? Accès aux indicateurs ?

Nous préparons une mise à jour de MQL5 en ajoutant des opérations matricielles rapides. Cela permettra d'effectuer des calculs massifs.

Ensuite, nous développerons des connecteurs vers des progiciels d'analyse et mettrons en œuvre l'intégration standard WinML.
1) faire une intégration normale avec sqlite3
2) afficher l'erreur lorsque le script s'arrête brusquement, comme en python, avec un lien vers la chaîne et une description de l'erreur et qui serait par défaut dans le log
3) ajouter l'intégration avec api telegram, au moins un ensemble minimal
4) permettre de mettre sur le marché des EAs avec webrequest, c'est à dire avec la capacité de demander des informations de l'extérieur
 
Evgeny Dyuka:
1) faire une intégration normale avec sqlite3
2) afficher l'erreur quand le script s'est arrêté brusquement, comme en python, avec un lien vers la chaîne et la description de l'erreur, et par défaut l'envoyer au journal
3) ajouter l'intégration avec api telegram, au moins un ensemble minimal
4) permettre de mettre sur le marché des conseillers avec webrequest, c'est à dire avec la possibilité de demander des informations de l'extérieur.

1) a longtemps existé en tant que fonctions régulières de DatabaseXXX, même un navigateur de base de données sqlite est intégré dans l'éditeur, un article détaillé sur SQL dans MQL5

2) toute la sortie des scripts python est écrite en détail dans les logs

3) cela existe depuis longtemps en tant que solutions séparées et ne s'applique pas à la bibliothèque python. J'ai posé des questions sur la liaison python. Au lieu du télégramme, il est pratique d'utiliser les poussoirs ordinaires des téléphones portables.

4) a toujours été disponible

SQLite: нативная работа с базами данных на SQL в MQL5
SQLite: нативная работа с базами данных на SQL в MQL5
  • www.mql5.com
Разработка торговых стратегий связана с обработкой больших объемов данных. Теперь прямо в MQL5 вы можете работать с базами данных с помощью SQL-запросов на основе SQLite. Важным преимуществом данного движка является то, что вся база данных содержится в единственном файле, который находится на компьютере пользователя.
 
Igor Makanu:

déjà fait, mais ça n'a pas marchéhttps://www.mql5.com/ru/forum/306688/page10#comment_11308158

tristement....

le produit le plus populaire au monde après matlab pour les calculs statistiques, appelez-le une ferme collective ;)))

Le niveau est clair et la ferme collective aussi...

 
mytarmailS:

tristement....

le produit le plus demandé au monde après matlab pour les calculs statistiques, appelez-le une ferme collective ;)))

le niveau est clair et la ferme collective aussi...

Le niveau est montré ici : Distributions statistiques dans MQL5 - Profitez du meilleur de R et plus rapidement

Comparaison de la vitesse de calcul

Nous avons préparé des scripts pour mesurer le temps de calcul des fonctions de densité (pdf), des fonctions de probabilité (cdf), des fonctions calculant les quantiles et des fonctions générant des nombres pseudo-aléatoires afin de comparer la vitesse de calcul des fonctions statistiques.

Les calculs ont été effectués sur un tableau de 51 valeurs ; pour les distributions continues, les valeurs de la fonction ont été calculées dans la plage de 0 à 1, et pour les distributions discrètes de 0 à 50. Le temps de calcul des fonctions statistiques dans R a été mesuré à l'aide de la bibliothèque de microbenchmarks. Le temps de calcul de la fonction dans MQL5 a été calculé à l'aide de la fonction GetMicrosecondCount(). Le script de calcul TestStatBenchmark.mq5 se trouve dans le dossier terminal_data\MQL5\Scripts\UnitTests\Stat. Le script pour R et les résultats des mesures de la vitesse de calcul sont donnés en annexe.

Les résultats ont été mesurés sur un processeur Intel Core i7-4790, 3,6 Ghz, 16 Go de RAM, Windows 10 x64.

Temps de calcul des résultats de la mesure (en microsecondes) :


Distribution
Temps MQL5
calcul PDF (µs)
R temps
calcul PDF (µs)
PDF
R/MQL5
Temps MQL5
Calcul CDF (µs)
Temps R
calcul CDF (µs)
CDF
R/MQL5
Temps de calcul du quantile du MQL5
(µs)
Temps de calcul R
quantile (µs)
Quantile
R/MQL5
MQL5 Temps de génération
nombres aléatoires (µs)
R temps de génération
nombres aléatoires (µs)
Random
R/MQL5
1
Binomiale
4.39
11.663
2.657
13.65
25.316
1.855
50.18
66.845
1.332
318.73
1816.463
5.699
2
Bêta
1.74
17.352
9.972
4.76
15.076
3.167
48.72
129.992
2.668
688.81
1723.45
2.502
3
Gamma
1.31
8.251
6.347
8.09
14.792
1.828
50.83
64.286
1.265
142.84
1281.707
8.973
4
Cauchy
0.45
1.423
3.162
1.33
15.078
11.34
1.37
2.845
2.077
224.19
588.517
2.625
5
Exponentiel
0.85
3.13
3.682
0.77
2.845
3.695
0.53
2.276
4.294
143.18
389.406
2.72
6
Uniforme
0.42
2.561
6.098
0.45
1.423
3.162
0.18
2.846
15.81
40.3
247.467
6.141
7
Géométrique
2.3
5.121
2.227
2.12
4.552
2.147
0.81
5.407
6.675
278
1078.045
3.879
8
Hypergéométrique
1.85 11.095
5.997
0.9
8.819
9.799
0.75
9.957
13.28
302.55
880.356
2.91
9
Logistique
1.27
4.267
3.36
1.11
4.267
3.844
0.71
3.13
4.408
178.65
626.632
3.508
10
Weibull
2.99
5.69
1.903
2.74
4.268
1.558
2.64
6.828
2.586
536.37
1558.472
2.906
11
Poisson
2.91
5.974
2.053
6.26
8.534
1.363
3.43
13.085
3.815
153.59
303.219
1.974
12
F
3.86
10.241
2.653
9.94
22.472
2.261
65.47
135.396
2.068
1249.22
1801.955
1.442
13
Chi carré
2.47
5.974
2.419
7.71
13.37
1.734
44.11
61.725
1.399
210.24
1235.059
5.875
14
Chi carré non central
8.05
14.223
1.767
45.61
209.068
4.584
220.66
10342.96
46.873
744.45
1997.653
2.683
15
Noncentral F
19.1
28.446
1.489
14.67
46.935
3.199
212.21
2561.991
12.073
1848.9
2912.141
1.575
16
Bêta non central
16.3
26.739
1.64
10.48
43.237
4.126
153.66
2290.915
14.909
2686.82
2839.893
1.057
17
Binomiale négative
6.13
11.094
1.81
12.21
19.627
1.607
14.05
60.019
4.272
1130.39
1936.498
1.713
18
Normal
1.15
4.267
3.71
0.81
3.983
4.917
0.7
2.277
3.253
293.7
696.321
2.371
19
Lognormal
1.99
5.406
2.717
3.19
8.819
2.765
3.18
6.259
1.968
479.75
1269.761
2.647
20
T
2.32
11.663
5.027
8.01
19.059
2.379
50.23
58.596
1.167
951.58
1425.92
1.498
21
T non central
38.47
86.757
2.255
27.75
39.823
1.435
1339.51
1930.524
1.441
1550.27
1699.84
1.096
<PDF R/MQL5
3.474 <CDF R/MQL5>
3.465
<Quantile R/MQL5>
7.03
<Random R/MQL5>
3.13

Tableau 4. Temps de calcul des fonctions statistiques dans R et MQL5 (en microsecondes).

Pour R nous avons pris les valeurs de temps minimum et pour MQL5 nous avons pris les valeurs moyennes (pdf_mean, cdf_mean, quantile_mean, random_mean).

Comme le montre le tableau, même dans ces conditions, le calcul des fonctions de la bibliothèque statistique MQL5 est plusieurs fois plus rapide que R. En moyenne, MQL5 calcule 3 à 7 fois plus vite que R, même en tenant compte du fait que les variantes comparées des fonctions R sont en fait écrites en C++.

En pratique, le compilateur du langage MQL5 s'est avéré beaucoup plus rapide que les implémentations C++ des fonctions dans R, ce qui montre la grande qualité de nos développements. Lorsque vous transférez des programmes de R vers MQL5, vous bénéficiez d'une accélération significative et vous n'avez pas besoin d'utiliser des DLL tierces.


MQL5 est maintenant des centaines de fois plus rapide que Python, mais en introduisant des opérations matricielles natives dans le langage de base, nous verrons la vitesse des mathématiques, qui est plusieurs fois plus rapide que les modules Python tiers.

 
Renat Fatkhullin:

1) existe depuis longtemps en tant que fonction standard de DatabaseXXX, même le navigateur de base de données sqlite est intégré à l'éditeur, article détaillé sur SQL dans MQL5.

2) toute la sortie des scripts python est écrite en détail dans les logs

3) cela existe depuis longtemps en tant que solutions séparées et ne s'applique pas à la bibliothèque python. J'ai posé des questions sur la liaison python. Au lieu du télégramme, il est pratique d'utiliser des poussoirs ordinaires dans les téléphones mobiles

4) a toujours été disponible

Merci pour la réponse détaillée, j'ai en quelque sorte manqué le DB.
 

La vitesse est bonne, mais loin d'être décisive

Lorsque vous avez titré votre article "Statistical Distributions in MQL5 - Using the Best of R and Making it Faster", j'ai...

Je vous jure que j'ai ri toute la journée ! Vous avez pris trois fonctions parmi des millions de fonctions dans R, vous les avez inventées et réécrites dans MQL5 et c'est tout ! !! ))) Vous avez tous surpassé R !!! Ahahaha )))) ne peut pas m'excuser...


Et le fait que R possède la plus grande base de données de toutes les méthodes statistiques pour n'importe quelle direction, avec des milliers de bibliothèques... Quand allez-vous le réécrire ?

Et la liste complète de tous les algorithmes MoD, des centaines de bibliothèques... Quand allez-vous la réécrire ?

Qu'en est-il de la base de données CRAN avec les derniers produits du monde, que tout le monde veut et peut essayer... Quand allez-vous la réécrire ? Et surtout POURQUOI ?

Saviez-vous que je peux remplacer une centaine de µl avec une ligne de code dans R ?


Tout ce que vous avez dans vos arguments est la vitesse, la vitesse de trois fonctions que vous avez prises de R.

Saviez-vous que vous pouvez écrire n'importe quelle fonction C++ dans R ?


Eh, ok... pourquoi j'invente tout ça... c'est inutile de toute façon, tu as déjà tout résolu... et moi aussi...

Une chose que je demande - n'écrivez plus que "vous prenez le meilleur de R" - vous ne savez pas de quoi vous parlez...


Même si vous copiez un millier de fonctions dans µl, cela ne représenterait même pas un centième d'un pour cent de ce que possède R, quel est l'intérêt de faire ces bêtises ?

Pourquoi ne pas laisser les gens se transporter eux-mêmes dans ce monde de statistiques, d'apprentissage automatique, de traitement du signal, d'économétrie et bien plus encore...

 
mytarmailS:

La vitesse est bonne, mais loin d'être décisive

Lorsque vous avez titré votre article "Distributions statistiques dans MQL5 - prenez le meilleur de R et rendez-le plus rapide", j'ai ri toute la journée !

Je vous jure que j'ai ri toute la journée ! Vous avez pris trois fonctions parmi des millions de fonctions dans R, vous vous êtes fait votre propre opinion sur elles et vous les avez réécrites dans MQL5... C'est ça ! !! ))) Vous avez tous surpassé R !!! Ahahaha )))) Je ne peux pas m'excuser...

Nous avons pris et réécrit environ 500 des fonctions intégrées de R en MQL5 pur. C'est ce qui constitue la base mathématique du système R. Tous les autres sont des paquets tiers.

Nous avons réécrit ces fonctions plus rapidement et les distribuons dans le code source /include/math/stat. Cela témoigne de la qualité de notre langue et de nos développeurs.

Nous avons fait notre choix quant à qui et comment les soutenir :

  • développer MQL5
  • Avoir une intégration avec Python.


Lorsque vous lancez des questions et des râles, je recommande de regarder votre adversaire qui :

  • écrit sans relâche du code depuis 30 ans
  • a consacré la moitié de sa vie au développement de 5 plateformes de trading
  • a créé, gère et maintient cette communauté de négociation depuis 15 ans.
  • ...cherchez vous-même à votre guise.

Si vous venez ici pour consommer (personne n'a vu vos résultats en public), alors comportez-vous décemment et surveillez votre langage.
 
Renat Fatkhullin:
Si vous êtes venu consommer (personne ici n'a vu vos résultats en public), alors comportez-vous décemment et surveillez votre langage.

Je ne consomme rien ici, je ne fais que communiquer sur le forum, si vous me bannissez ça ne fera que me rassurer.... donc...

Je ne comprends pas ce que vous faites et ce que vous essayez d'en tirer. Mais ces 500 fonctions que vous avez réécrites sont mortes dans le sens où elles sont comme une jauge avec laquelle vous pouvez mesurer quelque chose et ce "quelque chose" est exactement les paquets externes auxquels vous avez verrouillé l'accès.

 
Renat Fatkhullin:

Serait-il judicieux de faire en sorte que ZeroMQ supporte le support natif ?