Pouvez-vous indiquer où lire sur l'utilisation des bibliothèques .Net dans les programmes MQL5 ? Je n'ai pas trouvé la section appropriée dans la documentation.
Je ne suis pas intéressé par les astuces, mais par une fonctionnalité standard, puisqu'elle a été officiellement déclarée. Par exemple, certains articles suggèrent d'y parvenir en exportant le code ingérable https://www.mql5.com/ru/articles/249. Mais pour autant que je sache, l'intégration via la décompilation est une technique de piratage... J'ai lu quelque part sur un forum que MQ poursuivait les pirates. Ainsi, cette méthode serait tout à fait appropriée, comme argument dans un tel procès...).
В данной статье я представил различные методы взаимодействия между кодом, написанным на MQL5, и управляемым кодом на C#. Также я подготовил несколько примеров маршалинга структур MQL5 для C# и примеров вызова экспортированных функций DLL в скриптах на MQL5. Приведенные примеры могут служить основой для дальнейших исследований аспектов написания DLL в управляемом коде. Эта статья также открывает двери для использования в MetaTrader 5 множества библиотек, уже реализованных на C#.
Ecrire une dll non-dotnet et l'utiliser normalement dans le terminal comme les autres dlls. Pour supporter les bibliothèques dotnet, nous utilisons un wrapper transparent qui supporte les appels natifs.
Renat: Ecrire une dll non-dotnet et l'utiliser normalement dans le terminal comme les autres dlls. Pour supporter les bibliothèques dotnet, nous utilisons un wrapper transparent qui supporte les appels natifs.
J'ai essayé, mais ça n'a pas marché. Si j'ai spécifié le nom de la fonction avec l'espace de nom et le nom de la classe, comme en C#, le compilateur MQL5 ne le passe pas et si j'ai spécifié juste un nom de fonction, il n'est pas dans le runtime de EX5 dans le terminal. Une notation supplémentaire est probablement nécessaire pour indiquer explicitement les attributs .Net, si je pouvais voir un exemple simple...
revers45: J'ai essayé, mais ça n'a pas marché tout de suite. Si j'ai spécifié un nom de fonction avec un espace de nom et un nom de classe, comme en C#, le compilateur MQL5 ne le passe pas, et si j'ai spécifié juste un nom de fonction, il n'est pas dans le runtime d'EX5 dans le terminal. Une notation supplémentaire est probablement nécessaire pour indiquer explicitement les attributs .Net, si je pouvais voir un exemple simple...
Вам необходимо организовать трансляцию котировок из MetaTrader 5 в собственное приложение? Связка MQL5-DLL позволяет создавать подобные решения. В статье продемонстрирован один из способов трансляции котировок из MetaTrader 5 в приложения, написанные на .NET. Мне было рациональнее, интереснее и проще реализовать экспорт котировок именно с использованием этой платформы. К сожалению, с выходом "пятерки" поддержки .Net также не появилось, поэтому по старинке будем использовать как прослойку win32 dll с поддержкой .NET.
Cet article traite d'une couche supplémentaire pour les programmes MQL5, sous la forme d'une dll win32 QExpertWrapper.dll, qui fonctionne à son tour avec .Net, et ma question porte sur l'utilisation de la dll .Net directement dans les programmes MQL5.
revers45: Cet article traite d'une couche supplémentaire pour les programmes MQL5, sous la forme d'une dll win32 QExpertWrapper.dll, qui fonctionne à son tour avec .Net, et ma question porte sur l'utilisation de la dll .Net directement dans les programmes MQL5.
Merci, ce que vous avez suggéré est une autre interprétation avec dll intermédiaire (wrapper), mais pour MQL4. Je le faisais à peu près de la même manière, mais pourquoi aurais-je besoin de toutes ces astuces, diminuer la fiabilité et mettre un wrapper différent sur chaque bibliothèque, si elle est déjà dans le terminal.... Montrez-moi juste un petit exemple de comment l'utiliser, ce bâton transparent...
Renat: ...Pour supporter les bibliothèques dotnet, nous utilisons un wrapper transparent qui supporte les appels natifs.
J'ai réécrit mon robot de MQL4 à MQL5 avec difficulté. Dans le testeur, le paramètre TakeProfit n'est pas optimisé et les transactions ne sont pas fermées par ce paramètre. Je l'ai trouvé sur mon compte de démonstration, le TP est fixé et une ligne rouge en pointillé est dessinée sur le graphique et les transactions sont fermées. Quelle en est la raison ?
De temps en temps, il se passe des "trucs" : l'optimiseur ne démarre pas, je pensais que le processeur était peut-être trop occupé ou autre. Aujourd'hui, j'ai redémarré WIN XP, défragmenté le disque, lancé l'optimiseur :
IQ 0 04:19:14 Tester Experts\Smart Neurons Test.ex5 sur EURJPY,H1 du 2003.06.01 00:00 au 2013.06.01 00:00 IP 0 04:19:14 PM Tester l'optimisation a commencé PG 0 04:19:14 Tester la taille du paquet de tâches initial est de 512 PM 0 04:19:14 Le processus de l'agent Core 1 a été lancé. CN 0 04:19:15 Core 1 se connectant à 127.0.0.1:3000 II 0 04:19:15 Core 1 connecté QP 0 04:19:16 Core 1connexion fermée
Cela fonctionne la deuxième fois, c'est-à-dire que j'ai appuyé sur "stop" puis "start", et ce n'est pas la première fois.
Si vous n'avez pas de compte, veuillez vous inscrire
Autorisez l'utilisation de cookies pour vous connecter au site Web MQL5.com.
Veuillez activer les paramètres nécessaires dans votre navigateur, sinon vous ne pourrez pas vous connecter.
Vous êtes connecté. L'authentification à deux facteurs a été désactivée. Configurez-la à nouveau et scannez un nouveau code QR, ou continuez avec l'authentification à deux facteurs désactivée.
Pouvez-vous indiquer où lire sur l'utilisation des bibliothèques .Net dans les programmes MQL5 ? Je n'ai pas trouvé la section appropriée dans la documentation.
Regardez dans les articles.
Par exemple, certains articles suggèrent d'y parvenir en exportant le code ingérable https://www.mql5.com/ru/articles/249.
Mais pour autant que je sache, l'intégration via la décompilation est une technique de piratage... J'ai lu quelque part sur un forum que MQ poursuivait les pirates.
Ainsi, cette méthode serait tout à fait appropriée, comme argument dans un tel procès...).
Ecrire une dll non-dotnet et l'utiliser normalement dans le terminal comme les autres dlls. Pour supporter les bibliothèques dotnet, nous utilisons un wrapper transparent qui supporte les appels natifs.
Une notation supplémentaire est probablement nécessaire pour indiquer explicitement les attributs .Net, si je pouvais voir un exemple simple...
J'ai essayé, mais ça n'a pas marché tout de suite. Si j'ai spécifié un nom de fonction avec un espace de nom et un nom de classe, comme en C#, le compilateur MQL5 ne le passe pas, et si j'ai spécifié juste un nom de fonction, il n'est pas dans le runtime d'EX5 dans le terminal.
Une notation supplémentaire est probablement nécessaire pour indiquer explicitement les attributs .Net, si je pouvais voir un exemple simple...
https://www.mql5.com/ru/articles/27
Cet article traite d'une couche supplémentaire pour les programmes MQL5, sous la forme d'une dll win32 QExpertWrapper.dll, qui fonctionne à son tour avec .Net, et ma question porte sur l'utilisation de la dll .Net directement dans les programmes MQL5.
https://c.mql5.com/mql4/forum/2009/03/NETSampleR.zip
Merci, ce que vous avez suggéré est une autre interprétation avec dll intermédiaire (wrapper), mais pour MQL4.
Je le faisais à peu près de la même manière, mais pourquoi aurais-je besoin de toutes ces astuces, diminuer la fiabilité et mettre un wrapper différent sur chaque bibliothèque, si elle est déjà dans le terminal....
Montrez-moi juste un petit exemple de comment l'utiliser, ce bâton transparent...
...Pour supporter les bibliothèques dotnet, nous utilisons un wrapper transparent qui supporte les appels natifs.
De temps en temps, il se passe des "trucs" : l'optimiseur ne démarre pas, je pensais que le processeur était peut-être trop occupé ou autre. Aujourd'hui, j'ai redémarré WIN XP, défragmenté le disque, lancé l'optimiseur :
IQ 0 04:19:14 Tester Experts\Smart Neurons Test.ex5 sur EURJPY,H1 du 2003.06.01 00:00 au 2013.06.01 00:00
IP 0 04:19:14 PM Tester l'optimisation a commencé
PG 0 04:19:14 Tester la taille du paquet de tâches initial est de 512
PM 0 04:19:14 Le processus de l'agent Core 1 a été lancé.
CN 0 04:19:15 Core 1 se connectant à 127.0.0.1:3000
II 0 04:19:15 Core 1 connecté
QP 0 04:19:16 Core 1connexion fermée
Cela fonctionne la deuxième fois, c'est-à-dire que j'ai appuyé sur "stop" puis "start", et ce n'est pas la première fois.