ОШИБКА! ФУНКЦИИ AccountNumber() и AccountInfoInteger(ACCOUNT_LOGIN) ВОЗВРАЩАЮТ НУЛЕВОЙ НОМЕР СЧЕТА! - страница 2
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Тема закрыта.
Если хотите анализировать именно номер счета, то дождитесь на очередном пересчете в OnCalculate ненулевой номер счета и реализуйте свою логику.
Конечно, можно дожидаться возвращения ненулевого номера счета в функции OnCalculate().
Но согласитесь, что всему свое место. Проверка на номер счета - это подготовительная операция, которая должна выполняться один раз. Где как не внутри функции OnInit() было бы разумно разместить такую проверку?! А иначе зачем вообще нужна функция OnInit(), если все ее содержимое можно перенести в цикл OnCalculate()? Не оптимально это как-то...
Но на сегодняшний день, я так понимаю, другого выхода нет. Придется сделать так, как Вы советуете....
Но Вы хотя бы прокомментируйте мое предположение, правильно ли я понимаю, что при запуске терминала МТ4 сначала устанавливаются все индикаторы, которые были установлены на момент закрытия терминала МТ4, и лишь потом терминал отправляет на торговый сервер логин+пароль для авторизации? Я только так могу объяснить, что в этот момент индикаторам возвращается нулевой номер текущего счета...
Печально, что данная проблема осталась не только в МТ4, но и переехала в МТ5.
Для софта, который предназначен в первую очередь для работы в залогиненным состоянии, правильно было бы иметь событие OnConnect.
Текущая реализация события OnInit делает его пригодным лишь для ограниченных сценариев использования. В частности, для проверки счета нужно придумывать что-то с таймером, потому что запаздывающее подключение к серверу не гарантирует прихода OnCalculate, если локальная история уже актуальная (например, на выходных или между торговыми сессиями).