int init()
Spread=MarketInfo(Symbol(),MODE_SPREAD)*MarketInfo(Symbol(),MODE_POINT);
Вроде бы, проблем не замечал, но специально и не исследовал. А нельзя ли по подробнее о возможных проблемах?
З.Ы. А сколько времени убито на поиск ошибки.
Uuu..ps! А я пользую:
int init()
Spread=MarketInfo(Symbol(),MODE_SPREAD)*MarketInfo(Symbol(),MODE_POINT);
Вроде бы, проблем не замечал, но специально и не исследовал. А нельзя ли по подробнее о возможных проблемах?
Работает для некоторые MODE_ - а для других - нет, хотя конечно по идеи должно для всех. Официальное объяснение - в init загружено не все рыночное окружение.
Да что за ерунда! Вставляю строчку в init():
Print("TICKVALUE: ",MarketInfo("USDCHF",MODE_TICKVALUE);При старте терминала получаю 0. Если индикатор принудительно переинициализировать, получаю правильное значение.
Если кусок кода перенести в start(), то индикатор работает нормально, но мне не нужен MarketInfo на каждом тике - индикатор и так "тяжелый" для процессора.
Меня тоже интересуют подобные вопросы.
А можно узнать для какой цели необходимо выполнить некоторые вычисления прямо при старте терминала,ещё до первого тика? И что Вы имеете ввиду, говоря "принудительно переинициализировать"?
А вот spread -то как раз и меняется, например, перед новостями. Его нужно проверять на каждом тике.
Это, собственно, не мое мнение, но я с ним совершенно согласен.
А можно узнать для какой цели необходимо выполнить некоторые вычисления прямо при старте терминала,ещё до первого тика? И что Вы имеете ввиду, говоря "принудительно переинициализировать"?
В init() много чего бывает нужно сделать - помимо обсуждаемого MODE_TICKVALUE, например, создать графический объкт и текст в окне индикатора, послать и получить глобальные переменные от других индикаторов или MarketInfo(Symbol(), MODE_STOPLEVEL), чтобы не получать ошибки о слишком близких стопах и TP по конкретному инструменту, но это уже в советнике, а не в индикаторе и т.д.
Может стоит провериться - IsConnected()?
Если эксперт уже висел на чарте, а терминал только запущен, могло не успеть пройти соединение с сервером и как следовательно рыночное окружение не прогрузилось?
Ну это уж слишком! Перед новостями нужно, закрывать позиции или в крайнем случае отложенники выставлять, а не мерить спред!
Это, собственно, не мое мнение, но я с ним совершенно согласен.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Если кусок кода перенести в start(), то индикатор работает нормально, но мне не нужен MarketInfo на каждом тике - индикатор и так "тяжелый" для процессора.