Обновление платформы MetaTrader 4 билд 625: Журналы в MetaTrader Market и новый MetaViewer - страница 40

 
Sergey_Mechanic:

Да, тут не могу сообразить, в чём дело. Генерирует ошибку 4202 - ERR_OBJECT_DOES_NOT_EXIST, хотя объект есть. Непонятно.

Какая версия метаедитора?

У меня в 5.0 b914 компилируются оба кода без ошибок.

 

При чём здесь компиляция? Ошибка генерируется при попытке считать состояние кнопки:

ResetLastError();
stt = ObjectGetInteger(ChartID(), "ВТТN", OBJPROP_STATE);
Print(IntegerToString(GetLastError());
 

Вот потратил почти час на вашу головоломку, потом вбил самостоятельно название кнопки - "BTTN" и скопировал его везде, где оно встречается. Всё сразу заработало как часики. У вас просто где-то либо русская T, либо русская В. А именно - в строках 21 и 28.

 
Sergey_Mechanic:

Вот потратил почти час на вашу головоломку, потом вбил самостоятельно название кнопки - "BTTN" и скопировал его везде, где оно встречается. Всё сразу заработало как часики. У вас просто где-то либо русская T, либо русская В. А именно - в строках 21 и 28.

У вас дьявольское терпение, благодарю за помощь. Так привык к подсветке синтаксиса, что решил экстраполировать её на содержимое кавычек.
 

Непонятно, как именно передавать в DLL тип datetime

Смотрим документацию https://docs.mql4.com/ru/basis/types/integer из которой явствует, что С++ аналог типа datetime - это __time64_t с диапазоном 0-32 535 244 799

Теперь смотрим пример из \MQL4\Scripts\Examples\DLL\DLLSample.cpp

struct RateInfo
  {
   __int64           ctm;
   double            open;
   double            low;
   double            high;
   double            close;
   unsigned __int64  vol_tick;
   int               spread;
   unsigned __int64  vol_real;
  };

Как видно, ctm здесь вовсе не __time64_t, а __int64 с диапазоном от -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807

Не возникнет ли здесь ошибки при коммуникации между индикаторами\экспертами и библиотекой?

 

Помогите, пожалуйста, решить проблему.

Билд МТ4 625, Windows 7 (32). Устанавливаю советник с dll. Всё устанавливается и работает нормально. Если закрыть терминал с установленным советником, а затем запустить его снова, терминал зависает вот в таком состоянии:

Помогает только чистка установок Terminal/profiles/default, после чего все чарты и советники надо устанавливать заново. В прежних версиях такого не было.

 
NutCracker:

Помогите, пожалуйста, решить проблему.

Билд МТ4 625, Windows 7 (32). Устанавливаю советник с dll. Всё устанавливается и работает нормально. Если закрыть терминал с установленным советником, а затем запустить его снова, терминал зависает вот в таком состоянии:

Помогает только чистка установок Terminal/profiles/default, после чего все чарты и советники надо устанавливать заново. В прежних версиях такого не было.


Можете написать заявку в сервис диск или отправить личным сообщением вашего эксперта. Спасибо

 
wtvirtual:

Непонятно, как именно передавать в DLL тип datetime

Смотрим документацию https://docs.mql4.com/ru/basis/types/integer из которой явствует, что С++ аналог типа datetime - это __time64_t с диапазоном 0-32 535 244 799

Теперь смотрим пример из \MQL4\Scripts\Examples\DLL\DLLSample.cpp

Как видно, ctm здесь вовсе не __time64_t, а __int64 с диапазоном от -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807

Не возникнет ли здесь ошибки при коммуникации между индикаторами\экспертами и библиотекой?

По поводу начала диапазона хочу заметить: чётко видно, что там "unsigned", ни с каких минусов диапазон начинаться не может:
unsigned __int64  vol_tick;
 
simpleton:
По поводу начала диапазона хочу заметить: чётко видно, что там "unsigned", ни с каких минусов диапазон начинаться не может:

Речь идёт не об объёмах, а о времени открытия. Первая строка в структуре: __int64 ctm;
 
alexey_pak:


Можете написать заявку в сервис диск или отправить личным сообщением вашего эксперта. Спасибо




Подскажите, пожалуйста, что такое "сервис диск"?
Причина обращения: