Почитайте про сравнение действительных чисел
Здесь у него, как раз, действительные оказываются равны.
Я думаю, что не стоит возвращать ноль в этой функции. Если вернуть ноль, то она может перезапуститься без всякого прихода тика по инструменту. Поэтому такая фигня и получается.
Почитайте про сравнение действительных чисел
Так здесь наоборот, этот нюанс играет в пользу срабатывания условия.
Даже если предположить, что возможен приход подряд двух тиков, цены которых отличаются в более чем 5-ом знаке, то double все равно хватит чтобы это отследить. Но ведь такие тики наверное в реале невозможны?
Да, уже подумал насчет возврата нуля... попробую...
Здесь у него, как раз, действительные оказываются равны.
Я думаю, что не стоит возвращать ноль в этой функции. Если вернуть ноль, то она может перезапуститься без всякого прихода тика по инструменту. Поэтому такая фигня и получается.
Проверили?
Я же постом выше написал, что возврат rates_total вместо ноля проблему не решает...
Я о сравнении действительных чисел.
Нельзя так сравнивать как делаете Вы
Я о сравнении действительных чисел.
Нельзя так сравнивать как делаете Вы
Vinin, он не умеет сравнивать действительные числа. Но, очевидно, проблема где-то не в этом.
Вы проверили что бы говорить что проблема не в этом?
Как я понимаю - Вы умеете сравнивать действительные числа.

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Господа разработчики и программисты, помогите разобраться в непонятном для меня поведении ф-ции OnCalculate() в индикаторе.
1) Как я понимаю, OnCalculate() во время нормальной работы индикатора должна вызываться только при изменении Bid или Ask... Ниже привожу код индикатора, который на каждом тике сравнивает новые значения Bid / Ask со значениями на предыдущем шаге и в случае отличий запоминает их и прерывает выполнение ф-ции. Т.е. дальнейший код никогда не должен выполниться... Однако, последующий оператор Print тем не менее иногда, изредка, все же выполняется!!! Т.е. получается, что возможны подряд идущие тики с одинаковыми ценами??!!! Как так? Эффект проявляется тем заметнее, чем сильнее волатильность текущего инструмента. Причем это не связано с появлением нового бара и т.п., т.е. происходит спонтанно, "внутри" одной минуты и одного бара.
2) И еще непонятный момент. Если прикрепить такой индикатор к нескольким графикам и затем на одном из них сменить тайм-фрейм, то вышеописанный эффект почему то происходит так же на всех остальных графиках!!! Почему? Ладно, я еще понимаю, на текущем графике происходит переинциализация, пусть даже повторно предыдущие цены передаются в индюк после изменения периода, ок... но почему при этом срабатывает OnCalculate() на индикаторах всех других графиков?