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

fxsaber #:
Перелопатил форум, попробовал разные варианты, не получается создать Handle индикатора.

Индикатор с соответствующим именем (даже копи-пастил его) на месте. Запускается руками без проблем. Где ошибаюсь?

Индикатор.

Возник вопрос по документации.

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

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

Это точно относительно корневой директории индикаторов? Я думал, корневая директория индикаторов это MQL5\Indicators

[EDIT]

Собственно, дальше MQL5\Indicators как раз называют корневой директорией индикаторов

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

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

Vladislav Boyko #:

Возник вопрос по документации.

Там с ошибкой, конечно, написано.
fxsaber #:
Перелопатил форум, попробовал разные варианты, не получается создать Handle индикатора.

Индикатор с соответствующим именем (даже копи-пастил его) на месте. Запускается руками без проблем. Где ошибаюсь?


Индикатор.

Не воспроизводится build 4190

int OnInit()
  {
   iCustom(NULL, 0, "indiTest.ex5");
   return(INIT_SUCCEEDED);
  }
Experts expert testAdvisor (EURUSD,M5) loaded successfully
Indicators     custom indicator indiTest (EURUSD,M5) loaded succesfully
fxsaber #:
Перелопатил форум, попробовал разные варианты, не получается создать Handle индикатора.

Индикатор с соответствующим именем (даже копи-пастил его) на месте. Запускается руками без проблем. Где ошибаюсь?

Не воспроизводится.


Использовал этот вариант получения хэндла.

iCustom(NULL, 0, "Test.ex5");

В тестере.

2024.03.02 23:26:53.495 program file added: \Indicators\Test.ex5. 5248 bytes loaded

В терминале

2024.03.02 23:30:51.643 Indicators      custom indicator Test (RIH4,M5) loaded succesfully

Всё хорошо.

Версия терминала 4153

Vladislav Boyko #:

Не воспроизводится build 4190

Aleksandr Slavskii #:

Не воспроизводится.

Пробовал разные билды - не работает.
fxsaber #:
Пробовал разные билды - не работает.
portable режим?
Vladislav Boyko #:
portable режим?

Да.

fxsaber #:

Да.

Могу допустить, что проблема связана с этим. Сам никогда не использовал, поэтому не могу ничего сказать.

Самый простой вариант проверить - установите новый терминал без portable режима и попробуйте на нем. Если заработает, то проблема в portable режиме (права доступа, например)

[EDIT]

Можно прикола ради попробовать запустить от имени администратора, но далеко не факт, что поможет. У меня python скрипт с pyautogui работает только от имени администратора, поэтому, а вдруг и МТ возьмет да и заработает😄

P.S. терпеть не могу python😄
fxsaber #:
Перелопатил форум, попробовал разные варианты, не получается создать Handle индикатора.

Индикатор с соответствующим именем (даже копи-пастил его) на месте. Запускается руками без проблем. Где ошибаюсь?


Индикатор.

поставь у индикатора #property buffers 1 (то есть не 0)

это единственное подозрение :-) Что в каких-то билдах нельзя создать хендл для индикатора без буферов...

Выяснил причины.
void OnInit()
{
  Print(iCustom(NULL, 0, "Test"));     // Нельзя, чтобы в папке советника был одноименный файл/каталог c именем Test/Test.ex5.
  Print(iCustom(NULL, 0, "Test.ex5")); // Нельзя, чтобы в папке советника был одноименный файл/каталог c именем Test/Test.ex5.
  Print(iCustom(NULL, 0, "\\Indicators\\Test.ex5")); // Так работает всегда.
}
Рекомендую использовать последний вариант.