Суть проблемы такова: индикатор не отрисовывается, если скомпилирован из командной строки, а если из редактора скомпилировать, то отрисовывается.
Код индикатора:
Строка компиляции:
metaeditor.exe /mql4 /compile:"C:\Program Files\MetaTrader\MQL4\Indicators\TMA_Fair.mq4"
Лог ошибок не выдаёт, ex4 получается новый не с кэша.
Билд: 1090
ОС: Windows XP
Все те же исходные: билд и ось. Проблема не воспроизводится. Пробовал также и на Вашем индикаторе
У меня терминал запускается с ключем /portableСуть проблемы такова: индикатор не отрисовывается, если скомпилирован из командной строки, а если из редактора скомпилировать, то отрисовывается.
А что в логах пишется при подключении индикатора, скомпилированного из командной строки?
А что в логах пишется при подключении индикатора, скомпилированного из командной строки?
initialized
loaded succesffully
UPD: если имелось в виду подключение индикатора в советник, то я без понятия, ибо только приступил к изучению.
Все те же исходные: билд и ось. Проблема не воспроизводится. Пробовал также и на Вашем индикаторе
У меня терминал запускается с ключем /portableЕсли сначала скомпилировать из редактора, а за тем пытаться всунуть скомпилированный с командной строки, то не будет воспроизводиться.
Оно из кэша будет выхватывать первоначально скомпилированное.
Чтобы кэш перебить, нужно при включенном терминале удалить руками из папки скомпилированный индикатор, за тем скомпилировать в командной строке и перетащить в терминале из дерева индикаторов на график без всяких обновлений. Если нажать до добавления "обновить", то накомпиленный с командной строки индикатор затрётся кэшем.
Если сначала скомпилировать из редактора, а за тем пытаться всунуть скомпилированный с командной строки, то не будет воспроизводиться.
Оно из кэша будет выхватывать первоначально скомпилированное.
Чтобы кэш перебить, нужно при включенном терминале удалить руками из папки скомпилированный индикатор, за тем скомпилировать в командной строке и перетащить в терминале из дерева индикаторов на график без всяких обновлений. Если нажать до добавления "обновить", то накомпиленный с командной строки индикатор затрётся кэшем.
Я делал не так. Терминал не запущен. Удаляю файл .ex4 из папки D:\MetaTrader 4\MQL4\Indicators Компилирую из командной строки. запускаю терминал. Индикатора первоначально нет на графике. Вешаю индикатор. И, он рисуется.
Делаем по-другому. Запускаем терминал. Удаляем индикатор с графика. Удаляем файл .ex4. Пытаемся повесить на график индикатор. Получаем сообщение об ошибке "cannot open file ..." Компилируем из командной строки. Вешаем индикатор. Работает.
Запускайте терминал не из системной папки и с ключем /portable
В справке по MetaEditor в разделе "Запуск MetaEditor" есть намеки, что при расположении программы в системной папке, MetaEditor, запускаемый не из-под терминала (в данном случае, из командной строки) может работать не так, как если бы он запускался из-под терминала.
Я делал не так. Терминал не запущен. Удаляю файл .ex4 из папки D:\MetaTrader 4\MQL4\Indicators Компилирую из командной строки. запускаю терминал. Индикатора первоначально нет на графике. Вешаю индикатор. И, он рисуется.
Делаем по-другому. Запускаем терминал. Удаляем индикатор с графика. Удаляем файл .ex4. Пытаемся повесить на график индикатор. Получаем сообщение об ошибке "cannot open file ..." Компилируем из командной строки. Вешаем индикатор. Работает.
Запускайте терминал не из системной папки и с ключем /portable
В справке по MetaEditor в разделе "Запуск MetaEditor" есть намеки, что при расположении программы в системной папке, MetaEditor, запускаемый не из-под терминала (в данном случае, из командной строки) может работать не так, как если бы он запускался из-под терминала.
Ни чё это не помогает. В справке сказано, что отличие от обычного режима в том, что изменяемые файлы отдельно от неизменяемых. То есть, когда MetaTrader установлен в системную папку инсталлятором в Windows версии Vista и выше. Для XP это совершенно не имеет значения.
Я более того скажу, индикатор ложится на график и присутствует там, я его могу наугад ткнуть на график мышью правой кнопкой, где должно быть отрисовано, и мне выдаст контекстное меню, из которого я нажму удалить индикатор; просто он не отрисовывается.
Это вопрос, наверное, к разработчикам, или даже в багрепорт.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Суть проблемы такова: индикатор не отрисовывается, если скомпилирован из командной строки, а если из редактора скомпилировать, то отрисовывается.
Код индикатора:
Строка компиляции:
metaeditor.exe /mql4 /compile:"C:\Program Files\MetaTrader\MQL4\Indicators\TMA_Fair.mq4"
Лог ошибок не выдаёт, ex4 получается новый не с кэша.
Билд: 1090
ОС: Windows XP