Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вы используете правильный метод getter - getDoubleProperty(jCtx, "DoublePropertyName") ?
Я проверил образец mt4jSAmple.mq4 с двойными значениями, и он работает.
setDoubleProperty(jCtx, "DoublePropertySample", DoubleProperty);
if (DoubleProperty != getDoubleProperty(jCtx, "DoublePropertySample")) {
Alert("Двойка была установлена неправильно: " + getDoubleProperty(jCtx, "DoublePropertySample"));
}
Возможно, дело в самом значении float, что такое значение float?
Окружающая среда
========
> MT4.00 build 418
> Java Runtime : C:\Program Files (x86)\Java\jre6\bin\client\jvm.dll
java версия "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b05)
Java HotSpot(TM) Client VM (build 20.6-b01, mixed mode, sharing)
MT4 включение :
==========
#import "mt4j.dll"
double getDoubleProperty(int jctx, string property);
void setDoubleProperty(int jctx, string property, double value);
#importРеализация на Java :
==============
private double doublePropertySample;
public double getDoublePropertySample() {
return this.doublePropertySample;}
public void setDoublePropertySample(double doubleProperty) {
this.doublePropertySample = doubleProperty;
}
Выполняется следующий код :
==============
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);
Следующие строки в журнале терминала :
=======================
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: loaded successfully
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: Тест двойного получения (как есть) -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
Надеюсь, вы сможете что-то увидеть на нем, так как я сравнивал его уже много раз (возможно, я что-то упустил из виду).
Среда
========
> MT4.00 build 418
> Java Runtime: C:\Program Files (x86)\Java\jre6\bin\client\jvm.dll
java версии "1.6.0_31"
Java(TM) SE Runtime Environment (сборка 1.6.0_31-b05)
Java HotSpot(TM) Client VM (build 20.6-b01, mixed mode, sharing)
MT4 включение :
==========
#import "mt4j.dll"
double getDoubleProperty(int jctx, string property);
void setDoubleProperty(int jctx, string property, double value);
#импортРеализация на Java :
==============
private double doublePropertySample;
public double getDoublePropertySample() {
return this.doublePropertySample;}
public void setDoublePropertySample(double doubleProperty) {
this.doublePropertySample = doubleProperty;
}
Выполняется следующий код :
==============
double send_test_double = -8008.12345678912;
setDoubleProperty(pid, "DoublePropertySample",send_test_double);
double received_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 == received_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,
Я протестировал ваш код с моим MT build 409 и он работает.
06:37:18 mt4jSample EURUSD,H4: Двойная отправка (как есть) -8008.1235
06:37:18 stdlib EURUSD,H4: успешно загружен
06:37:18 mt4jSample EURUSD,H4: Тест двойной отправки -8008.1234567891197003
06:37:18 mt4jSample EURUSD,H4: Двойной прием (как есть) -8008.1235
06:37:18 mt4jSample EURUSD,H4: Double Received Test -8008.1234567891197003
06:37:18 mt4jSample EURUSD,H4: Тест двойного сравнения 1
Тем не менее, я поискал вокруг и нашел интересный пост. Похоже, что версия (418), которую вы используете, имеет некоторые серьезные ошибки.
https://www.mql5.com/en/forum/138657
приветствую,
cyberflohr
добавлена поддержка для noargs void-метода.
Код MT4:
// вызывает метод noargs void в классе вашего эксперта.
callNoArgsMethod(jCtx, "doSomething");
пожелания,
cyberflohr
Здравствуйте
Ошибка 126, насколько я понимаю, означает, что MT4 не может найти файл dll. Предполагая, что вы называете его правильным именем, он должен находиться в папке /experts/libraries/. Он может находиться и в другом месте, но это лучшее место.
Надеюсь, это поможет.
Будь здоров
Brooky
Здравствуйте,
У меня ошибка ниже для 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.
Для меня это выглядит так, как будто сборка получила проблемы с api.
Можем ли мы снова столкнуться с той же проблемой, если обновимся на более новую сборку MT?
Спасибо
Здравствуйте,
У меня возникла проблема с загрузкой mt4jSample.jar. Я добавил несколько кодов в SampleEA.java, которые требуют внешних jar файлов, однако после того, как я перепаковал mt4jSample.jar , система, похоже, не распознала или не может найти, где находятся эти внешние jar файлы.
Новый SampleEA.java прекрасно работает в Eclipse, но просто не работает в MetaTrader 4, если я удалю код, который вызывает внешние jar-файлы и переупакую, mt4jSample.jar будет работать нормально.
Подскажите, пожалуйста, где я должен определить или задать путь класса для этих внешних jar-файлов? Я пробовал использовать mt4j.properties, но не помогло.
Большое спасибо
Здравствуйте,
У меня возникла проблема с загрузкой mt4jSample.jar. Я добавил несколько кодов в SampleEA.java, которые требуют внешних jar файлов, однако после того, как я перепаковал mt4jSample.jar , система, похоже, не распознала или не может найти, где находятся эти внешние jar файлы.
Новый SampleEA.java прекрасно работает в Eclipse, но просто не работает в MetaTrader 4, если я удалю код, который вызывает внешние jar-файлы и переупакую, mt4jSample.jar будет работать нормально.
Подскажите, пожалуйста, где я должен определить или задать путь класса для этих внешних jar-файлов? Я пробовал использовать mt4j.properties, но не помогло.
Большое спасибо
Этот форум о кодировании mql4 ....
Здравствуйте,
У меня возникла проблема с загрузкой mt4jSample.jar. Я добавил несколько кодов в SampleEA.java, которые требуют внешних jar файлов, однако после того, как я перепаковал mt4jSample.jar , система, похоже, не распознала или не может найти, где находятся эти внешние jar файлы.
Новый SampleEA.java прекрасно работает в Eclipse, но просто не работает в MetaTrader 4, если я удалю код, который вызывает внешние jar файлы и перепакую, mt4jSample.jar будет работать нормально.
Подскажите, пожалуйста, где я должен определить или задать путь класса для этих внешних jar-файлов? Я пробовал использовать mt4j.properties, но не помогло.
Большое спасибо
mt4j.properties - это правильное место для расширения пути класса, т.е.
jvmOption.1=-Djava.class.path=experts\libraries\mt4jSample.jar;experts\libraries\mylib.jar;c:\mylibs\mylib2.jar
cyberflohr