Ошибки, баги, вопросы - страница 3500

 
fxsaber #:
Выяснил причины. Рекомендую использовать последний вариант.

По моему Вы просто перепутали относительный и абсолютный способ задания пути. В (1) и (2) записи - относительный путь - и если по нему с тем же именем случайно оказался советник, а не индикатор, то будет ошибка. В (3) записи абсолютный путь - поэтому и ошибки нет

 
A100 #:

По моему Вы просто перепутали относительный и абсолютный способ задания пути. В (1) и (2) записи - относительный путь - и если по нему с тем же именем случайно оказался советник, а не индикатор, то будет ошибка. В (3) записи абсолютный путь - поэтому и ошибки нет

Посмотрите, что написано в Документации по iCustom.

 
fxsaber #:

Посмотрите, что написано в Документации по iCustom.

Я прочел - там нет ошибки, а Вы ее нашли:

опечатка только: \ вместо \\, но о ней компилятор сообщит
 
A100 #:

Я прочел - там нет ошибки, а Вы ее нашли:

На тему относительных путей.

Если индикатор не найден в том же каталоге, то поиск производится относительно корневой директории индикаторов MQL5\Indicators.

Столкнулся с тем, что индикатора не было в том же каталоге, но получил 4802, потому что там был одноименный советник/каталог.

 
fxsaber #:

На тему относительных путей.

Столкнулся с тем, что индикатора не было в том же каталоге, но получил 4802, потому что там был одноименный советник/каталог.

Я об этом и говорю:

iCustom(NULL, 0, "Test.ex5")); //относительный путь:
                               //относительно папки с исходным советником (тот же каталог)
iCustom(NULL, 0, "\\Indicators\\Test.ex5")); //абсолютный путь:
                               //в папке MQL5\\Indicators\\

А что ожидалось? Что Терминал обнаружив вместо индикатора советник (или скрипт) - продолжит поиск по другому пути?

 
A100 #:

А что ожидалось? Что Терминал обнаружив вместо индикатора советник (или скрипт) - продолжит поиск по другому пути?

Да. Либо сообщит, что индикатор "битый". Ведь не догадаться сейчас.

 
Vladislav Boyko #:

https://www.mql5.com/ru/docs/indicators/icustom

[in]  Имя пользовательского индикатора. Если перед именем указан обратный слеш '\', то EX5-файл индикатора ищется относительно корневой директории индикаторов MQL5. Таким образом при вызове iCustom(Symbol(), Period(), "\FirstIndicator"...) индикатор будет загружаться как MQL5\FirstIndicator.ex5.

Спасибо, поправили. Теперь написано как в анонсе https://www.metatrader5.com/ru/releasenotes/terminal/2145, удалили лишнее

относительно корневой директории индикаторов MQL5. Таким образом при вызове iCustom(Symbol(), Period(), "\FirstIndicator"...) индикатор будет загружаться как MQL5\FirstIndicator.ex5.


MetaTrader 5 build 2485: Улучшения в iCustom и общая оптимизация в MQL5
  • 2020.06.05
  • MetaQuotes
  • www.metatrader5.com
Оптимизировано и значительно ускорено редактирование баровой истории у пользовательских финансовых инструментов, в том числе при помощи функции CustomRatesUpdate. Исправлены ошибки, возникавшие при экспорте настроек пользовательских инструментов в JSON-файл. Исправления по крешлогам. Изменен алгоритм загрузки пользовательских индикаторов с...
 
fxsaber #:

Да. Либо сообщит, что индикатор "битый". Ведь не догадаться сейчас.

Строго говоря ошибку можно усмотреть в том, что Терминал не может отличить папку Test\ от файла test.ex5

//Experts\demo.mq5
iCustom(NULL, 0, "Test"); //Ошибка 4208, если существует папка Experts\Test\
                           //а путь индикатора Indicators\test.ex5

при этом непонятно, почему если существует папка Experts\Test\ то ошибка, а если Indicators\Test\ - то нормально

 

Последнее время на форуме не видно последних сообщений, пока не нажмёшь кнопку "обновить".

Может это фича такая, но мне не удобно.


 
Rashid Umarov #:

Спасибо, поправили. Теперь написано как в анонсе https://www.metatrader5.com/ru/releasenotes/terminal/2145, удалили лишнее

А это почему не исправили сразу ?

Причина обращения: