Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Verwendest du die richtige Getter-Methode - getDoubleProperty(jCtx, "DoublePropertyName") ?
Ich habe das Beispiel mt4jSAmple.mq4 mit Double-Werten überprüft und es funktioniert.
setDoubleProperty(jCtx, "DoublePropertySample", DoubleProperty);
if (DoubleProperty != getDoubleProperty(jCtx, "DoublePropertySample")) {
Alert("Double wasn't set correct: " + getDoubleProperty(jCtx, "DoublePropertySample"));
}
Vielleicht liegt es am Float-Wert selbst, was ist der Float-Wert?
Umgebung
========
> MT4.00 build 418
> Java Runtime : C:\Program Files (x86)\Java\jre6\bin\client\jvm.dll
java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b05)
Java HotSpot(TM) Client VM (Build 20.6-b01, gemischter Modus, gemeinsame Nutzung)
MT4-Einbindung :
==========
#import "mt4j.dll"
double getDoubleProperty(int jctx, string property);
void setDoubleProperty(int jctx, string property, double value);
#importJava-Implementierung :
==============
private doubleDoublePropertySample;
public double getDoublePropertySample() {
return this.doublePropertySample;}
public void setDoublePropertySample(double doubleProperty) {
this.doublePropertySample = doubleProperty;
}
Folgender Code wird ausgeführt:
==============
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);
Folgende Zeilen in der Terminalprotokollierung :
=======================
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: erfolgreich geladen
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
Hoffe du kannst etwas erkennen, da ich es schon mehrmals verglichen habe (vielleicht übersehe ich etwas).
Umgebung
========
> MT4.00 build 418
> Java Runtime : C:\Programme (x86)\Java\jre6\bin\client\jvm.dll
java version "1.6.0_31"
Java(TM) SE Laufzeitumgebung (Build 1.6.0_31-b05)
Java HotSpot(TM) Client VM (Build 20.6-b01, gemischter Modus, gemeinsame Nutzung)
MT4 Einbeziehung :
==========
#import "mt4j.dll"
double getDoubleProperty(int jctx, string property);
void setDoubleProperty(int jctx, string property, double value);
#importJava-Implementierung :
==============
private doublePropertySample;
public double getDoublePropertySample() {
return this.doublePropertySample;}
public void setDoublePropertySample(double doubleProperty) {
this.doublePropertySample = doubleProperty;
}
Der folgende Code wird ausgeführt:
==============
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);
Folgende Zeilen in der Terminalprotokollierung :
=======================
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: erfolgreich geladen
2012.05.10 00:55:55 ATT - Java EURUSD,M5: Doppelter Sendetest -8008.1234567891197003
2012.05.10 00:55:55 ATT - Java EURUSD,M5: Doppeltes Empfangen (wie vorhanden) -1.#IND
2012.05.10 00:55:55 ATT - Java EURUSD,M5: Doppelt erhaltener Test -1.6627963145224000
2012.05.10 00:55:55 ATT - Java EURUSD,M5: Doppelter Vergleichstest 1
Hoffe man kann etwas darauf erkennen, da ich es schon mehrfach verglichen habe (vielleicht übersehe ich etwas).
Hallo pivotpoint,
ich habe deinen Code mit meinem MT build 409 getestet und er funktioniert.
06:37:18 mt4jSample EURUSD,H4: Doppeltes Senden (wie gehabt) -8008.1235
06:37:18 stdlib EURUSD,H4: erfolgreich geladen
06:37:18 mt4jSample EURUSD,H4: Doppelter Sendetest -8008.1234567891197003
06:37:18 mt4jSample EURUSD,H4: Double Received (wie gehabt) -8008.1235
06:37:18 mt4jSample EURUSD,H4: Doppelt erhaltener Test -8008.1234567891197003
06:37:18 mt4jSample EURUSD,H4: Doppelter Vergleichstest 1
Trotzdem habe ich mich umgesehen und ein interessantes Posting gefunden. Es scheint, dass die Version (418), die Sie verwenden, einige schwerwiegende Bugs hat.
https://www.mql5.com/en/forum/138657
Grüße,
cyberflohr
Unterstützung für noargs void-method hinzugefügt.
MT4-Code:
// ruft eine noargs void-Methode in Ihrer EA-Klasse auf.
callNoArgsMethod(jCtx, "doSomething");
Grüße,
cyberflohr
Hallo
Fehler 126 bedeutet nach meinem Verständnis, dass MT4 die dll-Datei nicht finden kann. Unter der Annahme, dass Sie sie mit dem richtigen Namen aufrufen, muss sie sich in erster Linie im Ordner /experts/libraries/ befinden. Sie kann auch woanders liegen, aber dies ist der beste Ort.
Ich hoffe, das hilft Ihnen.
Vielen Dank
Brooky
Hallo,
Ich habe folgenden Fehler für 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.
Für mich sieht es so aus, als hätte der Build ein Problem mit der API.
Würden wir das gleiche Problem wieder treffen, wenn wir mit einem neueren MT-Build aktualisieren?
Vielen Dank
Hallo,
Ich habe ein Problem beim Laden der mt4jSample.jar. Ich habe ein paar Code in SampleEA.java hinzugefügt, die externe jar-Dateien erfordern, aber nachdem ich mt4jSample.jar neu verpackt das System scheint nicht erkannt oder kann nicht finden, wo diese externen jar-Dateien.
Die neue SampleEA.java funktioniert gut in Eclipse, aber nur nicht in MetaTrader 4, wenn ich den Code entfernt, die externe Jar-Dateien aufrufen und neu gepackt, mt4jSample.jar funktioniert gut.
Können Sie mir bitte sagen, wo ich den Klassenpfad für diese externen Jar-Dateien definieren oder festlegen sollte? Ich habe es mit mt4j.properties versucht, aber es funktioniert nicht.
Vielen Dank!
Hallo,
Ich habe ein Problem beim Laden der mt4jSample.jar. Ich habe ein paar Code in SampleEA.java hinzugefügt, die externe jar-Dateien erfordern, aber nachdem ich mt4jSample.jar neu verpackt das System scheint nicht erkannt oder kann nicht finden, wo diese externen jar-Dateien.
Die neue SampleEA.java funktioniert gut in Eclipse, aber nur nicht in MetaTrader 4, wenn ich den Code entfernt, die externe Jar-Dateien aufrufen und neu gepackt, mt4jSample.jar funktioniert gut.
Können Sie mir bitte sagen, wo ich den Klassenpfad für diese externen Jar-Dateien definieren oder festlegen sollte? Ich habe es mit mt4j.properties versucht, aber es funktioniert nicht.
Vielen Dank!
In diesem Forum geht es um mql4-Kodierung...
Hallo,
Ich habe ein Problem beim Laden der mt4jSample.jar. Ich habe ein paar Code in SampleEA.java hinzugefügt, die externe jar-Dateien erfordern, aber nachdem ich mt4jSample.jar neu verpackt das System scheint nicht erkannt oder kann nicht finden, wo diese externen jar-Dateien.
Die neue SampleEA.java funktioniert gut in Eclipse, aber nur nicht in MetaTrader 4, wenn ich den Code entfernt, die externe Jar-Dateien aufrufen und neu gepackt, mt4jSample.jar funktioniert gut.
Können Sie mir bitte sagen, wo ich den Klassenpfad für diese externen Jar-Dateien definieren oder festlegen sollte? Ich habe es mit mt4j.properties versucht, aber es funktioniert nicht.
Vielen Dank!
mt4j.properties ist der richtige Ort, um den Klassenpfad zu erweitern, d.h.
jvmOption.1=-Djava.class.path=experts\libraries\mt4jSample.jar;experts\libraries\mylib.jar;c:\mylibs\mylib2.jar
cyberflohr