J'ai suivi attentivement vos instructions, mais je ne parviens pas à faire fonctionner ce système avec Matlab 2007b. J'obtiens continuellement ces erreurs, lorsque j'essaie d'utiliser vos exemples préconstruits, avec le terminal MT5.
2010.08.29 10:33:30 TestMLEngine (EURUSD,H1) Impossible d'ouvrir 'C:\Users\QuantFX\AppData\Roaming\MetaQuotes\Terminal\216E2BD2BB8CE60176A41ADF6AC1C76D\MQL5\Libraries\LibMlEngine.dll' (126)
2010.08.29 10:33:47 TestDllMatlab (EURUSD,H1) Impossible d'ouvrir 'C:\Users\QuantFX\AppData\Roaming\MetaQuotes\Terminal\216E2BD2BB8CE60176A41ADF6AC1C76D\MQL5\Libraries\nnSMA.dll' (126)
Je ne sais pas trop quoi en penser car j'arrive à obtenir le projet mentionné dans l'article"How to Exchange Data : A DLL for MQL5 in 10 Minutes " qui se trouve ici https://www.mql5.com/en/articles/18 fonctionne sans problème.
2010.08.29 10:44:16 MQL5DLL_Test (EURUSD,H1) Violation d'accès en écriture à 0x00000000 dans 'C:\UsersQuantFX\AppData\Roaming\MetaQuotes\Terminal\216E2BD2BB8CE60176A41ADF6AC1C76D\MQL5\Libraries\MQL5DLLSamples.dll'
2010.08.29 10:44:16 MQL5DLL_Test (EURUSD,H1) Replace : Le chat brun et rapide saute par-dessus le chien paresseux
2010.08.29 10:44:16 MQL5DLL_Test (EURUSD,H1) Array : 0 1 2 3 4 5 6 7 8 9
2010.08.29 10:44:16 MQL5DLL_Test (EURUSD,H1) Time 297 msec, int : -752584127 double : 17247836076609
Le terminal n'a donc aucun problème avec les violations d'accès au dossier \Libraries, et je suis certain que les "Options" de l'Expert Advisor permettent l'importation de dll et l'autotrading... Toute aide serait grandement appréciée car je suis bloqué depuis que j'ai lu cet article pour la première fois. Merci d'avance
- 2010.01.27
- MetaQuotes Software Corp.
- www.mql5.com
J'ai finalement réussi à le faire fonctionner...Excellent article je dois dire. Je ne suis pas très expérimenté avec Visual Studio et je suis un débutant dans la programmation de Metatrader. Donc, cela semblait être un peu un défi avec toutes les erreurs que je recevais. Bien que ce soit très facile à long terme pour toutes les versions de Matlab et Visual Studio, je suggère à ceux qui font leurs premières tentatives de connecter Metatrader et Matlab de faire ce qui suit, si vous n'avez jamais travaillé avec le moteur Matlab ou les bibliothèques externes de Metatrader.Si vous n'avez jamais travaillé avec le moteur Matlab ou les bibliothèques externes de Metatrader, je vous suggère de suivre les étapes suivantes pour mieux comprendre. 1. Créez le projet fourni avec Matlab dans matlabroot\externs\examples\eng_mat\engwindemo.c en suivant cet article. http://www.mathworks.com/support/solutions/en/data/1-78077S/index.html?product=ML&solution=1-78077S Compilez-le, et si vous avez des problèmes, comme des fichiers dll manquants, utilisez dependency walker, trouvé ici http://www.dependencywalker.com/ pour déterminer quels fichiers manquants doivent être placés dans votre dossier C:\NWindows\NSystem 32 afin que la version du moteur Matlab que vous utilisez fonctionne. Il peut être bon de noter que vous pouvez finir par devoir placer tous les fichiers dans votre dossier System 32, ou connaître les bons endroits pour les lier dans votre projet. Bien que la plupart des dll se trouvent dans le dossier matlabroot\bin\win(32 ou 64). Après avoir placé les quelques premiers fichiers dll nécessaires, essayez à nouveau de construire votre projet. Vous pourriez découvrir que vous n'avez pas besoin de faire tout ce que dependency walker suggère. Si le projet se compile et s'exécute, vous avez presque terminé... 2. Construisez le projet suggéré dans l'article Comment échanger des données : Une DLL pour MQL5 en 10 Minutes https://www.mql5.com/en/articles/18. Si ce projet fonctionne, rappelez-vous que lorsque vous créez le projet ci-dessus, vous combinez les deux. Rappelez-vous toutes les étapes que vous avez suivies et lorsque vous êtes prêt à compiler ce projet, assurez-vous que "stdafx.h" est le premier en-tête #include dans DLLUnit.cpp, et que vous avez désactivé les en-têtes précompilés, juste avant la construction. L'utilisation des fichiers ci-dessus tels quels peut donner quelques avertissements qui sont facilement corrigibles, mais le projet devrait fonctionner sans aucun problème. Les deux cents que j'ai ajoutés ici peuvent sembler être le guide de l'idiot pour ce projet, mais faire ces choses peut vous faire économiser quelques heures de votre temps libre si vous aviez besoin de construire ce projet avec une autre version de Matlab ou d'utiliser Visual Studio.
Merci beaucoup
Si je ne me trompe pas, le type de matrices Matlab dans le tableau 1 est incorrect. Il manque la lettre u. C'est-à-dire que, par exemple, c'est le type uint16 qui est responsable de la plage de 0 à 65535, et non le type int16 . Et ainsi de suite...
Classe | Plage de valeurs | Fonction de conversion |
|---|---|---|
Entier 8 bits signé | -27 à27-1 | int8 |
Entier signé sur 16 bits | -215 à215-1 | int16 |
Entier signé de 32 bits | -231 à231-1 | int32 |
Entier signé de 64 bits | -263 à263-1 | int64 |
Entier non signé de 8 bits | 0 à28-1 | uint8 |
Entier non signé de 16 bits | 0 à216-1 | uint16 |
Entier non signé de 32 bits | 0 à232-1 | uint32 |
Entier non signé de 64 bits | 0 à264-1 | uint64 |
Bonjour, merci pour cet excellent article, très utile !
Cependant, un problème s'est posé. Peut-être que quelqu'un l'a déjà rencontré.
Lors de la fermeture d'un Expert Advisor, MT5 se bloque complètement lorsque je le ferme. J'utilise MS Visual Studio2010 + Matlab r2011a.
Quelle en est la raison selon vous ? Merci d'avance !
Bonjour, j'ai tout fait comme dans l'article, mais lors de l'exécution du script TestMlEngine, une erreur est apparue :
2011.12.17 15:55:23 TestMLEngine(EURUSD,H1) Impossible d'ouvrir 'C:\Users\H_F_M\AppData\Roaming\MetaQuotes\Terminal\DEA4AAFB99C996D79821EC8BDBADDC3C\MQL5\Libraries\LibMlEngine.dll' (126)
puis immédiatement :
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) Impossible de trouver 'mlxGetSizeOfName' dans 'LibMlEngine.dll'
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) Impossible de trouver 'mlxGetLogical' dans 'LibMlEngine.dll'
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) Impossible de trouver 'mlxGetInt' dans 'LibMlEngine.dll'
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) Impossible de trouver 'mlxGetDouble' dans 'LibMlEngine.dll'
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) Impossible de trouver 'mlxInputLogical' dans 'LibMlEngine.dll'
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) Impossible de trouver 'mlxInputInt' dans 'LibMlEngine.dll'
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) Impossible de trouver 'mlxInputDouble' dans 'LibMlEngine.dll'
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) Impossible de trouver 'mlxInputChar' dans 'LibMlEngine.dll'
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) Impossible de trouver 'mlxOpen' dans 'LibMlEngine.dll'
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) Impossible de trouver 'mlxClose' dans 'LibMlEngine.dll'
J'ai trouvé quelque part sur le forum que c'était dû à des dll manquantes, avec l'aide de depends.exe j'ai trouvé ce qui manquait, je l'ai mis dans le même dossier, ça a aidé, mais pas tout à fait. Maintenant ça s'affiche :
2011.12.17 15:57:59 TestMLEngine (EURUSD,H1) Impossible d'ouvrir 'C:\Users\H_F_M\AppData\Roaming\MetaQuotes\Terminal\DEA4AAFB99C996D79821EC8BDBADDC3C\MQL5\Libraries\LibMlEngine.dll' (127).
et la liste continue avec "Cannot find...". Pouvez-vous me dire quel est le problème ? Cela fait déjà une semaine que je me démène...
Oui, j'ai Win7 + Matlab R2011a + VS201.
.
Bonjour, j'ai tout fait comme dans l'article, mais lors de l'exécution du script TestMlEngine, une erreur est apparue :
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) Impossible d'ouvrir 'C:\Users\H_F_M\AppData\Roaming\MetaQuotes\Terminal\DEA4AAFB99C996D79821EC8BDBADDC3C\MQL5\Libraries\LibMlEngine.dll' (126)
puis immédiatement :
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) Impossible de trouver 'mlxGetSizeOfName' dans 'LibMlEngine.dll'
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) Impossible de trouver 'mlxGetLogical' dans 'LibMlEngine.dll'
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) Impossible de trouver 'mlxGetInt' dans 'LibMlEngine.dll'
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) Impossible de trouver 'mlxGetDouble' dans 'LibMlEngine.dll'
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) Impossible de trouver 'mlxInputLogical' dans 'LibMlEngine.dll'
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) Impossible de trouver 'mlxInputInt' dans 'LibMlEngine.dll'
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) Impossible de trouver 'mlxInputDouble' dans 'LibMlEngine.dll'
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) Impossible de trouver 'mlxInputChar' dans 'LibMlEngine.dll'
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) Impossible de trouver 'mlxOpen' dans 'LibMlEngine.dll'
2011.12.17 15:55:23 TestMLEngine (EURUSD,H1) Impossible de trouver 'mlxClose' dans 'LibMlEngine.dll'
J'ai trouvé quelque part sur le forum que c'était dû à des dll manquantes, avec l'aide de depends.exe j'ai trouvé ce qui manquait, je l'ai mis dans le même dossier, ça a aidé, mais pas tout à fait.maintenant ça s'affiche :
2011.12.17 15:57:59 TestMLEngine (EURUSD,H1) Impossible d'ouvrir 'C:\Users\H_F_M\AppData\Roaming\MetaQuotes\Terminal\DEA4AAFB99C996D79821EC8BDBADDC3C\MQL5\Libraries\LibMlEngine.dll' (127).
et la liste continue avec "Cannot find...". Pouvez-vous me dire quel est le problème ? Cela fait déjà une semaine que je me démène...
Oui, j'ai Win7 + Matlab R2011a + VS201.
Lorsque j'ai installé Matlab, le chemin d'accès au système était uniquement "C:\Program Files\MATLAB\R2011b\bin". J'ai ajouté "C:\Program Files\MATLAB\R2011b\bin\win32". Les dll du répertoire Matlab sont devenues visibles et Matlab Engine a démarré. Auparavant, j'avais écrit que je ne pouvais pas voir les dll.
Bonjour) J'ai un autre problème - pour une raison quelconque, le catalogue "Borland" n'est pas trouvé dans le dossier <MATLAB>\extern\lib\win32\, bien que Borland C++ Builder 6 soit installé. Par conséquent, les fichiers libeng.lib et libmx.lib ne peuvent pas non plus être connectés au projet. Far donne le résultat suivant à la commande "implib libeng libeng.lib libeng.dll" :
)
Et le dossier Borland n'était pas là et ne l'est toujours pas... Quelqu'un peut-il me dire comment résoudre ce problème ? Ou au moins lancer ces deux fichiers?:-)
En général, aidez-moi, car je ne comprends pas quelque chose....
Pour la pureté de l'expérience, j'ai installé VMware, où j'ai installé 2 systèmes - XP et 7.
Puis j'ai installé Matlab R2011b, installé MCR, installé la dernière version de MT5. À partir de l'archive jointe à l'article, tous les fichiers ont été dispersés dans des dossiers, comme indiqué dans les instructions de l'archive. J'ai compilé les fichiers mq5 en ex5 (c'est-à-dire que j'ai supprimé les fichiers ex5 existants dans l'archive et mis à leur place les fichiers nouvellement compilés). Je démarre MT5, je démarre Matlab (j'ai essayé de ne pas le démarrer - le résultat est le même), dans le terminal je clique sur TestMlEngine, et cela me donne :
TestMLEngine (EURUSD,H1) 13:44:58 Impossible d'ouvrir 'C:\Users\User\AppData\Roaming\MetaQuotes\Terminal\DEA4AAFB99C996D79821EC8BDBADDC3C\MQL5\Libraries\LibMlEngine.dll' (126)
TestMLEngine (EURUSD,H1) 13:44:58 Impossible de trouver 'mlxClose' dans 'LibMlEngine.dll'
TestMLEngine (EURUSD,H1) 13:44:58 Impossible de trouver 'mlxOpen' dans 'LibMlEngine.dll'
TestMLEngine (EURUSD,H1) 13:44:58 Impossible de trouver 'mlxInputChar' dans 'LibMlEngine.dll'
TestMLEngine (EURUSD,H1) 13:44:58 Impossible de trouver 'mlxInputDouble' dans 'LibMlEngine.dll'
TestMLEngine (EURUSD,H1) 13:44:58 Impossible de trouver 'mlxInputInt' dans 'LibMlEngine.dll'
TestMLEngine (EURUSD,H1) 13:44:58 Impossible de trouver 'mlxInputLogical' dans 'LibMlEngine.dll'
TestMLEngine (EURUSD,H1) 13:44:58 Impossible de trouver 'mlxGetDouble' dans 'LibMlEngine.dll'
TestMLEngine (EURUSD,H1) 13:44:58 Impossible de trouver 'mlxGetInt' dans 'LibMlEngine.dll'
TestMLEngine (EURUSD,H1) 13:44:58 Impossible de trouver 'mlxGetLogical' dans 'LibMlEngine.dll'
TestMLEngine (EURUSD,H1) 13:44:58 Impossible de trouver 'mlxGetSizeOfName' dans 'LibMlEngine.dll'.
Je ne sais pas quoi faire. J'ai essayé tout ce que je pouvais. J'ai essayé la DLL de l'article "How to write a DLL library for MQL5 and exchange data in 10 minutes" ().(https://www.mql5.com/ru/articles/18)- elle fonctionne sans problème.
Quelqu'un peut-il me dire comment y accéder autrement ? Qu'est-ce que je fais de travers ?
Merci d'avance.
- 2010.01.27
- MetaQuotes Software Corp.
- www.mql5.com
Lorsque j'ai installé Matlab, le chemin d'accès au système était uniquement "C:C:\NProgram Files\MATLAB\R2011b\Nbin". J'ai ajouté "C:\Program Files\MATLAB\R2011b\bin\win32". Les dll du répertoire Matlab sont devenues visibles et Matlab Engine a démarré. Auparavant, j'avais écrit que je ne pouvais pas voir les dll.
Si vous parlez de la variable d'environnement Path, j'y ai ajouté "C:\Program Files\MATLAB\R2011b\win32", mais la situation n'a pas changé :-(
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Vous acceptez la politique du site Web et les conditions d'utilisation
Un nouvel article Interaction MetaTrader 5 et MATLAB a été publié :
Cet article couvre les détails de l'interaction entre MetaTrader 5 et le package mathématique MatLab. Il indique le mécanisme de conversion des données, le processus d’élaboration d'une bibliothèque universelle pour interagir avec le bureau MatLab. Il couvre également l'utilisation des DLL générées par l'environnement MatLab. Cet article est destiné aux lecteurs expérimentés, connaissant C++ et MQL5.
Cette méthode d'interaction ne peut pas être qualifiée d'élégante et de rapide, mais elle est la plus fiable et couvre l'ensemble du package MATLAB. Bien sûr, nous devons mentionner la vitesse d’élaboration du modèle final. L'essence du développement est d'écrire un bande de bibliothèque universel pour l'interaction MetaTrader 4/5 & MATLAB Engine. Après ce script/indicateur/expert MetaTrader 4/5 peut gérer le bureau virtuel MATLAB. Et l'ensemble de l'algorithme mathématique peut être stocké dans le programme MQL sous forme de chaînes, vous pouvez donc l'utiliser pour protéger votre propriété intellectuelle (pour plus de détails, consultez l'article « Protégez-vous, développeurs ! »). Il peut également être stocké dans des fichiers séparés de fonctions m ou de fonctions P dans le dossier <MetaTrader 5>\MQL5\Libraries.
Champs d'application possibles d'une telle interaction :
Continuons. J'espère que vous avez lu les types de données 1.1 dans MATLAB et MQL5, 1.2 Comparaison des types de données MQL5 et MATLAB, 2.1 MATLAB Engine API et MCR Functions et 2.3 C++ Standard Input/Output Library, car nous ne ferons plus de pause et ne les analyserons plus . Lisez attentivement le schéma de blocs suivant, qui illustre l'algorithme de la future bibliothèque :
Auteur : Andrey Emelyanov