Joli. Merci. Cependant, je ne trouve pas https://forum.mql4.com/270509 - une erreur s'affiche. De même, pouvez-vous afficher votre code. Java et mt4 est quelque chose que je veux utiliser mais j'ai besoin de voir le code.
J'ai corrigé le lien : https://www.mql5.com/en/forum/121466
Vous pouvez trouver le code MQL et Java dans le fichier ZIP.
c'est un excellent outil
Je n'arrive pas à le faire fonctionner. Pouvez-vous m'aider ?
Quand j'exécute l'EA, mt4 se bloque.
J'utilise Windows 7 64bit, Java 7.0.1, MT4 ver4.00 build 409 25 oct 2011.
java est installé ici C:\jre\bin\client\jvm.dll
mt4 est installé ici C:\MT4\
Windows affiche le message d'erreur suivant
Signature du problème :
Nom de l'événement problématique : BEX
Nom de l'application : terminal.exe
Version de l'application : 4.0.0.409
Horodatage de l'application : 0028f000
Nom du module d'erreur : MSVCR100.dll
Version du module d'erreur : 10.0.30319.1
Horodatage du module d'erreur : 4ba1dbbe
Décalage d'exception : 0008ae6e
Code d'exception : c0000417
Données d'exception : 00000000
Version du système d'exploitation : 6.1.7601.2.1.0.256.1
Locale ID : 2057
Information supplémentaire 1 : a0db
Information supplémentaire 2 : a0db43c64a51ee21486e76f538ab825d
Information supplémentaire 3 : 5a50
Informations complémentaires 4 : 5a50e927a493324cabb3491f7239cdd1
Lisez notre déclaration de confidentialité en ligne :
http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0409
Si la déclaration de confidentialité en ligne n'est pas disponible, veuillez lire notre déclaration de confidentialité hors ligne :
C:\Windows\system32\en-US\erofflps.txt
Il y a deux raisons possibles pour lesquelles votre terminal MT4 s'est planté
1. Vous utilisez une JVM 64bit
Cela ne fonctionnera pas, car MT4 est une application 32 bits. Vous devez installer une JVM 32 bits sur votre Win7-64 bits, qui peut être utilisée avec MT4.
La vérification de la version de la JVM ne doit pas indiquer "64 Bit"
C:\jre\bin\java -version
Java(TM) SE Runtime Environment (build 1.6.0_30-b12)
Java HotSpot(TM) 64-Bit Server VM (build 20.5-b03, mixed mode)
Jusqu'à présent, j'ai testé mon programme uniquement avec Java6. Peut-être y a-t-il des changements dans Java7 qui déclenchent le crash.
La nouvelle version 0.2 est disponible et corrige le crash du terminal ci-dessus.
Salut cyberflohr,
Je suis novice en MT mais j'ai une certaine expérience de Java donc le bridge est un outil très intéressant pour moi. J'ai effectué toutes les étapes d'installation que vous avez mentionnées, mais je n'ai pas réussi à lancer l'exemple. J'ai obtenu ce qui suit dans le journal des experts :
20:53:13 mt4jSample EURUSD,H4 : chargé avec succès
20:53:13 mt4jSample EURUSD,H4 : entrées : IntProperty=99 ; BoolProperty=true ; DoubleProperty=1.23 ; StringProperty="helloWorld" ;
20:53:17 mt4jSample EURUSD,H4 : cannot load library 'mt4j.dll'(error 126)
20:53:17 mt4jSample EURUSD,H4 : expert arrêté
20:53:17 mt4jSample EURUSD,H4 : initialisé
20:54:27 mt4jSample EURUSD,H4 : chargé avec succès
20:54:27 mt4jSample EURUSD,H4 : cannot load library 'mt4j.dll' (error 126)
20:54:27 mt4jSample EURUSD,H4 : expert arrêté
20:54:27 mt4jSample EURUSD,H4 : désinitialisé
20:54:27 mt4jSample EURUSD,H4 : désinitialisation raison 1
20:54:27 mt4jSample EURUSD,H4 : supprimé
Quelle peut être la cause de ce problème ?
Salut cyberflohr,
20:53:17 mt4jSample EURUSD,H4 : cannot load library 'mt4j.dll' (error 126)
Quelle peut être la cause de ce problème ?
Bonjour
Si je comprends bien, l'erreur 126 signifie que MT4 ne peut pas trouver le fichier dll. En supposant que vous l'appelez par son nom correct, il doit principalement se trouver dans le dossier /experts/libraries/. Il peut être placé ailleurs, mais c'est le meilleur emplacement.
J'espère que cela vous aidera.
Salutations
Brooky
Bonjour Cyberflohr,
J'ai suivi vos instructions pour installer mt4jv0.2 et je n'ai pas eu d'erreur signalée dans la plateforme MT4. Cependant, à partir de SampleEA.java, je trouve qu'il y a une méthode qui semble être exécutée lors de l'initialisation de l'EA selon la description de MT4BasicClient.java.
code dans SampleEA.java :
@Override
public void init() {
System.out.println("init()") ;
}
description dans MT4BasicClient.java :
/**
* Appelé par le client MT4 pendant la phase d'init.
*/
D'après ces codes, je pense qu'il doit y avoir quelque chose à imprimer pendant l'initialisation. Mais je n'ai pas vu le message "init()" s'imprimer sur la plateforme MT4. Ai-je bien compris le code ?
En outre, pouvez-vous donner une autre démo pour placer un ordre ?
Merci beaucoup, j'apprécie vraiment votre code :D
Bonjour
D'après ce que je comprends, l'erreur 126 signifie que MT4 ne trouve pas le fichier dll. En supposant que vous l'appelez par son nom correct, il doit principalement se trouver dans le dossier /experts/libraries/. Il peut être placé ailleurs, mais c'est le meilleur emplacement.
J'espère que cela vous aidera.
Salutations
Brooky
correct - le mt4j.dll n'est pas dans le dossier libraries.
Par exemple, si votre dossier d'installation metatrader est c:\program files\metatrader, alors les fichiers pour la passerelle mt4j doivent se trouver aux emplacements suivants.
c:\program files\metatrader\experts\mt4jSample.ex4
c:\program files\metatrader\experts\mt4jSample.mq4
c:\program files\metatrader\experts\libraries\mt4j.dll
c:\program files\metatrader\experts\libraries\mt4j.properties
c:\program files\metatrader\experts\libraries\mt4jSample.jar
PS : vérifiez le fichier journal du pont pour plus d'informations sur l'erreur
c:\program files\metatrader\experts\files\mt4j.log
Bonjour Cyberflohr,
J'ai suivi vos instructions pour installer mt4jv0.2 et je n'ai pas eu d'erreur signalée dans la plateforme MT4. Cependant, à partir de SampleEA.java, je trouve qu'il y a une méthode qui semble être exécutée lors de l'initialisation de l'EA selon la description dans MT4BasicClient.java.
code dans SampleEA.java :
@Override
public void init() {
System.out.println("init()") ;
}
description dans MT4BasicClient.java :
/**
* Appelé par le client MT4 pendant la phase d'init.
*/
D'après ces codes, je pense qu'il doit y avoir quelque chose à imprimer pendant l'initialisation. Mais je n'ai pas vu le message "init()" s'imprimer sur la plateforme MT4. Ai-je bien compris le code ?
En outre, pouvez-vous donner une autre démo pour placer un ordre ?
merci beaucoup, j'apprécie vraiment votre code :D
Je vais préparer un exemple plus complexe qui fait quelques transactions dans les prochains jours.
Salutations,
cyberflohr
- 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
Je suis un programmeur JAVA et j'utilise MT4 depuis un an. Bien que MQL soit très simple et facile à apprendre, certaines choses sont vraiment pénibles à coder dans ce langage. Il y a quelques semaines, j'ai pensé à une intégration simple de code logique écrit en Java dans mon EA Metatrader. J'ai cherché une solution sur Internet et sur ce forum et j'ai trouvé quelques outils intéressants (MT4-Java API https://forum.mql4.com/27050, Java Class to DLL converter, .... ) MAIS tous ont leurs avantages et inconvénients et j'ai donc décidé d'écrire ma propre intégration MT4-Java.
J'avais les quatre exigences MUST HAVE suivantes pour ma solution :
1. Installation simple2. Capacités de débogage pour le code JAVA
3. Vitesse
4. Pas de communication réseau entre MT-Terminal et un autre processus
Une chose qui n'était pas importante pour moi, était la nécessité d'appeler les fonctions MT4 (indicateur, fonctions de trading) à partir de mon code Java. Pour l'analyse technique, j'utilise la bibliothèque open source de www.ta-lib.org et le traitement des ordres est toujours effectué dans le code MQL. Le code Java informe simplement le code MQL quand il est temps d'ACHETER ou de VENDRE.
Tout ce dont vous avez besoin est MetaTrader, une JVM installée (1.6) et le fichier ZIP joint qui contient le code MQL et la DLL pour le conteneur JVM.Copier les fichiers du ZIP dans votre répertoire d'installation MT (garder la structure du répertoire) et éditer le fichier mt4j.properties et ajuster le chemin vers votre fichier jvm.dll. C'est tout pour exécuter l'EA mt4Sample.
L'implémentation de l'échantillon ne fait rien. C'est juste un squelette pour vous montrer ce qui est possible. Lisez les commentaires à l'intérieur des fichiers MT4BasicClient.java et SampleEA.java. Les sources JAVA se trouvent dans le fichier mt4jSample.jar. Votre propre classe doit implémenter l'interface MT4BasicClient ou doit étendre la classe AbstractBasicClient. N'oubliez pas d'ajouter le répertoire ou le fichier JAR contenant vos propres classes au classpath (voir mt4j.properties).
Vos classes Java sont chargées et exécutées par une JVM qui s'exécute à l'intérieur du processus du terminal. Cela vous donnera des performances optimales. J'ai fait quelques tests de performance et compté combien de fois processTick() a été exécuté pendant un backtest MT. La moyenne des appels par seconde était de 400.000 appels/seconde, ce qui me semble assez rapide pour mes besoins.
La JVM a été configurée pour créer un port de débogage à 8001 afin que vous puissiez utiliser votre IDE préféré et déboguer vos composants.Toutes les ressources pour essayer mon petit pont MT4-Java sont jointes à ce post.
Amusez-vous bien :-)Cyberflohr