Discussion de l'article "Comment exporter des cotations de МetaTrader 5 vers des applications .NET à l'aide des services WCF"

 

Un nouvel article Comment exporter des cotations de МetaTrader 5 vers des applications .NET à l'aide des services WCF a été publié :

Vous souhaitez organiser l'exportation des cotations de MetaTrader 5 vers votre propre application ? La jonction MQL5-DLL permet de créer de telles solutions ! Cet article vous indiquera l'un des moyens d'exporter des cotations de MetaTrader 5 vers des applications écrites en .NET. Pour moi, il était plus intéressant, rationnel et facile d'implémenter l'export de cotations en utilisant cette même plateforme. Malheureusement, la version 5 ne prend toujours pas en charge .NET, donc comme autrefois, nous utiliserons la dll win32 avec la prise en charge de .NET comme couche intermédiaire.

J'ai créé un exemple de table de ticks en utilisant le service. Le projet est attaché dans l'archive et nommé WindowsClient. Le résultat de ses travaux est présenté ci-dessous :

Auteur : Alexander

Alexander
  • 2010.04.20
  • www.mql5.com
Profil du trader
 

Bravo ! Je n'ai rien à ajouter. Malheureusement, la connexion MQL5 - .NET nécessite encore un intermédiaire, ce qui rend l'ensemble de la construction trop lourde.

 
Itso:

Malheureusement, la communication MQL5 - .NET nécessite toujours un intermédiaire, ce qui rend l'ensemble de la construction trop lourde.

Je suis d'accord. D'ailleurs, pour les interactions simples, il existe une chose formidable - Inverse P/Invoke - interaction sans intermédiaire.

J'ai également essayé d'utiliser ILMerge pour fusionner les 3 assemblages dans QExportWrapper.dll - cela n'a pas fonctionné, ou plutôt si, mais après avoir fusionné à partir de mql5, il ne voit pas les fonctions exportées.

 

Bonjour !

J'ai copié vos fichiers sources et je les ai recompilés pour les exécuter.

Mais j'ai eu un crash du MT5.

Comment puis-je déboguer / dépanner ce problème ?

Je vous remercie.

 

1. Tout d'abord, essayez d'utiliser les fichiers compilés, situés dans l'archive bin.rar

Par exemple, le répertoire du terminal client MetaTrader5 est "C:\NProgram Files\NMetaTrader 5\N".

Créons un nouveau dossier pour l'expert QExporter.mq5, par exemple"QE", dans le dossier "C:\NProgram Files\NMetaTrader 5\NMQL5\NExperts\N".

C:\Program Files\MetaTrader 5\MQL5\Experts\QE\QExporter.mq5 (1615 bytes)
C:\Program Files\MetaTrader 5\MQL5\Experts\QE\QService.mqh (4380 bytes)

C:\Program Files\MetaTrader 5\MQL5\Libraries\QExport.dll (5632 bytes)
C:\Program Files\MetaTrader 5\MQL5\Libraries\QExport.Service.dll (7168 bytes)
C:\Program Files\MetaTrader 5\MQL5\Libraries\QExportWrapper.dll (27648 bytes)

C:\Program Files\MetaTrader 5\WindowsClient\QExport.Client.dll (6656 bytes)
C:\Program Files\MetaTrader 5\WindowsClient\QExport.dll (5632 bytes)
C:\Program Files\MetaTrader 5\WindowsClient\WindowsClient.exe (12288 bytes)

Ensuite, après la compilation de QExporter.mq5, le fichier compilé QExporter.ex5 apparaîtra dans le répertoire :

C:\NProgram Files\NMetaTrader 5\NMQL5\NExperts\NQE\NQExporter.ex5 (6706 octets)

Après l'avoir attaché au graphique EURUSD,H1 et avoir lancé WindowsClient.exe, j'ai obtenu l'image suivante :

Je l'ai testé au buld 249 (18 Feb).

 
sgfxtrader:

J'ai copié vos fichiers sources et je les ai recompilés pour les exécuter.

Mais j'ai eu un crash du MT5.

Comment puis-je déboguer / dépanner ce problème ?

Bonjour,

Je ne sais pas si c'est le cas, mais je ne sais pas si c'est le cas, mais je ne sais pas si c'est le cas. Je n'ai pas pu faire de test avec le fichier terminal.exe, car le terminal s'est planté. Peut-être que dans les nouvelles versions, c'est possible

J'aimerais également savoir quel système d'exploitation vous utilisez. J'ai un système d'exploitation 32bit et je n'ai donc pas eu la possibilité de vérifier sur des systèmes 64bit.

Avez-vous essayé d'exécuter des fichiers compilés ?

Enfin, essayez d'exécuter ConsoleService et ConsoleClient dans la solution. Peut-être que le problème n'est pas lié à mql ou à la bibliothèque wrapper.

Enfin, je suppose que vous avez simplement oublié de créer (ou de copier) le fichier terminal.exe.config. Essayez de le faire.

 

C'est une bonne nouvelle pour MQL5 qui peut utiliser la dll enveloppante de NET.

Pourquoi Mql4 ne peut pas utiliser ce mode de communication avec les DLL enveloppées de Net ?

 
DxdCn posted # :

C'est une bonne nouvelle pour MQL5 qui peut utiliser la dll enveloppante de NET.

Pourquoi Mql4 ne peut pas utiliser ce mode de communication avec les DLL enveloppées de Net ?

Il est possible d'utiliser une DLL hybride dans mt4, le problème est que mql4 n'a pas de structures. Mais ce n'est pas si grave, vous pouvez passer quelques paramètres à la place de la structure.
 
sgfxtrader:

Bonjour !

J'ai copié vos fichiers sources et je les ai recompilés pour les exécuter.

Mais j'ai eu un crash du MT5.

Comment puis-je déboguer / dépanner ce problème ?

Merci de votre réponse.


J'ai le même problème.

2010.07.27 12:11:09 Experts Initializing of QExporter(EURUSD,H1) failed

 

Merci beaucoup pour l'exemple posté. Cela fait maintenant une semaine (le soir) que je m'efforce de créer une bibliothèque pour l'échange de données entre .net et mql5.

Je ne suis pas doué en C++ et cet article m'a été très utile.

Il n'y a qu'un seul problème. Après la compilation sous x64, l'initialisation du service donne une erreur.

ExportService^ service = gcnew ExportService(serverName); // <- ServiceManaged.cpp 

Le processus est simplement "quitté" sans aucune explication.

Comment puis-je afficher cette erreur dans le journal pour une analyse plus approfondie ? Ou peut-être avez-vous déjà rencontré ce problème et existe-t-il une solution ? ???.

 

J'ai réussi à faire fonctionner l'EA avec MT5 32bit et, après avoir recomplété pour x64, j'ai réussi à le faire fonctionner avec MT5 64bit.... cependant, lorsque j'essaie d'exécuter l'EA dans le testeur de stratégie, ils se plantent tous les deux de manière spectaculaire.

J'aimerais l'utiliser pour exporter des données de prix et d'indicateurs dans une table de base de données afin d'effectuer des analyses avec un logiciel externe...... Vous avez une idée de la cause de ce plantage ? C'est la solution la plus proche que j'ai trouvée jusqu'à présent.


Joe