Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Производитель хочет, чтобы покупатель был на уровне: "не работает - вставьте вилку в розетку" - лишь бы деньги на покупку были... :)))))))))))))))
Принципиально хотелось бы всё таки найти причину - интересно же.
Ну а практически проще перейти на старый 509 билд. Там более или менее всё стабильно.
Из моей практики инженера- электротехника я знаю точно - чем проще тем надёжней.
Как пользователь програмного продукта мой девиз: надёжность и стабильность превыше всех фишек и наворотов :-))
Что-то мне подсказывает, что Win8 ждёт судьба Vista. ;)
К стати полностью согласен...
Принципиально хотелось бы всё таки найти причину - интересно же.
Ну а практически проще перейти на старый 509 билд. Там более или менее всё стабильно.
Из моей практики инженера- электротехника я знаю точно - чем проще тем надёжней.
Как пользователь програмного продукта мой девиз: надёжность и стабильность превыше всех фишек и наворотов :-))
Я полностью согласен: вспоминать про наводки в связи с обновлением на новый билд - это очень смешно... :)))
Тем интереснее истинная причина этого свиста.
Так не интересно. Надо сначала накосячить в старом МЕ, который позволяет косячить, а потом воевать с новым и при этом обвиняя MQ.
По поводу "накосячить в старом"
В накосяченом старом индикатор Hist-multyPrice работает без всяких проблем.
Перебрасываю в 610, комипилирую, убираю все предупреждения, запускаю.
Получаю оплеуху: 2014.02.16 15:05:39.850 Cannot open file 'D:\Program Files\MetaQuotes\MQL4\Indicators\lib_Zemckikh.ex4' [2] 2014.02.16 15:05:39.850 Stoch-multyPrice USDCHF,H1: cannot load external program 'lib_Zemckikh'
Вижу, что терминал пытается найти lib_Zemckikh.ex4 в папке Indicators.
Открываю справку: Вызов импортируемых функций Поиск импортируемой библиотеки EX4 производится в следующей последовательности:
1.Директория, путь к которой задается относительно директории импортирующего EX4 эксперта (скрипта, индикатора);
2.Директория каталог_терминала\MQL4\Libraries;
3.Директория MQL4\Libraries в общей директории всех клиентских терминалов MetaTrader 4 (Common\MQL4\Libraries).
Включение файлов (#include)
Командная строка #include может встречаться в любом месте программы, но обычно все включения размещаются в начале файла исходного текста. Формат вызова: #include "имя_файла" Препроцессор заменяет строку #include содержимым файла WinUser32.mqh.
Угловые скобки обозначают, что файл WinUser32.mqh будет взят из стандартного каталога (обычно это каталог_терминала\MQL4\Include). Текущий каталог не просматривается.
Если имя файла заключено в кавычки, то поиск производится в текущем каталоге (в котором содержится основной файл исходного текста). Cтандартный каталог не просматривается.
Привожу для ясности заголовок индикатора:
6#define PRICE_VOLUME
7#define DISTR_MAX
8#define DISTR_WEIGH
9 #include <lib_Zemckikh.mqh>
Как видно, использованы угловые скобки и файл описаний должен быть взят из include
Содержание include:
#import "lib_Zemckikh.ex4"
bool isPeriod(int myPeriod);
................................................................................
#import
dФайл lib_Zemckikh расположен в папке d:\.....\MQL\libraries:
#property library
double Bar_Price(int Price_Type, int TF, int shift) export
описание функций библиотеки не привожу, оно к делу не относится
Свойство library указано, export указан, а библиотеку терминал не находит.
Так в чем дело? Где косяк?
Win 7, 64 bit, UAC отключен, \portable прописано, файл lib_Zemckikh.ex4 нахдится в MQL\libraries
Как видно, МТ установлен не на системный диск, каталог данных расположен на этом же диске
polycomp:
По поводу "накосячить в старом"
В накосяченом старом индикатор Hist-multyPrice работает без всяких проблем.
Перебрасываю в 610, комипилируюЮ
Решений 2.
1. Откомпилировать библиотеку в 509м и вставить её без исходника в 610. Проверено будет работать.
2. Всё-же найти не отображаемую "ошибку" в коде библиотеки.
Я буквально в пятницу бился с этой задачей.
А почему так и не понял до конца. А всего-то убрал из библиотеки 2 функции
string tts(datetime v){return(TimeToStr(v, TIME_DATE|TIME_SECONDS));}
string ttsd(datetime v){return(TimeToStr(v, TIME_DATE));}
и вписал TimeToStr(v, TIME_DATE|TIME_SECONDS) непосредственно в код.
Может надо было заменить на TimeToString(v, TIME_DATE|TIME_SECONDS)... Я только сейчас об этом подумал.
Кто-нибудь может толково объяснить, в связи С ЧЕМ ИМЕННО появляется приветливое сообщение "Invalid license"? Какая такая лицензия? И почему она вдруг недопустима?
Уточняю. Индикаторы с библиотекой скомпилированы в 610-м билде на одном компе, при переносе на другой комп с тем же 610-м билдом они работать не желают. Инвалид лиценз, библиотека не загружается, глобальная инициализация не удалась. В чём дело?
Решений 2.
1. Откомпилировать библиотеку в 509м и вставить её без исходника в 610. Проверено будет работать.
2. Всё-же найти не отображаемую "ошибку" в коде библиотеки.
Я буквально в пятницу бился с этой задачей.
А почему так и не понял до конца. А всего-то убрал из библиотеки 2 функции
string tts(datetime v){return(TimeToStr(v, TIME_DATE|TIME_SECONDS));}
string ttsd(datetime v){return(TimeToStr(v, TIME_DATE));}
и вписал TimeToStr(v, TIME_DATE|TIME_SECONDS) непосредственно в код.
Может надо было заменить на TimeToString(v, TIME_DATE|TIME_SECONDS)... Я только сейчас об этом подумал.
Спасибо за ответ, буду экспериментировать.
Но очень много вопросов по поводу нового терминала. Например, сегодня ночью почему-то обновился терминал Альпари на 600, причем как-то непонятно:
Осталась старая структура файлов и появилась новая. Содержание папок одинаково, откуда берет файлы терминал не понятно, но в терминале от Альпари злополучный индикатор вроде-бы работает. Но библиотеки работают не корректно. Короче, всё нужно начинать практически с нуля. Слов нет, остались одни междометия. В том, что предыдущий компилятор был кривой - это вина не трейдеров, а разработчиков, а мне теперь разбирайся!
Уточняю. Индикаторы с библиотекой скомпилированы в 610-м билде на одном компе, при переносе на другой комп с тем же 610-м билдом они работать не желают. Инвалид лиценз, библиотека не загружается, глобальная инициализация не удалась. В чём дело?
Ну так библиотечка-то не подгрузилась:
вот по этому пути она и должна лежать
Решений 2.
1. Откомпилировать библиотеку в 509м и вставить её без исходника в 610. Проверено будет работать.
2. Всё-же найти не отображаемую "ошибку" в коде библиотеки.
Я буквально в пятницу бился с этой задачей.
А почему так и не понял до конца. А всего-то убрал из библиотеки 2 функции
string tts(datetime v){return(TimeToStr(v, TIME_DATE|TIME_SECONDS));}
string ttsd(datetime v){return(TimeToStr(v, TIME_DATE));}
и вписал TimeToStr(v, TIME_DATE|TIME_SECONDS) непосредственно в код.
Может надо было заменить на TimeToString(v, TIME_DATE|TIME_SECONDS)... Я только сейчас об этом подумал.
В дополнение к предыдущему хочу добавить, что использование ex4 от 509 проблемы не решает. Когда я таким же манером вставил 2 библиотеки, то вторая не могла загрузиться. Мне кажется, что дело вовсе не в "не отображаемых "ошибках" в коде библиотеки". Если я помещаю функции из библиотеки прямо в код скрипта, все отрабатывается как положено. Отсюда вывод- косяк в подключении библиотечных функций.
Я поднимал эту тему неоднократно, но разработчики не удостаивают вниманием этот вопрос.
Если я в чем-то не прав, разработчики, АУ, отзовитесь, укажите на ошибки в подключении библиотечных функций!
Не буду опять цитировать Вашу справку, я пытался следовать инструкциям, однако ничего не помогло!
Ну так библиотечка-то не подгрузилась:
вот по этому пути она и должна лежать
Она там и лежит. Суть вопроса была в другом.