Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1754
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Ситуация следующая: в переменной Х хранится индекс бара в истории, известно, что при появлении нового, происходит смещение, и поэтому Х уже указывает на другой бар. Как это пофиксить? Идея такая: с каждым новым баром увеличивать счетчик (count++) и прибавлять его к Х. Таким образом Х всегда будет указывать на один и тот же бар вне зависимости от смещения. Но возникает проблемка, когда инициализируется советник, то надо чтобы первый текущий бар не учитывался, думаю это легко решить если изначально count будет просто иметь значение -1. То есть на текущем баре после инкремента count будет равен "0", а уже на следующем новом баре (когда произошло первое смещение на 1 бар после инициализации) равен "1". Что скажете? Может я вообще думаю не туда?
Если это индикатор, то достаточно
ко всем используемым массивам и буферам индикатора.
Тогда нулевой бар станет rates_total-1
Ситуация следующая: в переменной Х хранится индекс бара в истории, известно, что при появлении нового, происходит смещение, и поэтому Х уже указывает на другой бар. Как это пофиксить? Идея такая: с каждым новым баром увеличивать счетчик (count++) и прибавлять его к Х. Таким образом Х всегда будет указывать на один и тот же бар вне зависимости от смещения. Но возникает проблемка, когда инициализируется советник, то надо чтобы первый текущий бар не учитывался, думаю это легко решить если изначально count будет просто иметь значение -1. То есть на текущем баре после инкремента count будет равен "0", а уже на следующем новом баре (когда произошло первое смещение на 1 бар после инициализации) равен "1". Что скажете? Может я вообще думаю не туда?
К чему такие заморочки?
Для меня это проще)
Зато процессору тяжелей…
Зато процессору тяжелей…
Ситуация следующая: в переменной Х хранится индекс бара в истории, известно, что при появлении нового, происходит смещение, и поэтому Х уже указывает на другой бар. Как это пофиксить? Идея такая: с каждым новым баром увеличивать счетчик (count++) и прибавлять его к Х. Таким образом Х всегда будет указывать на один и тот же бар вне зависимости от смещения. Но возникает проблемка, когда инициализируется советник, то надо чтобы первый текущий бар не учитывался, думаю это легко решить если изначально count будет просто иметь значение -1. То есть на текущем баре после инкремента count будет равен "0", а уже на следующем новом баре (когда произошло первое смещение на 1 бар после инициализации) равен "1". Что скажете? Может я вообще думаю не туда?
Не туда. В Х при загрузке советника / индикатора ничего нет, если это внутри терминала, если только это не инпут или экстерн или глобальная переменная вне терминала, поэтому туда что то сперва надо записать. А потом тупо считать изменения в общем количестве баров (появление нового бара учитывать). типа такого
datetime BarTime;
Приветствую. Подскажите, пожалста. Как в мт5 при инициализации или тике определить тестирование?
Пока нашел только OnTester(), которая вызывается непосредственно перед вызовом функции OnDeinit().
@Valeriy Yastremskiy В Х помещается индекс ещё в OnInit(). У меня код выглядит так:
Как по мне условие с FlagNewBar избыточно.