Корректное обращение к массиву Time[] в OnInit() выдаёт ошибку выхода за пределы массива.

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
vipermagi
134
vipermagi  

Просто есть в функции OnInit() подстрока Time[0]. И при переключении тайм фрейма советник ругается сообщением array out of range in 'МойСоветник.mqh'(137, 25) и вылетает с кодом uninit reason 8. Но только, когда на экране написано большими буквами "Ожидание обновления".

Убираю Time[0] и глюк прекращается.

RickD
1224
RickD  
vipermagi:

Просто есть в функции OnInit() подстрока Time[0]. И при переключении тайм фрейма советник ругается сообщением array out of range in 'МойСоветник.mqh'(137, 25) и вылетает с кодом uninit reason 8. Но только, когда на экране написано большими буквами "Ожидание обновления".

Убираю Time[0] и глюк прекращается.

А что ArraySize(Time) в этот момент выдает?
Алексей Тарабанов
10042
Алексей Тарабанов  
vipermagi:

Просто есть в функции OnInit() подстрока Time[0]. И при переключении тайм фрейма советник ругается сообщением array out of range in 'МойСоветник.mqh'(137, 25) и вылетает с кодом uninit reason 8. Но только, когда на экране написано большими буквами "Ожидание обновления".

Убираю Time[0] и глюк прекращается.

Тестер? 

vipermagi
134
vipermagi  
. ... Rick D. ... .:
А что ArraySize(Time) в этот момент выдает?
Нолик выдаёт.
Алексей Тарабанов:

Тестер? 

Нет, обычный.

DEDUL
139
DEDUL  
vipermagi:
Нолик выдаёт.

Нет, обычный.

Придется паузу предварять или цикл пока ноль ждем
Taras Slobodyanik
38421
Taras Slobodyanik  
Дед пенсионер:
Придется паузу предварять или цикл пока ноль ждем

Может зависнуть при запуске терминала)
В онинит нельзя делать паузы и ожидания.

Лучше перенести это в основной расчет и там проверять.

vipermagi
134
vipermagi  
Taras Slobodyanik:

Может зависнуть при запуске терминала)
В онинит нельзя делать паузы и ожидания.

Лучше перенести это в основной расчет и там проверять.

По моему, это баг системы - запускать OnInit() до подгрузки данных графика.

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий