Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
1. С чего это? От вредных симптомов нужно изваляться, причем решительно.
2. Не следует называть переменные, массивы и прочие вещи созвучно или также ключевым словам языка (но уж очень в глаза бросается массив "Symbol", фиг потом в коде разберешь массив это или что иное).
1. Ну, сначала необходимо подлино установить принадлежность симптоматики к положительным или отрицательным проявлениям. На моем опыте бывали случае, когда пытался изменить значение глобальной переменной в функции, которая этого не должна была делать (проклятый копипаст). Несколько дней искал эту ошибку. С тех пор глобальные переменные использую в случаях, когда без них не обойтись в принципе.
2. Согласен. Но если они используются в пределах одной функции, меня это не парит. Глобальные же переменные с подобными именами, действительно, залог будущих путаниц.
Все же повторю свой вопрос.
Можно ли каким образом внутри OnTick определять срабатывание OnInit?
Например, внутри OnTick объявлять статик переменную, которая хранит количество инициализаций советника (если на такое или аналогичное свойство присутствует в MQL5)?
Наверное, я параноик. Не люблю публичные (глобальные) переменные. Считаю это муветоном.
Глобальные переменные хотя бы видны издалека. А вот прятать внутрь функций серьезные накопительные переменные в статику - это есть путь заботливого рассыпания граблей для самого себя. Я лично впервые вижу, чтобы накопительный статический массив так запрятали внутрь функции. Это грабли фиерического размера.
Используйте классы - они глобальный уровень оставят чистым, скроют все кишки и избавят от костылей.
Все же повторю свой вопрос.
Можно ли каким образом внутри OnTick определять срабатывание OnInit?
Например, внутри OnTick объявлять статик переменную, которая хранит количество инициализаций советника (если на такое или аналогичное свойство присутствует в MQL5)?
Количество срабатываний OnInit можно не только считать, но определять почему именно инициализация произошла (вопрос реализации это другой момент).
С _UninitReason к примеру знакомы?
Нужно написать класс WorkSymbols.
Методы:
string GetSymbol[];
bool UpdateSymbols(inWorkSymbols);
bool UpdateSymbolsStatus();
int GetSymbolCount();
Извинясь, если просьба нахальная... Сам тоже буду пытаться разобраться.
Да, похоже, что зря объединили условие смены символа и таймфрейма.
Я тоже за то, чтобы их разделить на 2 условия. Тикет в сервисдеск уже поставил.
Вроде как сварганил. Критика приветствуется.
Единственное, что мне здесь не нравится - изменение "на живую" размеров массива, содержащего рабочие данные.
Вопрос к разработчикам, гарантировано ли сохранение ранее внесенных данных пользователя в изменяемом динамическом массиве при следующем условии?:
Единственное, что мне здесь не нравится - изменение "на живую" размеров массива, содержащего рабочие данные.
Вопрос к разработчикам, гарантировано ли сохранение ранее внесенных данных пользователя в изменяемом динамическом массиве при следующем условии?: