Скачать MetaTrader 5

Баг?

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Продавай свои разработки в Маркете. Это безопасно!
Forex Trader
114257
Forex Trader 2006.03.17 14:51 
Наблюдаются разные результаты работы эксперта в зависимости от того, как он запускается:

int init()
{
while ( !IsConnected()) Sleep( 100 );
Print( "Init: ", AccountNumber(), " ", AccountName());
return (0);
}

int start()
{
Print( "Start: ", AccountNumber(), " ", AccountName());
return (0);
}

Так вот, если открыть чарт и повесить на него этот эксперт - то все ок, и из init() и из start() все печатается правильно. А вот если перезапустить терминал (не закрывая чарт и не отключая эксперт) то и в init() и очень часто, но не всегда в start() получаем ноль и пустую строчку.
Посмотрите, пожалуйста, мне кажется - это баг.
Forex Trader
114257
Forex Trader 2006.03.17 16:07  
Данные по счёту ещё не подкачались, а тики уже идут
Forex Trader
114257
Forex Trader 2006.03.17 17:23  
А можно это как-то поправить? Хотелось бы уже в init() иметь эту информацию.
Спасибо!
Forex Trader
114257
Forex Trader 2006.03.17 21:09  
Я, наверое, не очень понятно выразился - дело в том, что сколько в init() не жди, эта информация не появляется - в отличии, например, от AccountBalance().
MetaQuotes Software Corp.
Модератор
181292
MetaQuotes Software Corp. 2006.03.17 21:52  
Мы уж много раз объясняли - нельзя в ините работать с рыночной информацией (состояние счета - тоже рыночная информация). Инит вызывается в момент конструирования эксперта (это конструктор в чистом виде), когда никаких рыночных данных может и не быть!
Forex Trader
114257
Forex Trader 2006.03.18 00:06  
Но ведь баланс имеет место быть - а чем эта информация отличается от номера аккаунта? В том то и дело, что состояние счета вы возвращаете правильное, а номер счета - нет. По-моему, это странно :)
MetaQuotes Software Corp.
Модератор
181292
MetaQuotes Software Corp. 2006.03.18 00:13  
Но ведь баланс имеет место быть - а чем эта информация отличается от номера аккаунта? В том то и дело, что состояние счета вы возвращаете правильное, а номер счета - нет. По-моему, это странно :)

_Результат_запроса_рыночных_данных_в_момент_конструирования_эксперта (функция инит) _не_определен_и_не_гарантирован_ни_при_каких_обстоятельствах.
MetaQuotes Software Corp.
Модератор
181292
MetaQuotes Software Corp. 2006.03.18 12:41  
Похоже, что вместо постоянных уточнений о нежелательности вызова рыночных функций из init, мы сделаем так, что инит будет вызываться только по первому ценовому тику, что полностью решит проблему.
Forex Trader
114257
Forex Trader 2006.03.19 19:25  
А основная часть по второму? Очень бы не хотелось.
MetaQuotes Software Corp.
Модератор
181292
MetaQuotes Software Corp. 2006.03.28 18:33  
Мы переделали вызов функции init в экспертах - теперь эта функция вызывается только по приходу первого ценового тика. Это означает, что в init можно пользоваться любой "рыночной" функцией.

Доступно будет в очередном билде.
Forex Trader
114257
Forex Trader 2006.03.28 18:53  
Не знаешь где найдёшь, где потеряешь..
12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий