Советники: New_Bar (условие, определяющее появление нового бара, реализованно в виде микросоветника) - страница 2
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Проверьте ещё при возможных тяжёлых расчетах в советнике или используемых индикаторах при большом количестве событий OnTick.
Здравствуйте, Александр! Поставил советник на мониторинг. О результатах сообщу.
С уважением, Владимир.
Здравствуйте, Александр! Поставил советник на мониторинг. О результатах сообщу.
С уважением, Владимир.
По поводу доказательств ошибочности:
Честно говоря, не совсем понял при чём тут обработка событий NewTick, когда условие определения нового бара построено на iOpen() и iVolume().
С уважением, Владимир.Пропуск первого тика возможен при долгой отработке советника и частых тиках. И если отработка будет дольше межтикового времени, то первый объем будет больше 1.
Доброе утро, Валерий! Было бы очень здорово, если Вы примером программного кода показали при каких условиях первый объём будет больше единицы.
С уважением, Владимир.
Честно говоря, не совсем понял при чём тут обработка событий NewTick, когда условие определения нового бара построено на iOpen() и iVolume().
С уважением, Владимир.Доброе утро, Валерий! Было бы очень здорово, если Вы примером программного кода показали при каких условиях первый объём будет больше единицы.
С уважением, Владимир.
... Было бы очень здорово, если Вы примером программного кода показали при каких условиях первый объём будет больше единицы.
С этим можно легко столкнуться в мультивалютном советнике, который работает на графике одной валютной пары. Советник в OnTick() запускает цикл по нескольким парам. Допустим, по первой паре наступил новый бар и советник решил открыть по ней позицию или несколько отложенных ордеров. На это с учетом возможных задержек может уйти несколько секунд. За эти секунды по второй паре уже пришло два тика, и когда советник доберется в цикле до обработки второй пары, то ваше условие нового бара уже не будет выполнено. Новый бар для второй пары будет пропущен.
Поэтому я для себя реализовывал более сложный код для определения нового бара, в основе которого примерно та же идея, как и в этом ответе, только вместо iTime используется iVolume.
Специально написал проверочный код
и запустил в OnTick().
После обнуления счётчика на всех новых барах отсчёт начинается с единицы. Если есть желание, сами можете в этом убедиться. Кстати, хотелось бы узнать в целях саморазвития, при каких таких многих причинах счетчик тиковых объёмов вдруг сам для себя решит сброситься не до нуля, а например, до единицы или до двойки?
С уважением, Владимир.
Владимир, функция iOpen() возвращает не bool значение
поэтому проверка
не имеет никакого смысла.