MetaTrader 5 Python User Group - Comment utiliser Python dans Metatrader - page 80

 
Сергей Таболин:

Une autre question d'un nouvel arrivant.

La situation est la suivante. J'ai un indicateur. Lorsque je l'ajoute au graphique en mode "froid", le calcul prend 7-8 secondes.

J'ai fait la même chose en python. La différence est que python écrit les données dans un fichier .csv.

Je comprends les pertes de connexion avec MT5, autres frais généraux.... Mais, 8 secondes contre 3 heures...... ? ??????? COMMENT ? ??????????

Que voulez-vous d'un langage qui est cent fois plus lent que le C++ ?

Tout ce qui est rapide en Python est écrit sous forme de modules C++. S'il n'existe pas de module rapide approprié, tout sera infiniment plus lent.


copy_ticks_range, ainsi que le reste des méthodes d'extraction de données dans l'API Python sont écrites par nous de manière super efficace et rapide au niveau de la transmission de ces données à MQL5.
 
Renat Fatkhullin:

Que voulez-vous d'un langage qui est cent fois plus lent que le C++ ?

Tout ce qui est rapide en Python est écrit sous forme de modules C++. S'il n'y a pas de module rapide approprié, tout sera infiniment plus lent.


copy_ticks_range, ainsi que d'autres méthodes d'extraction de données dans l'API Python sont écrites par nous de manière super efficace et rapide au niveau de la transmission de ces données dans MQL5.

Plus lent, mais pas par des CENTAINES....

Merci, Renat, pour la réponse. J'en déduis que cette vitesse est uniquement à la merci de Python ? Je pensais moi-même que ni l'appel des ticks dans MT, ni l'écriture de données dans un fichier ne pouvaient ralentir autant...

 

Vous voyez maintenant pourquoi nous mettons tant d'efforts dans la performance linguistique ?

Sinon, il est impossible de traiter les volumes modernes.

Nous ne supportons pas Python en lui-même, mais comme une passerelle vers des bibliothèques efficaces écrites pour lui (en C++).

 
Renat, pouvez-vous nous donner un bref aperçu de l'état d'avancement du nouveau testeur ?

Alors, une fonctionnalité API sera sûrement incluse pour utiliser le testeur avec Python, n'est-ce pas ?

Salutations
 
Christian:

Alors, une fonctionnalité API sera sûrement incluse pour utiliser le testeur avec Python, n'est-ce pas ?

.

Non. Il est naïf de penser que nous nous suiciderions en choisissant un langage cent fois plus lent que le nôtre afin de tuer un testeur.

Il est beaucoup plus rentable pour nous de développer notre idée de recompiler les bibliothèques C++ de tiers en modules MQL5. Pour ce faire, nous avons commencé à inclure un compilateur LLVM externe dans l'éditeur.

 
Renat Fatkhullin:

Non. Il est naïf de penser que nous nous suiciderions en choisissant un langage cent fois plus lent que le nôtre afin de tuer un testeur.

Il est beaucoup plus rentable pour nous de développer notre idée de recompilation des bibliothèques C++ de tiers en modules MQL5. Pour ce faire, nous avons commencé à inclure le compilateur externe LLVM dans l'éditeur.

Y a-t-il un espoir de développer l'idée de supporter les librairiesC/C++ ou les librairies statiques dans le projet de programme mql ?

 
Roman:

Y a-t-il un espoir de développer l'idée de supporter les bibliothèques statiquesC/C++.lib ou .a dans le projet de programme mql ?

Non. Vous pouvez toujours utiliser n'importe quelle DLL avec un contrôle explicite des droits d'accès.

 
Je comprends les pertes de connexion à MT5, les autres frais généraux.... Mais, 8 secondes contre 3 heures...... ? ??????? COMMENT ? ??????????

Donnez-moi un exemple de votre code Python qui ralentit, les mots ne montrent pas clairement ce qu'il fait et comment vous obtenez les données. Et pourquoi écrit-il constamment dans le fichier ? Ne peut-on pas le faire à la fin ?

 
Renat Fatkhullin:

Non. Il est naïf de penser que nous nous suiciderions en choisissant un langage cent fois plus lent que le nôtre afin de tuer un testeur.

Il est beaucoup plus rentable pour nous de développer notre idée de recompiler les bibliothèques C++ de tiers en modules MQL5. Pour ce faire, nous avons commencé à inclure le compilateur externe LLVM dans l'éditeur.

Et si, hypothétiquement, vous prenez le support ONNX, les modèles importés seront plus lents que MQL lui-même ?

 

J'ai remarqué une bizarrerie dans la sortie :

[89, '2020.01.16', 3, 15, 3, 16, Timedelta('0 days 01:16:53.966000')]
[90, '2020.01.16', 3, 16, 3, 17, Timedelta('0 days 00:25:39.266000')]
[91, '2020.01.16', 3, 17, 4, 12, Timedelta('0 days 19:07:12.757000')]
[92, '2020.01.17', 4, 12, 4, 13, Timedelta('0 days 00:36:14')]
[93, '2020.01.17', 4, 13, 4, 15, Timedelta('0 days 02:21:01.630000')]
[94, '2020.01.17', 4, 15, 4, 17, Timedelta('0 days 02:12:28.692000')]
[95, '2020.01.17', 4, 17, 0, 11, Timedelta('0 days 17:30:16.404000')]

Est-il == 00:36:14.000000 ?