단순 MT4 - 자바 브리지 - 페이지 3

 
cyberflohr :
올바른 getter 메소드를 사용하고 있습니까 - getDoubleProperty(jCtx, "DoublePropertyName") ?

이중 값으로 샘플 mt4jSAmple.mq4를 확인했으며 작동합니다.

setDoubleProperty(jCtx, "DoublePropertySample", DoubleProperty);
if (DoubleProperty != getDoubleProperty(jCtx, "DoublePropertySample")) {
Alert("Double이 올바르게 설정되지 않았습니다: " + getDoubleProperty(jCtx, "DoublePropertySample"));

}


float 값 자체일 수도 있습니다. float 값은 무엇입니까?

환경

========

> MT4.00 빌드 418

> 자바 런타임 : C:\Program Files (x86)\Java\jre6\bin\client\jvm.dll

자바 버전 "1.6.0_31"
Java(TM) SE 런타임 환경(빌드 1.6.0_31-b05)

Java HotSpot(TM) 클라이언트 VM(빌드 20.6-b01, 혼합 모드, 공유)



MT4 포함:

===========

# "mt4j.dll" 가져오기

이중 getDoubleProperty(int jctx, 문자열 속성 );

무효 setDoubleProperty(int jctx, 문자열 속성, 이중 값);

#수입


자바 구현:

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

개인 이중 doublePropertySample;


공개 더블 getDoublePropertySample() {

this.doublePropertySample을 반환합니다.

}

공개 무효 setDoublePropertySample(더블 더블 속성) {
this.doublePropertySample = 이중 속성;
}



다음 코드가 실행됩니다.

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

이중 send_test_double = -8008.12345678912;

setDoubleProperty(pid,"DoublePropertySample",send_test_double);
이중 수신_테스트_더블 = getDoubleProperty(pid,"DoublePropertySample");

Print("이중 보내기(있는 그대로) ",send_test_double);
Print("이중 전송 테스트 ",DoubleToStrMorePrecision(send_test_double,16));
Print("이중 수신됨(있는 그대로) ",received_test_double);
Print("이중 수신 테스트 ",DoubleToStrMorePrecision(received_test_double,16));
Print("이중 비교 테스트 ",send_test_double == receive_test_double);


터미널 로깅의 다음 행:

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

2012.05.10 00:55:55 ATT - Java EURUSD,M5: 이중 전송(있는 그대로) -8008.1235
2012.05.10 00:55:55 stdlib EURUSD,M5: 성공적으로 로드됨
2012.05.10 00:55:55 ATT - Java EURUSD,M5: 이중 전송 테스트 -8008.1234567891197003
2012.05.10 00:55:55 ATT - Java EURUSD,M5: 이중 수신(현 상태 그대로) -1.#IND
2012.05.10 00:55:55 ATT - Java EURUSD,M5: 이중 수신 테스트 -1.6627963145224000
2012.05.10 00:55:55 ATT - Java EURUSD,M5: 이중 비교 테스트 1


이미 여러 번 비교했기 때문에(아마도 내가 간과한 것일 수 있음) 당신이 그것에 대해 무엇인가를 볼 수 있기를 바랍니다.

 
pivotpoint :

환경

========

> MT4.00 빌드 418

> 자바 런타임 : C:\Program Files (x86)\Java\jre6\bin\client\jvm.dll

자바 버전 "1.6.0_31"
Java(TM) SE 런타임 환경(빌드 1.6.0_31-b05)

Java HotSpot(TM) 클라이언트 VM(빌드 20.6-b01, 혼합 모드, 공유)



MT4 포함:

===========

# "mt4j.dll" 가져오기

더블 getDoubleProperty(int jctx, 문자열 속성);

무효 setDoubleProperty(int jctx, 문자열 속성, 이중 값);

#수입


자바 구현:

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

개인 이중 doublePropertySample;


공개 더블 getDoublePropertySample() {

this.doublePropertySample을 반환합니다.

}

공개 무효 setDoublePropertySample(더블 더블 속성) {
this.doublePropertySample = 이중 속성;
}



다음 코드가 실행됩니다.

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

이중 send_test_double = -8008.12345678912;

setDoubleProperty(pid,"DoublePropertySample",send_test_double);
이중 수신_테스트_더블 = getDoubleProperty(pid,"DoublePropertySample");

Print("이중 보내기(있는 그대로) ",send_test_double);
Print("이중 전송 테스트 ",DoubleToStrMorePrecision(send_test_double,16));
Print("이중 수신됨(있는 그대로) ",received_test_double);
Print("이중 수신 테스트 ",DoubleToStrMorePrecision(received_test_double,16));
Print("이중 비교 테스트 ",send_test_double == receive_test_double);


터미널 로깅의 다음 행:

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

2012.05.10 00:55:55 ATT - Java EURUSD,M5: 이중 전송(있는 그대로) -8008.1235
2012.05.10 00:55:55 stdlib EURUSD,M5: 성공적으로 로드됨
2012.05.10 00:55:55 ATT - Java EURUSD,M5: 이중 전송 테스트 -8008.1234567891197003
2012.05.10 00:55:55 ATT - Java EURUSD,M5: 이중 수신(현 상태 그대로) -1.#IND
2012.05.10 00:55:55 ATT - Java EURUSD,M5: 이중 수신 테스트 -1.6627963145224000
2012.05.10 00:55:55 ATT - Java EURUSD,M5: 이중 비교 테스트 1


이미 여러 번 비교했기 때문에(아마도 내가 간과한 것일 수 있음) 당신이 그것에 대해 무엇인가를 볼 수 있기를 바랍니다.



아니면 다른 개선 사항과 함께 사용할 수 있는 업데이트된 버전의 소프트웨어가 있습니까? 현재 dll의 v2 버전을 사용하고 있습니다.
 

안녕하세요 피봇포인트입니다.

내 MT 빌드 409로 코드를 테스트했으며 작동합니다.

06:37:18 mt4j샘플 EURUSD,H4: 이중 전송(있는 그대로) -8008.1235
06:37:18 stdlib EURUSD,H4: 성공적으로 로드됨
06:37:18 mt4jSample EURUSD,H4: 이중 전송 테스트 -8008.1234567891197003
06:37:18 mt4j샘플 EURUSD,H4: 이중 수신(현재 상태) -8008.1235
06:37:18 mt4jSample EURUSD,H4: 이중 수신 테스트 -8008.1234567891197003

06:37:18 mt4j샘플 EURUSD,H4: 이중 비교 테스트 1


그럼에도 불구하고 나는 이리저리 검색하고 흥미로운 게시물을 발견했습니다. 사용 중인 버전(418)에 심각한 버그가 있는 것 같습니다.

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


문안 인사,

사이버플로어

 
새 버전: V0.3

noargs void 메서드에 대한 지원이 추가되었습니다.

MT4 코드:

// EA 클래스에서 noargs void 메소드를 호출합니다.
callNoArgsMethod(jCtx, "doSomething");


문안 인사,

사이버플로어

파일:
mt4j_v0.3.zip  17 kb
 
brooky29 :

안녕

내 이해에 오류 126은 MT4가 dll 파일을 찾을 수 없다는 것을 의미합니다. 올바른 이름으로 호출한다고 가정하면 기본적으로 /experts/libraries/ 폴더에 있어야 합니다. 다른 곳으로 갈 수 있지만 이것이 최고의 위치입니다.

도움이 되었기를 바랍니다.

건배

브루키

사실, 여러 테스트와 외부 포럼 검색 후 DLL이 종속성 중 하나를 찾을 수 없을 때 시스템에서 오류 126 이 발생한다는 사실을 발견했습니다... 운영 체제에 종속성이 없습니다.
 

안녕,

MT 빌드 432에 대해 아래 오류가 있습니다.

2012.06.14 00:23:24 2011.09.26 20:00 mt4jSample EURUSD,H4: 6D8860FA에서 dll 'mt4j.dll'의 심각한 오류 c0000005에서 함수 'addNewBar' 호출.

저에게는 빌드에 API에 문제가 있는 것 같습니다.

최신 MT 빌드로 업그레이드하면 같은 문제가 다시 발생합니까?


감사해요


 

여보세요,

mt4jSample.jar을 로드하는 데 문제가 있습니다. 외부 jar 파일이 필요한 몇 가지 코드를 SampleEA.java에 추가했지만 mt4jSample.jar 을 다시 패키징한 후 시스템이 인식되지 않거나 외부 jar 파일을 찾을 수 없는 것 같습니다.

새로운 SampleEA.java는 Eclipse에서는 잘 작동하지만 MetaTrader 4에서는 작동하지 않습니다. 외부 jar 파일을 호출하고 다시 패키징하는 코드를 제거하면 mt4jSample.jar이 제대로 작동합니다.

외부 jar 파일의 클래스 경로를 정의하거나 설정해야 하는 위치를 알려주시겠습니까? 나는 mt4j를 시도했다. 속성 은 있지만 작동하지 않습니다.

많은 감사

 
javaelf :

여보세요,

mt4jSample.jar을 로드하는 데 문제가 있습니다. 외부 jar 파일이 필요한 몇 가지 코드를 SampleEA.java에 추가했지만 mt4jSample.jar 을 다시 패키징한 후 시스템이 인식되지 않거나 외부 jar 파일을 찾을 수 없는 것 같습니다.

새로운 SampleEA.java는 Eclipse에서는 잘 작동하지만 MetaTrader 4에서는 작동하지 않습니다. 외부 jar 파일을 호출하고 다시 패키징하는 코드를 제거하면 mt4jSample.jar이 제대로 작동합니다.

외부 jar 파일의 클래스 경로를 정의하거나 설정해야 하는 위치를 알려주시겠습니까? mt4j.properties를 시도했지만 작동하지 않습니다.

많은 감사

이 포럼은 mql4 코딩에 관한 것입니다. . .
 
RaptorUK :
이 포럼은 mql4 코딩에 관한 것입니다. . .

감사합니다만 포스트에서 말씀드린 것처럼 이클립스에서는 문제가 없는데 MetaTrader4에서는 문제가 있습니다. MQL4 또는 MetaTrader4가 클래스 경로를 구성해야 하는 위치가 확실하지 않습니다.
 
javaelf :

여보세요,

mt4jSample.jar을 로드하는 데 문제가 있습니다. 외부 jar 파일이 필요한 몇 가지 코드를 SampleEA.java에 추가했지만 mt4jSample.jar 을 다시 패키징한 후 시스템이 인식되지 않거나 외부 jar 파일을 찾을 수 없는 것 같습니다.

새로운 SampleEA.java는 Eclipse에서는 잘 작동하지만 MetaTrader 4에서는 작동하지 않습니다. 외부 jar 파일을 호출하고 다시 패키징하는 코드를 제거하면 mt4jSample.jar이 제대로 작동합니다.

외부 jar 파일의 클래스 경로를 정의하거나 설정해야 하는 위치를 알려주시겠습니까? mt4j.properties를 시도했지만 작동하지 않습니다.

많은 감사

mt4j. 속성 은 클래스 경로를 확장하기에 적합한 위치입니다.

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


사이버플로어