Basit MT4 - Java köprüsü - sayfa 3

 
cyberflohr :
Doğru alıcı yöntemini mi kullanıyorsunuz - getDoubleProperty(jCtx, "DoublePropertyName")?

mt4jSAmple.mq4 örneğini çift değerlerle doğruladım ve çalışıyor.

setDoubleProperty(jCtx, "DoublePropertySample", DoubleProperty);
if (DoubleProperty != getDoubleProperty(jCtx, "DoublePropertySample")) {
Alert("Çift doğru ayarlanmadı: " + getDoubleProperty(jCtx, "DoublePropertySample"));

}


Belki de kayan değerin kendisidir, kayan değer nedir?

Çevre

========

> MT4.00 yapı 418

> Java Runtime : C:\Program Files (x86)\Java\jre6\bin\client\jvm.dll

java sürümü "1.6.0_31"
Java(TM) SE Çalışma Zamanı Ortamı (derleme 1.6.0_31-b05)

Java HotSpot(TM) İstemci VM (derleme 20.6-b01, karma mod, paylaşım)



MT4 dahil:

==========

#ithalat "mt4j.dll"

double getDoubleProperty(int jctx, string özelliği );

void setDoubleProperty(int jctx, string özelliği, çift değer);

#içe aktarmak


Java uygulaması:

==============

özel çift çiftÖzellikÖrneği;


public double getDoublePropertySample() {

this.doublePropertySample'ı döndür;

}

public void setDoublePropertySample(double doubleProperty) {
this.doublePropertySample = doubleProperty;
}



Aşağıdaki kod çalıştırılır:

==============

çift send_test_double = -80081.12345678912;

setDoubleProperty(pid,"DoublePropertySample",send_test_double);
double alınan_test_double = getDoubleProperty(pid,"DoublePropertySample");

Print("Çift Gönderim (olduğu gibi) ",send_test_double);
Print("Çift Gönderme Testi",DoubleToStrMorePrecision(send_test_double,16));
Print("Çifte Alındı (olduğu gibi) ",alınan_test_double);
Print("Çift Alınan Test",DoubleToStrMorePrecision(received_test_double,16));
Print("Çifte Karşılaştırma Testi",send_test_double == alınan_test_double);


Terminal günlüğünde aşağıdaki satırlar:

=======================

2012.05.10 00:55:55 ATT - Java EURUSD,M5: Çift Gönderim (olduğu gibi) -8008.1235
2012.05.10 00:55:55 stdlib EURUSD,M5: başarıyla yüklendi
2012.05.10 00:55:55 ATT - Java EURUSD,M5: Çift Gönderme Testi -8008.1234567891197003
2012.05.10 00:55:55 ATT - Java EURUSD,M5: Çift Alındı (olduğu gibi) -1.#IND
2012.05.10 00:55:55 ATT - Java EURUSD,M5: Çift Alınan Test -1.6627963145224000
2012.05.10 00:55:55 ATT - Java EURUSD,M5: Çift Karşılaştırma Testi 1


Umarım üzerinde bir şeyler görebilirsiniz, çünkü zaten birçok kez karşılaştırdım (belki bir şeyi gözden kaçırıyorum).

 
pivotpoint :

Çevre

========

> MT4.00 yapı 418

> Java Runtime : C:\Program Files (x86)\Java\jre6\bin\client\jvm.dll

java sürümü "1.6.0_31"
Java(TM) SE Çalışma Zamanı Ortamı (derleme 1.6.0_31-b05)

Java HotSpot(TM) İstemci VM (derleme 20.6-b01, karma mod, paylaşım)



MT4 dahil:

==========

#ithalat "mt4j.dll"

double getDoubleProperty(int jctx, string özelliği);

void setDoubleProperty(int jctx, string özelliği, çift değer);

#içe aktarmak


Java uygulaması:

==============

özel çift çiftÖzellikÖrneği;


public double getDoublePropertySample() {

this.doublePropertySample'ı döndür;

}

public void setDoublePropertySample(double doubleProperty) {
this.doublePropertySample = doubleProperty;
}



Aşağıdaki kod çalıştırılır:

==============

çift send_test_double = -80081.12345678912;

setDoubleProperty(pid,"DoublePropertySample",send_test_double);
double alınan_test_double = getDoubleProperty(pid,"DoublePropertySample");

Print("Çift Gönderim (olduğu gibi) ",send_test_double);
Print("Çift Gönderme Testi",DoubleToStrMorePrecision(send_test_double,16));
Print("Çifte Alındı (olduğu gibi) ",alınan_test_double);
Print("Çift Alınan Test",DoubleToStrMorePrecision(received_test_double,16));
Print("Çifte Karşılaştırma Testi",send_test_double == alınan_test_double);


Terminal günlüğünde aşağıdaki satırlar:

=======================

2012.05.10 00:55:55 ATT - Java EURUSD,M5: Çift Gönderim (olduğu gibi) -8008.1235
2012.05.10 00:55:55 stdlib EURUSD,M5: başarıyla yüklendi
2012.05.10 00:55:55 ATT - Java EURUSD,M5: Çift Gönderme Testi -8008.1234567891197003
2012.05.10 00:55:55 ATT - Java EURUSD,M5: Çift Alındı (olduğu gibi) -1.#IND
2012.05.10 00:55:55 ATT - Java EURUSD,M5: Çift Alınan Test -1.6627963145224000
2012.05.10 00:55:55 ATT - Java EURUSD,M5: Çift Karşılaştırma Testi 1


Umarım üzerinde bir şeyler görebilirsiniz, çünkü zaten birçok kez karşılaştırdım (belki bir şeyi gözden kaçırıyorum).



Yoksa yazılımın diğer geliştirmelerle birlikte güncellenmiş sürümlerine sahip misiniz? Şu anda dll'nin v2 sürümünü kullanıyorum.
 

Merhaba pivot noktası,

Kodunuzu MT build 409 ile test ettim ve çalışıyor.

06:37:18 mt4jÖrnek EURUSD,H4: Çift Gönderim (olduğu gibi) -8008.1235
06:37:18 stdlib EURUSD,H4: başarıyla yüklendi
06:37:18 mt4jÖrnek EURUSD,H4: Çift Gönderme Testi -8008.1234567891197003
06:37:18 mt4jÖrnek EURUSD,H4: Çift Alındı (olduğu gibi) -8008.1235
06:37:18 mt4jÖrnek EURUSD,H4: Çift Alınan Test -8008.1234567891197003

06:37:18 mt4jÖrnek EURUSD,H4: Çift Karşılaştırma Testi 1


Yine de araştırdım ve ilginç bir ilan buldum. Kullanmakta olduğunuz sürüm (418) bazı ciddi hatalara sahip gibi görünüyor.

https://www.mql5.com/en/forum/138657


Saygılarımızla,

Siberflohr

 
Yeni Sürüm: V0.3

noargs void yöntemi için destek eklendi.

MT4 kodu:

// EA sınıfınızda bir noargs void yöntemini çağırır.
callNoArgsMethod(jCtx, "doSomething");


Saygılarımızla,

Siberflohr

Dosyalar:
mt4j_v0.3.zip  17 kb
 
brooky29 :

Merhaba

Anladığım kadarıyla 126 hatası, MT4'ün dll dosyasını bulamadığı anlamına geliyor. Onu doğru adıyla çağırdığınızı varsayarsak, öncelikle /experts/libraries/ klasöründe olması gerekir. Başka bir yere gidebilir ama bu senin en iyi yerin.

Bu yardımcı olur umarım.

Şerefe

Brooky

Aslında, birkaç testten ve harici forumlarda arama yaptıktan sonra, DLL bağımlılıklarından birini bulamadığında sistem tarafından Hata 126'nın yayınlandığını buldum... İşletim sisteminizde bağımlılık yok.
 

Merhaba,

MT build 432 için aşağıdaki hatayı alıyorum

2012.06.14 00:23:24 2011.09.26 20:00 mt4jSample EURUSD,H4: 6D8860FA'da dll 'mt4j.dll' kritik hatası c0000005'ten 'addNewBar' işlevi çağrısı.

Benim için, yapının api ile sorunu var gibi görünüyor.

Daha yeni MT yapısıyla yükseltirsek aynı sorunu tekrar yaşar mıyız?


teşekkürler


 

Merhaba,

mt4jSample.jar dosyasını yüklerken sorun yaşıyorum. SampleEA.java'ya harici jar dosyaları gerektiren birkaç kod ekledim, ancak mt4jSample.jar dosyasını yeniden paketledikten sonra sistem tanınmıyor veya harici jar dosyalarının nerede olduğunu bulamıyor gibi görünüyor.

Yeni SampleEA.java, Eclipse'de iyi çalışıyor ancak MetaTrader 4'te çalışmıyor, eğer harici jar dosyalarını çağıran ve yeniden paketlenen bu kodu kaldırırsam, mt4jSample.jar iyi çalışır.

Lütfen bana bu harici jar dosyaları için sınıf yolunu nerede tanımlamam veya ayarlamam gerektiğini söyler misiniz? mt4j'yi denedim. özellikler ama çalışmıyor.

Çok teşekkürler

 
javaelf :

Merhaba,

mt4jSample.jar dosyasını yüklerken sorun yaşıyorum. SampleEA.java'ya harici jar dosyaları gerektiren birkaç kod ekledim, ancak mt4jSample.jar dosyasını yeniden paketledikten sonra sistem tanınmıyor veya harici jar dosyalarının nerede olduğunu bulamıyor gibi görünüyor.

Yeni SampleEA.java, Eclipse'de iyi çalışıyor ancak MetaTrader 4'te çalışmıyor, eğer harici jar dosyalarını çağıran ve yeniden paketlenen bu kodu kaldırırsam, mt4jSample.jar iyi çalışır.

Lütfen bana bu harici jar dosyaları için sınıf yolunu nerede tanımlamam veya ayarlamam gerektiğini söyler misiniz? mt4j.properties'i denedim ama çalışmıyor.

Çok teşekkürler

Bu Forum mql4 kodlama hakkındadır. . .
 
RaptorUK :
Bu Forum mql4 kodlama hakkındadır. . .

Teşekkürler fakat yazımda belirttiğim gibi Eclipse'de çalıştırdığımda herhangi bir sorun yok fakat MetaTrader4'te sorun yaşıyorum. MQL4 veya MetaTrader4'ün sınıf yolunu nerede yapılandırması gerektiğinden emin değil.
 
javaelf :

Merhaba,

mt4jSample.jar dosyasını yüklerken sorun yaşıyorum. SampleEA.java'ya harici jar dosyaları gerektiren birkaç kod ekledim, ancak mt4jSample.jar dosyasını yeniden paketledikten sonra sistem tanınmıyor veya harici jar dosyalarının nerede olduğunu bulamıyor gibi görünüyor.

Yeni SampleEA.java, Eclipse'de iyi çalışıyor ancak MetaTrader 4'te çalışmıyor, eğer harici jar dosyalarını çağıran ve yeniden paketlenen bu kodu kaldırırsam, mt4jSample.jar iyi çalışır.

Lütfen bana bu harici jar dosyaları için sınıf yolunu nerede tanımlamam veya ayarlamam gerektiğini söyler misiniz? mt4j.properties'i denedim ama çalışmıyor.

Çok teşekkürler

mt4j. özellikler , sınıf yolunu genişletmek için doğru yerdir, yani

jvmOption.1=-Djava.class.path=experts\libraries\mt4jSample.jar;experts\libraries\mylib.jar;c:\mylibs\mylib2.jar


Siberflohr