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

 
J'ai rencontré quelques difficultés dans la mise en œuvre de ce qui précède. C'est pourquoi je vais vous en parler, au cas où quelqu'un rencontrerait des problèmes similaires.


1) Si vous avez un terminal x64, vous devrez très probablement recompiler votre projet C++ en x64. Pour être sûr, vous devriez le faire de cette façon : Visual Studio -> Propriétés (de votre projet C++) -> Gestionnaire de configuration -> et le changer en x64 via la liste déroulante ou <Nouveau...>. Compilez. C'est fait. S'il ne compile pas - vérifiez les références du projet, passez en revue les erreurs de compilation.
2) J'ai eu des problèmes avec l'EA, il ne s'est même pas initialisé. Je ne l'ai remarqué qu'en déconnectant l'EA du graphique, lorsque l'erreur init a échoué (amusant...). L'EA est tombé dans un sommeil infini à l'étape de l'initialisation et c'est à cause de ces lignes (dans QService.mqh) :

 QService::EnterCriticalSection()
{
   while (GlobalVariableCheck("QService_CriticalSection") > 0)
   Sleep(1);
   GlobalVariableTemp("QService_CriticalSection");

Après débogage et de vaines tentatives pour comprendre ce "Sleep(1)", j'ai remplacé le code par :

QService::EnterCriticalSection()
{
   if(!GlobalVariableCheck("QService_CriticalSection"))
   GlobalVariableTemp("QService_CriticalSection");
}

Au fait, cet article est également valable pour MT4. Bien que MT4 dispose de DDE, je préfère cette approche. Tout fonctionne à merveille.

P.S : Merci à l'auteur de l'article ! Tout est cool !
 
Je ne comprends pas, c'est bien écrit mais ça ne marche pas. QEXPORTWRAPPER ne fonctionne pas sur un terminal 64 bits.
 
shelandr1:
Très intéressant... Merci... Mais il existe peut-être aujourd'hui des options plus simples* ???

Bien sûr qu'il y en a - en utilisant la connexion via la capacité intégrée du terminal. Il s'agit d'un canal PIPE.

https://www.mql5.com/ru/docs/files/fileopen

Документация по MQL5: Файловые операции / FileOpen
Документация по MQL5: Файловые операции / FileOpen
  • www.mql5.com
Файловые операции / FileOpen - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Je viens de poster un nouveau job basé sur cet article : https://www.mql5.com/en/job/34392.

Cela ne fonctionne pas dans mon environnement MT5 64 bits...

Excellent article !

Merci de votre compréhension.

Freelance service at MQL5.com: Make Visual Studio 2012 solution downloaded from article work with Metatrader 5 64 bits
Freelance service at MQL5.com: Make Visual Studio 2012 solution downloaded from article work with Metatrader 5 64 bits
  • www.mql5.com
Hi, I'm a C# developer and downloaded the code from the article "HOW TO EXPORT QUOTES FROM METATRADER 5 TO .NET APPLICATIONS USING WCF SERVICES" ( https://www.mql5.com/en/articles/27 ). The problem is that my machine is a Windows 64 bits with MetaTrader 5 64 bits installed and I had to change the compile configurations to 64 bits in Visual Studio 2012. Ok, it compiled normally, then I added one new method that aims to return a string to MT5 which i called ReadBroker2MeInstructions . Compiled...
 

Juste pour savoir, j'ai découvert ce qui s'est passé sur ma machine 64 bits.

Après des heures et des heures de recherche et de débogage, j'ai découvert qu'un assemblage référencé ne se chargeait pas, générant l'exception "System.IO.FileNotFoundException : Impossible de charger le fichier ou l'assembly 'QExport.Service, Version=1.0.5771.13857, Culture=neutral, PublicKeyToken=56996a45dd1e337b'".

Peut-être parce que la dll n'a pas de fichier de configuration, je ne sais pas encore, MT 5 ne savait pas où trouver l'assembly. Il essayait donc de l'obtenir dans le chemin de base (chemin où se trouve metaeditor64.exe). Après avoir changé le répertoire de sortie des projets référencés pour ce chemin, cela a fonctionné comme un charme.

 
sabe:

Bonjour Joe,

Est-ce qu'il y a une astuce spéciale pour le faire fonctionner sur x64 ? Je viens de le compiler pour x64, mais la dll plante avec des erreurs bizarres au démarrage.

Sabe, voir ma réponse ci-dessous.

[]'s

 

Bonjour,


J'ai testé ton fichier prêt à l'emploi. Tout semble correct dans MT5. Mais les données n'arrivent pas dans WinClient.







 

Je me demande s'il existe un projet similaire avec préchargement des barres historiques ? J'aimerais ajouter tout cela à Lightweight-Chart et utiliser le graphique de manière pratique.