Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Utilisez-vous la bonne méthode getter - getDoubleProperty(jCtx, "DoublePropertyName") ?
J'ai vérifié l'échantillon mt4jSAmple.mq4 avec des valeurs doubles et cela fonctionne.
setDoubleProperty(jCtx, "DoublePropertySample", DoubleProperty) ;
if (DoubleProperty != getDoubleProperty(jCtx, "DoublePropertySample")) {
Alert("Double wasn't set correct : " + getDoubleProperty(jCtx, "DoublePropertySample")) ;
}
Peut-être que c'est la valeur flottante elle-même, quelle est la valeur flottante ?
Environnement
========
> MT4.00 build 418
> Java Runtime : C:\Program Files (x86)\Java\jre6\bin\client\jvm.dll
java version "1.6.0_31"
Environnement d'exécution Java(TM) SE (build 1.6.0_31-b05)
Java HotSpot(TM) Client VM (build 20.6-b01, mode mixte, partage)
Inclusion MT4 :
==========
#Importation de "mt4j.dll".
double getDoubleProperty(int jctx, string property) ;
void setDoubleProperty(int jctx, string property, double value) ;
#importImplémentation Java :
==============
privé doublePropertySample ;
public double getDoublePropertySample() {
retourner this.doublePropertySample ;}
public void setDoublePropertySample(double doubleProperty) {
this.doublePropertySample = doubleProperty ;
}
Le code suivant est exécuté :
==============
double send_test_double = -8008.12345678912 ;
setDoubleProperty(pid, "DoublePropertySample",send_test_double) ;
double received_test_double = getDoubleProperty(pid, "DoublePropertySample") ;
Print("Double Send (as is) ",send_test_double) ;
Print("Double Send Test ",DoubleToStrMorePrecision(send_test_double,16)) ;
Print("Double Received (as is) ",received_test_double) ;
Print("Double Received Test ",DoubleToStrMorePrecision(received_test_double,16)) ;
Print("Double Comparison Test ",send_test_double == received_test_double) ;
Lignes suivantes dans le journal du terminal :
=======================
2012.05.10 00:55:55 ATT - Java EURUSD,M5 : Double Send (as is) -8008.1235
2012.05.10 00:55:55 stdlib EURUSD,M5 : chargé avec succès
2012.05.10 00:55:55 ATT - Java EURUSD,M5 : Double Send Test -8008.1234567891197003
2012.05.10 00:55:55 ATT - Java EURUSD,M5 : Double Received (as is) -1.#IND
2012.05.10 00:55:55 ATT - Java EURUSD,M5 : Double Received Test -1.6627963145224000
2012.05.10 00:55:55 ATT - Java EURUSD,M5 : Double Comparison Test 1
J'espère que vous pouvez y voir quelque chose, car je l'ai déjà comparé plusieurs fois (j'ai peut-être oublié quelque chose).
Environnement
========
> MT4.00 build 418
> Java Runtime : C:\Program Files (x86)\Java\jre6\bin\\client\jvm.dll
Version de java "1.6.0_31".
Environnement d'exécution Java(TM) SE (build 1.6.0_31-b05)
Java HotSpot(TM) Client VM (build 20.6-b01, mode mixte, partage)
Inclusion MT4 :
==========
#Importation de "mt4j.dll".
double getDoubleProperty(int jctx, string property) ;
void setDoubleProperty(int jctx, string property, double value) ;
#importImplémentation Java :
==============
private doublePropertySample ;
public double getDoublePropertySample() {
retourner this.doublePropertySample ;}
public void setDoublePropertySample(double doubleProperty) {
this.doublePropertySample = doubleProperty ;
}
Le code suivant est exécuté :
==============
double send_test_double = -8008.12345678912 ;
setDoubleProperty(pid, "DoublePropertySample",send_test_double) ;
double received_test_double = getDoubleProperty(pid, "DoublePropertySample") ;
Print("Double Send (as is) ",send_test_double) ;
Print("Double Send Test ",DoubleToStrMorePrecision(send_test_double,16)) ;
Print("Double Received (as is) ",received_test_double) ;
Print("Test de réception de double ",DoubleToStrMorePrecision(received_test_double,16)) ;
Print("Test de comparaison de double ",send_test_double == received_test_double) ;
Lignes suivantes dans le journal du terminal :
=======================
2012.05.10 00:55:55 ATT - Java EURUSD,M5 : Double Send (tel quel) -8008.1235
2012.05.10 00:55:55 stdlib EURUSD,M5 : chargé correctement
2012.05.10 00:55:55 ATT - Java EURUSD,M5 : Test du double envoi -8008.1234567891197003
2012.05.10 00:55:55 ATT - Java EURUSD,M5 : Double Réception (tel quel) -1.#IND
2012.05.10 00:55:55 ATT - Java EURUSD,M5 : Double Received Test -1.6627963145224000
2012.05.10 00:55:55 ATT - Java EURUSD,M5 : Test de double comparaison 1
J'espère que vous pouvez y voir quelque chose, car je l'ai déjà comparé plusieurs fois (j'ai peut-être oublié quelque chose).
Salut pivotpoint,
J'ai testé votre code avec mon MT build 409 et il fonctionne.
06:37:18 mt4jSample EURUSD,H4 : Double envoi (tel quel) -8008.1235
06:37:18 stdlib EURUSD,H4 : chargé avec succès
06:37:18 mt4jSample EURUSD,H4 : Test du double envoi -8008.1234567891197003
06:37:18 mt4jSample EURUSD,H4 : Double Received (as is) -8008.1235
06:37:18 mt4jSample EURUSD,H4 : Double Reçu Test -8008.1234567891197003
06:37:18 mt4jSample EURUSD,H4 : Test de double comparaison 1
Néanmoins, j'ai fait des recherches et j'ai trouvé un message intéressant. Il semble que la version (418) que vous utilisez présente de sérieux bugs.
https://www.mql5.com/en/forum/138657
Salutations,
cyberflohr
ajout d'un support pour noargs void-method.
Code MT4 :
// appelle une méthode noargs void dans votre classe EA.
callNoArgsMethod(jCtx, "doSomething") ;
salutations,
cyberflohr
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
Bonjour,
J'ai l'erreur suivante pour MT build 432
2012.06.14 00:23:24 2011.09.26 20:00 mt4jSample EURUSD,H4 : function 'addNewBar' call from dll 'mt4j.dll'critical error c0000005 at 6D8860FA.
Pour moi, il semble que le build a eu un problème avec l'api.
Est-ce que nous rencontrerons le même problème si nous mettons à jour avec une version plus récente de MT ?
Merci
Bonjour,
J'ai un problème pour charger le mt4jSample.jar. J'ai ajouté quelques codes dans SampleEA.java qui nécessitent des fichiers jar externes, cependant après avoir repackagé mt4jSample.jar le système semble ne pas reconnaître ou ne peut pas trouver où ces fichiers jar externes.
Le nouveau SampleEA.java fonctionne bien dans Eclipse mais ne fonctionne pas dans MetaTrader 4. Si je supprime le code qui nécessite des fichiers jar externes et que je reconditionne, mt4jSample.jar fonctionne bien.
Pouvez-vous me dire où je dois définir le chemin de la classe pour ces fichiers jar externes ? J'ai essayé mt4j.properties mais cela ne fonctionne pas.
Merci beaucoup.
Bonjour,
J'ai un problème pour charger le mt4jSample.jar. J'ai ajouté quelques codes dans SampleEA.java qui nécessitent des fichiers jar externes, cependant après avoir repackagé mt4jSample.jar le système semble ne pas reconnaître ou ne peut pas trouver où ces fichiers jar externes.
Le nouveau SampleEA.java fonctionne bien dans Eclipse mais ne fonctionne pas dans MetaTrader 4. Si je supprime le code qui nécessite des fichiers jar externes et que je reconditionne, mt4jSample.jar fonctionne bien.
Pouvez-vous me dire où je dois définir le chemin de la classe pour ces fichiers jar externes ? J'ai essayé mt4j.properties mais cela ne fonctionne pas.
Merci beaucoup
Ce forum est consacré au codage mql4 . . .
Bonjour,
J'ai un problème pour charger le mt4jSample.jar. J'ai ajouté quelques codes dans SampleEA.java qui nécessitent des fichiers jar externes, cependant après avoir repackagé mt4jSample.jar le système semble ne pas reconnaître ou ne peut pas trouver où ces fichiers jar externes.
Le nouveau SampleEA.java fonctionne bien dans Eclipse mais ne fonctionne pas dans MetaTrader 4. Si je supprime le code qui nécessite des fichiers jar externes et que je reconditionne, mt4jSample.jar fonctionne bien.
Pouvez-vous me dire où je dois définir le chemin de la classe pour ces fichiers jar externes ? J'ai essayé mt4j.properties mais cela ne fonctionne pas.
Merci beaucoup.
mt4j.properties est le bon endroit pour étendre le classpath c'est à dire
jvmOption.1=-Djava.class.path=experts\libraries\mt4jSample.jar;experts\libraries\mylib.jar;c:\mylibs\mylib2.jar
cyberflohr