Выпущен MetaTrader 4 Client Terminal build 600 с обновленным языком MQL4 и Маркетом приложений - страница 66
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
MT4 билд 604
Использую:
#import "kernel32.dll"
int GetLastError(void);
...
#import
Вызовы типа kernel32::GetLastError() проходят успешно, а вот на обычные вызовы встроенной функции приводят к ошибке:
'GetLastError' - ambiguous call to overloaded function with the same parameters
Кто-нибудь сталкивался с этим?
Господа! Вопрос о возникших лагах с историей и бедой с оффлайн тестированием задавался на этой ветке разными людьми не менее четырёх раз.
Ответа нет, поэтому вынужден задать его в пятый раз.
РАЗРАБОТЧИКИ УСЛЫШЬТЕ ЖЕ, НАКОНЕЦ !!!!!
Новая версия билда не подгружает историю по меньшей мере с Вашего крупнейшего клиента в РФ брокера альпари, при этом
СО СТАРОЙ ИСТОРИЕЙ ТЕРМИНАЛ РАБОТАЕТ С ОШИБКАМИ !!!!!!
Лично у меня история сохранилась случайно на втором "счётном" компьютере! Поэтому я её перекидываю в папку history и сколько-то тестов проходит нормально, но затем терминал начинает эту историю "портить".
В ней начинают появляться ошибки рассогласования графиков. Начинают "плыть" результаты тестов. При этом на оффлайне (если ввести заведомо неправильные логин и пароль) машина работает тоже странно - явно слишком медленно.
При этом терминал время от времени требует обновления, после которого (через некоторое время) опять начинаются ошибки с рассогласованием!
Что интересно! Я тестирую на 2008-2013 гг. Истории котировок за 2008-2013 гг. на серваках альпари больше нет (или она не грузится, тк они просто не прописали адрес, или она не переведена в новые форматы - хз).
Там есть история за 2014 год. А я на 2014 г. ничего не тестирую!!!! Как это вообще может происходить?!
Если повторить фокус с очисткой папки history и записью туда старой истории, всё опять начинает ( на некоторое время) работать более или менее нормально.
Всё-таки прошу разработчиков дать алгоритм работы оффлайн в новом билде! Вы же сами написали, что ФОРМАТ КОТИРОВОК НОВЫЙ! Тогда почему вообще читается старый формат?! Означает ли это, что всю историю на серверах нужно теперь приводить в новый формат?
Кто и когда это будет делать? Можно ли решить эту проблему самостоятельно?
PS
Господа, я понимаю, что за эти крики души капслоком, я рискую получит бан, но что мне ещё остаётся делать?!
В Альпари плохо понимают, зачем нужна история. На письма и звонки отвечают на уровне "Ой, што правда сервера лежат?! Ой... гляди ка и правда! "
Надежда только на Вас! Наверняка же проблема решается как-то просто: что-то где-то прописать, снести какой-либо файлик (чтобы отбить желание обновляться) и заниматься оффлайном на каком-либо другом сервере (например не альпари, а Вашем или каком-ещё!)
Ну... должно же быть решение!
PPS
Прилагаю два результата тестирования советника (он ещё в работе) который на одной и той же исторической базе даёт разные результаты и те самые ошибки рассогласования! Сначала ошибок нет, а потом их ни много ни мало 16 345 839 (16 млн. да да!)
Спасибо за отзыв. Но мне не понятен ответ. Что значит сигнатура? Или Вы имеете ввиду имя_контекста?
Попробовал поставить перед базовой функцией операцию разрешения контекста ( :: ) без указания базового класса. Вроде прокатило, но нет уверенности что код правильно скомпилируется...
Спасибо за отзыв. Но мне не понятен ответ. Что значит сигнатура? Или Вы имеете ввиду имя_контекста?
Попробовал поставить перед базовой функцией операцию разрешения контекста ( :: ) без указания базового класса. Вроде прокатило, но нет уверенности что код правильно скомпилируется...
:-)) У функции GetLastError() нет параметров. Не получится перегрузить.
Зачем это надо?
Есть такая функция - RtlGetLastWin32Error().
Не компилируется эксперт! Раньше в старых билдах всё прекрасно работало!!!!!!!!
Теперь что за свои деньги всё переделывать? Я не программист!!!!!!!!!!
Зачем такое нужно было делать???????
Также не компилируются ещё 3-4 моих рабочих индикаторов!!!!!!!
Не компилируется эксперт! Раньше в старых билдах всё прекрасно работало!!!!!!!!
Теперь что за свои деньги всё переделывать? Я не программист!!!!!!!!!!
Зачем такое нужно было делать???????
Также не компилируются ещё 3-4 моих рабочих индикаторов!!!!!!!
Этот код и в 509-ом не должен компилироваться по причине наличия переменных из декомпилированного кода:
все вопросы к разработчику.:-)) У функции GetLastError() нет параметров. Не получится перегрузить.
Зачем это надо?
Есть такая функция - RtlGetLastWin32Error().
Ну вообще-то это не совсем так. Можно обойтись и без перегрузки, если явно указывать контекст (https://www.mql5.com/ru/docs/basis/operations/other предпоследний параграф). Вопрос в том, что в MQL5 это работает, а в MQL4-6xx - нет. Тут либо разработчики ошиблись при реализации "приближения" к MQL5, либо MQL4-6xx не настолько "приближен".
Про функцию RtlGetLastWin32Error я слышал, но смутил тот факт, что в текущем хелпе по MSDN о ней ни слова.
Ну вообще-то это не совсем так. Можно обойтись и без перегрузки, если явно указывать контекст (https://www.mql5.com/ru/docs/basis/operations/other предпоследний параграф). Вопрос в том, что в MQL5 это работает, а в MQL4-6xx - нет. Тут либо разработчики ошиблись при реализации "приближения" к MQL5, либо MQL4-6xx не настолько "приближен".
Про функцию RtlGetLastWin32Error я слышал, но смутил тот факт, что в текущем хелпе по MSDN о ней ни слова.
:-) Особенно эта запись порадовала:
До такого не додумаешься без справки :-)
Наверно в MQL4 нельзя или ещё не сделали.