Discussion de l'article "Communiquer avec MetaTrader 5 en utilisant Named Pipes sans utiliser de DLL" - page 2

 
Reshetov:
................

D'une part, nous nous sommes débarrassés de la dll, mais d'autre part, des béquilles dans d'autres langages de programmation sont à nouveau nécessaires pour l'application.

L'inconvénient de la méthode proposée est qu'elle ne convient qu'aux programmeurs qui développent des applications dans des langages autres que MQL. ...................

Vous pouvez également dessiner un perroquet en MQL5. Voici un article avec les codes.
 
MetaDriver:
Vous pouvez également dessiner un perroquet dans MQL5, voici статья, с кодами.

Vous devriez au moins lire le titre de ce sujet pour l'intérêt qu'il suscite

Ce n'est plus le cas. Voir https://www.mql5.com/ru/forum/7806/page3.

Renat:
Notez simplement qu'il s'agit d'un support client et que les connexions serveur ne peuvent pas être créées dans le terminal.
Использование MQL5 для торговли на МТ4
Использование MQL5 для торговли на МТ4
  • www.mql5.com
Подскажите, можно ли каким-нибудь образом извернуться, чтобы с помощью программ на MQL5 торговать у брокера, поддерживающего МТ4?
 
Reshetov:

Ce n'est plus le cas aujourd'hui. Voir https://www.mql5.com/ru/forum/7806/page3.

Je vais le faire discrètement. Ne le dites à personne. Shhhhh.....
 
MetaDriver:
Je ferai profil bas. Ne le dites à personne. Shhhhh.....

Oh, vous. Les développeurs ont travaillé si dur, ils ont établi des contacts avec les clients, ils ont écrit l'article.

Et vous quoi ? Au lieu de tout abandonner, d'apprendre le langage C et d'utiliser tout cela ouvertement et honnêtement, vous êtes tranquillement et dans les profondeurs de la clandestinité en train de chasser les connecteurs à travers les dlls.

Peu importe combien (ne pointons pas du doigt) vous le nourrissez, il veut toujours utiliser la dll dans le terminal.


Les héros normaux font toujours un détour © N. Korostylev

 
Reshetov:

Rédigez votre passerelle en MQL5 en vous basant sur les exemples de l'article susmentionné. Et vous pouvez écrire des scripts clients en MQL pur.

Cependant, je ne comprends pas pourquoi vous faites une solution aussi unilatérale. Ceux qui écriront leur propre serveur en C, ce n'est pas un problème de connecter la dll, mais le reste des fonctionnalités actuelles ne sera pas suffisant. A moins que la dll ne ralentisse considérablement le travail (ce dont je doute).

 
Veuillez prêter attention au sujet et à l'essence de l'article.

Il s'agit de pouvoir se connecter depuis le terminal à des systèmes tiers sans utiliser de DLL. La tâche est accomplie - il existe désormais un moyen simple de se connecter et d'échanger des données en duplex intégral.

La plainte selon laquelle il est désormais nécessaire d'écrire une application tierce est déplacée.
 
Renat:
Veuillez prêter attention au sujet et à l'essentiel de l'article.

Il s'agit de pouvoir se connecter depuis le terminal à des systèmes tiers sans utiliser de DLL. La tâche est accomplie - il existe désormais un moyen simple de se connecter et d'échanger des données en duplex intégral.

La plainte selon laquelle il faut écrire une application tierce est déplacée.
Renat, quand prévoyez-vous de créer des tuyaux dans MT4 ?
 
Renat:
Veuillez prêter attention au sujet et à l'essentiel de l'article.

Il s'agit de pouvoir se connecter depuis le terminal à des systèmes tiers sans utiliser de DLL. La tâche est accomplie - il existe désormais un moyen simple de se connecter et d'échanger des données en duplex intégral.

La plainte selon laquelle vous devez écrire une application tierce est déplacée.

En fait, c'est vrai, car il n'est pas déclaré que par des méthodes standard, c'est-à-dire sans béquilles tierces, la communication sera assurée, par exemple, entre les applications MQL.

"De nombreux développeurs sont confrontés au même problème : comment pénétrer dans le bac à sable du terminal de négociation sans utiliser de DLL dangereuses ?

Il n'y a pas de revendications ici et il ne devrait pas y en avoir.

Mais d'un autre côté, la tâche la plus demandée dans le plan d'application, à savoir assurer la communication entre les applications écrites en MQL, est très efficacement résolue par l'utilisation de DLL non sûres dans les exemples de cet article. Puisque dans cet article, pour mettre en œuvre la communication via des messages de type chaîne, il suffit d'avoir une connaissance et une expérience de la programmation en MQL5 (le reste du travail, c'est-à-dire les béquilles tierces via l'API Windows, l'auteur de l'article l'a déjà fait et l'a posté en tant que classe prête à l'emploi).

 
Je pense que la question de la communication entre les terminaux n'a qu'une faible part d'application.

Mais la communication avec les systèmes externes est plus importante et plus applicable. C'est pour cela que le canal sécurisé a été ouvert.

Et notez que toute la mise en œuvre se fait dans le cadre des opérations de fichiers standard. Aucune nouvelle fonction n'a dû être introduite.
 
komposter:

Ecrivez votre propre passerelle en MQL5 en vous basant sur les exemples de l'article ci-dessus.

Théoriquement, c'est possible, mais en pratique, ce sera une béquille, voire un simplex.

J'ai trouvé quelques informations sur la façon de créer des passerelles avec des coûts minimaux. Il s'avère que C++ possède une classe de flux NamedPipeServerStream(String)

Si vous l'appelez, elle créera un canal nommé. Nous pouvons ensuite attendre une connexion en appelant la méthode IsConnected et créer un second canal nommé. Nous attendons qu'un autre client se connecte au second canal et redirigeons les informations du premier flux vers le second à l'aide de la méthode CopyToAsync(Stream). Ensuite, nous devons lancer un sous-processus et, toujours à l'aide de la méthode CopyToAsync(Stream), rediriger les informations du second flux vers le premier. De cette manière, les deux canaux nommés seront liés en duplex.

Cela semble facile, mais je n'ai aucune expérience du C++. S'il s'agissait de Java, cela prendrait une demi-heure avec le débogage.

Jusqu'à présent, j'ai trouvé un exemple approprié pour la refonte : http://msdn.microsoft.com/en-us/library/bb546085.aspx. J'essaierai de construire une passerelle full-duplex sur cette base lorsque j'en aurai le loisir. Et si cela fonctionne ?

NamedPipeServerStream Constructor (String) (System.IO.Pipes)
NamedPipeServerStream Constructor (String) (System.IO.Pipes)
  • msdn.microsoft.com
Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)