Данные по счёту ещё не подкачались, а тики уже идут
А можно это как-то поправить? Хотелось бы уже в init() иметь эту информацию.
Спасибо!
Спасибо!
Я, наверое, не очень понятно выразился - дело в том, что сколько в init() не жди, эта информация не появляется - в отличии, например, от AccountBalance().
Мы уж много раз объясняли - нельзя в ините работать с рыночной информацией (состояние счета - тоже рыночная информация). Инит вызывается в момент конструирования эксперта (это конструктор в чистом виде), когда никаких рыночных данных может и не быть!
Но ведь баланс имеет место быть - а чем эта информация отличается от номера аккаунта? В том то и дело, что состояние счета вы возвращаете правильное, а номер счета - нет. По-моему, это странно :)
Но ведь баланс имеет место быть - а чем эта информация отличается от номера аккаунта? В том то и дело, что состояние счета вы возвращаете правильное, а номер счета - нет. По-моему, это странно :)
_Результат_запроса_рыночных_данных_в_момент_конструирования_эксперта (функция инит) _не_определен_и_не_гарантирован_ни_при_каких_обстоятельствах.
Похоже, что вместо постоянных уточнений о нежелательности вызова рыночных функций из init, мы сделаем так, что инит будет вызываться только по первому ценовому тику, что полностью решит проблему.
А основная часть по второму? Очень бы не хотелось.
Мы переделали вызов функции init в экспертах - теперь эта функция вызывается только по приходу первого ценового тика. Это означает, что в init можно пользоваться любой "рыночной" функцией.
Доступно будет в очередном билде.
Доступно будет в очередном билде.
Не знаешь где найдёшь, где потеряешь..
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
int init()
{
while ( !IsConnected()) Sleep( 100 );
Print( "Init: ", AccountNumber(), " ", AccountName());
return (0);
}
int start()
{
Print( "Start: ", AccountNumber(), " ", AccountName());
return (0);
}
Так вот, если открыть чарт и повесить на него этот эксперт - то все ок, и из init() и из start() все печатается правильно. А вот если перезапустить терминал (не закрывая чарт и не отключая эксперт) то и в init() и очень часто, но не всегда в start() получаем ноль и пустую строчку.
Посмотрите, пожалуйста, мне кажется - это баг.