MetaTrader 4 Client Terminal build 610 - страница 107

 

Приветствую...

Поиском не нашел ответа.

До недавнего времени проблем никаких не было. Эксперт успешно компилировался и работал. Но сегодня заметил, что что-то стало не так. Компилирую експерт - все ок. Ошибок и Варнингов не пишет, но когда пытаюсь прикрепить его к на график в журнале мне пишут:

global initialization failed
Invalid EX4 file

Это что за проблема такая? Скомпилировалось все ок, но не работает.


MT4 Build 625

ME Build 914


Как заставить ME скомпилировать советник, чтобы МТ4 потом не писал ошибки?

 
RomanK:

Приветствую...

Поиском не нашел ответа.

До недавнего времени проблем никаких не было. Эксперт успешно компилировался и работал. Но сегодня заметил, что что-то стало не так. Компилирую експерт - все ок. Ошибок и Варнингов не пишет, но когда пытаюсь прикрепить его к на график в журнале мне пишут:

global initialization failed
Invalid EX4 file

Это что за проблема такая? Скомпилировалось все ок, но не работает.


MT4 Build 625

ME Build 914


Как заставить ME скомпилировать советник, чтобы МТ4 потом не писал ошибки?


С этим вопросом надо обращаться в сервисдеск!

Приложите в обращении ex4-файл. Было бы идеально, если бы вместе с ex4, Вы приложите и его mq4-файл. Обещаем стереть файлы после исследования проблемы

 

Решил проблему самостоятельно.

У меня была внешняя функция в DLL, которая принимала номер как строку. В старых МТ4 это работало. Эмперически вычислил эту проблему, сделал IntegerToString и все скомпилировалось и работает сейчас.

Странно что компилятор такую простую ошибку не написал.

 
RomanK:

Решил проблему самостоятельно.

У меня была внешняя функция в DLL, которая принимала номер как строку. В старых МТ4 это работало. Эмперически вычислил эту проблему, сделал IntegerToString и все скомпилировалось и работает сейчас.

Странно что компилятор такую простую ошибку не написал.


Приведите, пожалуйста, в качестве примера несколько строчек Вашего кода. Как объявлен импорт, как объявлена эта же функция в dll, как Вы раньше вызывали эту функцию и исправленный вариант вызова. Если не сложно
 

Импорт DLL в mql4 файле:

#import "MyLib.dll"
        int Auth( string Email, string License, int _IsDemo, string _AccountNumber, string _Symbol, double &Variables[], string CurrentDate, double &NextDate[], string _TerminalPath );
#import

Вызов функции в том же mql4 файле:

Result = Auth( EMail, License, is_demo, AccountNumber(), "eurusd", variables, TimeToStr( TimeCurrent() + 8000, TIME_DATE ), GettingDate, TerminalPath() );

Объявление функции в C++:

extern "C" __declspec(dllexport) int __cdecl Auth( const wchar_t *InputEmail, const wchar_t *InputLicense, const int InputIsDemo, const wchar_t *InputAccountNumber, const wchar_t *InputSymbol, double *OutputVariables, const wchar_t *InputCurrentDate, double *OutputNextDate, const wchar_t *InputTerminalPath )


Исправил вызов функции вот так:

Result = Auth( EMail, License, is_demo, IntegerToStr( AccountNumber() ), "eurusd", variables, TimeToStr( TimeCurrent() + 8000, TIME_DATE ), GettingDate, TerminalPath() );


То есть добавил конвертацию типа IntegerToStr для AccountNumber().

 
komposter:

С какого-то момента мой новый МТ4 перестал коннектится к mql5.com.

В журнале сообщения об ошибках, продукты из маркета не устанавливаются:

В исключения фаервола терминал добавлен. МТ5 работает нормально.

Проблема была в фаерволе ESET. Слишком хитро он 443 порт проверял...
 
komposter:
Проблема была в фаерволе ESET. Слишком хитро он 443 порт проверял...
Он просто MiM атаку с левым сертификатом (подменяя на свой и анализируя проходящий трафик) проводил скорее всего, а у нас защита от этого.
 

Попробовал протестировать 610 билдом своего советника сделанного на 509 билде.

Код советника прошел компиляцию на 610 билде.

Сделки происходят не совсем одинаково. Возникли следущие вопросы:

1.Будет ли принудительное обновление билда и когда? Сейчас уже при перезапуске терминал запрашивает изменение.

2. Билд 610 полностью совместим с MQL5?

3.Чем может быть вызвана разница в тестах 610 и 509 билдов.

4. Что посоветуете человеку не совсем хорошо знающего MQL. Делать все на пятерке и забыть четверку, чтобы не терять зря время?

Ниже прилагаю скришноты. Советник расчитан только на один ордер.

слева 610 билд справа 509 билд

слева 610 билд справа 509 билд

Здесь вообще не понятно, такой цены нет а buy закрылся по ней и открыт sell

P.S. Скачал у своего брокера обновленный терминал билд 625. Он хорошо протестирован, можно на нем работать?

В нем ошибок не нашел. 610 скачал с сайта Метаквот и зашел через Альпари. Может быть в этом проблема?

 
форумчане добрый день после обновления терминала не могу скомпелировать пару своих советников может кто нибудь сталкивался с токой проблемой или может мои советники не будут работать с новым терминалом. Вот один из советников, может советники тупят?
Файлы:
 
Alik577:
форумчане добрый день после обновления терминала не могу скомпелировать пару своих советников может кто нибудь сталкивался с токой проблемой или может мои советники не будут работать с новым терминалом. Вот один из советников, может советники тупят?
иди туда https://forum.mql4.com/ru/62037
Причина обращения: