Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Você está usando o método getter certo - getDoubleProperty(jCtx, "DoublePropertyName") ?
Eu verifiquei a amostra mt4jSAmple.mq4 com valores duplos e funciona.
setDoubleProperty(jCtx, "DoublePropertySample", "DoublePropertySample");
if (DoubleProperty != getDoubleProperty(jCtx, "DoublePropertySample")) {
Alert("Double não foi ajustado corretamente: " + getDoubleProperty(jCtx, "DoublePropertySample"))
}
Talvez seja o próprio valor do flutuador, qual é o valor do flutuador?
Ambiente
========
> MT4.00 construir 418
> Java Runtime : C:\Program Files (x86)\Javajre6binclient\jvm.dll
versão java "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b05)
Java HotSpot(TM) Cliente VM (construir 20.6-b01, modo misto, compartilhamento)
Inclusão do MT4 :
==========
#importar "mt4j.dll"
double getDoubleProperty(int jctx, string property);
void setDoubleProperty(int jctx, propriedade da corda, valor duplo);
#importimplementação Java :
==============
dupla Propriedade Privada DoublePropertySample;
público duplo getDoublePropertySample() {
devolver este.doublePropertySample;}
public void setDoublePropertySample(doubleProperty) {
this.doublePropertySample = doubleProperty;
}
O seguinte código é executado :
==============
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 "(Double Send Test = -8008.12345678912);DoubleToStrMorePrecision(send_test_double,16));
Print("Double Received (as is) ",received_test_double);
Print("DoubleToStrMorePrecision(send_test_double,16));
Print("Double Comparison Test ",send_test_double == received_test_double);
As seguintes linhas no registro do 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: carregado com sucesso
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: Teste Duplo Recebido (como está) -1.#IND
2012.05.10 00:55:55 ATT - Java EURUSD,M5: Teste Duplo Recebido -1.6627963145224000
2012.05.10 00:55:55 ATT - Java EURUSD,M5: Teste Duplo Comparativo 1
Espero que você possa ver algo sobre ele, pois já o comparei muitas vezes (talvez eu tenha esquecido algo).
Meio Ambiente
========
> MT4.00 construir 418
> Java Runtime : C:\Program Files (x86)\Javajre6binclient\jvm.dll
versão java "1.6.0_31"
Java(TM) SE Runtime Environment (construir 1.6.0_31-b05)
Java HotSpot(TM) Cliente VM (construir 20.6-b01, modo misto, compartilhamento)
Inclusão do MT4 :
==========
#importar "mt4j.dll"
double getDoubleProperty(int jctx, string property);
setDoubleProperty(int jctx, propriedade de cordel, valor duplo);
#importarimplementação Java :
==============
dupla Propriedade Privada DoublePropertySample;
public double getDoublePropertySample() {
devolver este.doublePropertySample;}
setDoublePropertySample(doubleProperty) {
this.doublePropertySample = doubleProperty;
}
O seguinte código é executado :
==============
double send_test_double = -8008.12345678912;
setDoubleProperty(pid, "DoublePropertySample",send_test_double);
double received_test_double = getDoubleProperty(pid, "DoublePropertySample",send_test_double);
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);
Imprimir("Double Received Test ",DoubleToStrMorePrecision(received_test_double,16));
Print("Double Comparison Test ",send_test_double == recebido_test_double);
As seguintes linhas no registro do terminal :
=======================
2012.05.10 00:55:55 ATT - Java EURUSD,M5: Duplo envio (como está) -8008.1235
2012.05.10 00:55:55 stdlib EURUSD,M5: carregado com sucesso
2012.05.10 00:55:55 ATT - Java EURUSD,M5: Teste de envio duplo -8008.1234567891197003
2012.05.10 00:55:55 ATT - Java EURUSD,M5: Duplo Recebido (como está) -1.#IND
2012.05.10 00:55:55 ATT - Java EURUSD,M5: Teste Duplo Recebido -1.6627963145224000
2012.05.10 00:55:55 ATT - Java EURUSD,M5: Teste de Comparação Dupla 1
Espero que você possa ver algo sobre ele, pois já o comparei muitas vezes (talvez eu tenha esquecido algo).
Oi pivotpoint,
Eu testei seu código com meu MT build 409 e ele funciona.
06:37:18 mt4jAmostra EURUSD,H4: Duplo envio (como está) -8008.1235
06:37:18 stdlib EURUSD,H4: carregado com sucesso
06:37:18 mt4jAmostra EURUSD,H4: Teste de envio duplo -8008.1234567891197003
06:37:18 mt4jAmostra EURUSD,H4: Duplo Recebido (como está) -8008.1235
06:37:18 mt4jAmostra EURUSD,H4: Teste Duplo Recebido -8008.1234567891197003
06:37:18 mt4jSample EURUSD,H4: Teste de comparação dupla 1
No entanto, procurei e encontrei um posto de interesse. Parece que a versão (418) que você está usando tem alguns bugs sérios.
https://www.mql5.com/en/forum/138657
cumprimentos,
cyberflohr
suporte adicionado para noargs método void-method.
Código MT4:
// chama um método noargs vazio em sua classe EA.
callNoArgsMethod(jCtx, "doSomething");
cumprimentos,
cyberflohr
Hi
O erro 126, ao meu entender, significa que o MT4 não consegue encontrar o arquivo dll. Supondo que você esteja chamando-o pelo seu nome correto, ele precisa estar principalmente na pasta /experts/libraries/. Ele pode ir para outro lugar, mas esta é sua melhor localização.
Espero que isto ajude.
Abraço
Brooky
Hi,
Estou tendo erro abaixo para MT build 432
2012.06.14 00:23:24 2011.09.26 20:00 mt4jSample EURUSD,H4: função 'addNewBar' chamada da dll 'mt4j.dll' erro crítico c0000005 em 6D8860FA.
Para mim, parece que a construção teve problemas com a api.
Será que voltaríamos a ter o mesmo problema se fizéssemos um upgrade com a nova construção da MT?
Obrigado
Olá,
Tenho um problema para carregar o mt4jSample.jar. Adicionei alguns códigos no SampleEA.java que requerem arquivos jarros externos, entretanto, após ter reembalado o mt4jSample.jar o sistema parece não ser reconhecido ou não consegue encontrar onde esses arquivos jarros externos se encontram.
O novo SampleEA.java funciona bem no Eclipse, mas simplesmente não funciona no MetaTrader 4, se eu remover aqueles códigos que chamam arquivos jarros externos e reembalados, o mt4jSample.jar funciona bem.
Você pode me dizer onde devo definir ou definir o caminho de classe para esses arquivos externos do jarro? Eu tenteias propriedades do mt4j. mas não funcionou.
Muito obrigado.
Olá,
Tenho um problema para carregar o mt4jSample.jar. Adicionei alguns códigos no SampleEA.java que requerem arquivos jarros externos, entretanto, após ter reembalado o mt4jSample.jar o sistema parece não ser reconhecido ou não consegue encontrar onde esses arquivos jarros externos se encontram.
O novo SampleEA.java funciona bem no Eclipse, mas simplesmente não funciona no MetaTrader 4, se eu remover aqueles códigos que chamam arquivos jarros externos e reembalados, o mt4jSample.jar funciona bem.
Você pode me dizer onde devo definir ou definir o caminho de classe para esses arquivos externos do jarro? Eu tentei o mt4j.properties mas não funcionou.
Muito obrigado.
Este Fórum é sobre a codificação mql4 . .
Olá,
Tenho um problema para carregar o mt4jSample.jar. Adicionei alguns códigos no SampleEA.java que requerem arquivos jarros externos, entretanto, após ter reembalado o mt4jSample.jar o sistema parece não ser reconhecido ou não consegue encontrar onde esses arquivos jarros externos se encontram.
O novo SampleEA.java funciona bem no Eclipse, mas simplesmente não funciona no MetaTrader 4, se eu remover aqueles códigos que chamam arquivos jarros externos e reembalados, o mt4jSample.jar funciona bem.
Você pode me dizer onde devo definir ou definir o caminho de classe para esses arquivos externos do jarro? Eu tentei o mt4j.properties mas não funcionou.
Muito obrigado.
mt4j.properties é o lugar certo para expandir o classpath, ou seja
jvmOption.1=-Djava.class.path=experts\libraries\mt4jSample.jar;experts\libraries\mylib.jar;c:\mylibs\mylib2.jar
cyberflohr