Часто случается, что некоторые данные недоступны в MT4 в определенный момент времени.Лучшее, что вы можете сделать, это проверить, принят ли результат (> 0, если вы вызываете время, кавычки, другие данные, которые не могут быть равны нулю), или проверить последнюю ошибку, затем Sleep(50)
и повторить попытку.Скорее всего, 2-5-я попытка успешна, поэтому вам нужно это в цикле.
Возможно, вам нужно знать хотя бы номер счета, который не может быть нулевым.После того, как вы получите успешный результат, все другие данные загружаются правильно.
int OnInit()
{
if(!initializeAccountInfo())
return(INIT_FAILED);
// ... other checks that you need
return(INIT_SUCCEEDED);
}
bool initializeAccountInfo()
{
int accountNumber=0, attempt=0, ATTEMPTS=50, SLEEP(50);
while(attempt<ATTEMPTS)
{
accountNumber=AccountInfoInteger(ACCOUNT_LOGIN);
attempt++;
if(accountNumber==0)
Sleep(SLEEP);
else
break;
}
return accountNumber>0;
}