
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Я код подготовлю и выложу.
Могу предположить, что есть какие-то формулы такого плана: (Close[i+1] - Close[i]) / Point или (Open[i] - Bid) / Point.
Если выделенное цветом будет равно нулю, то Вы получите большое значение. Судя по всему, размер, которым Вы возмущены - 154203 - это и есть котировка фунта в 2015-м, 1,54203 деленная на Point. Сделайте проверку на нулевое значение и, возможно, проблема уйдет.
Написал скрипт для проверки.
Результат - весь 2017 год с плохими тиками. Далее всё ОК.
Пробовал запускать с 2011 года - до 14-го тиков не получил, а затем, до конца 17-го, такие же ошибки.
Так всё же что не так?
Написал скрипт для проверки.
Результат - весь 2017 год с плохими тиками. Далее всё ОК.
Пробовал запускать с 2011 года - до 14-го тиков не получил, а затем, до конца 17-го, такие же ошибки.
Так всё же что не так?
Что сразу бросается в глаза
В справке указано, что нельзя напрямую сравнивать два вещественных числа.
Что сразу бросается в глаза
В справке указано, что нельзя напрямую сравнивать два вещественных числа.
Конечно нельзя, если разница может быть только в дробной части. А если сравнивать 1.005 и 150.006 то ничего не мешает написать if(1.005 != 150.006)
А с другой стороны, никаких сложностей и разницу сравнить с нулём…
Что сразу бросается в глаза
В справке указано, что нельзя напрямую сравнивать два вещественных числа.
Какими бы добрыми советами, от каких бы то ни было добрых людей, не приходилось пользоваться, необходимо понимать суть вопроса.
Переменная bid_prev при объявлении инициализируется значением = -10000.01. По этому проверять ее на равенство этому значению можно без каких либо хитростей с нормализацией. Смысл этой проверки в том, чтобы определить, присваивалось ли переменной реальное значение, или выполнение цикла только началось.
Читал и здесь и на хабре, что лучше такие сравнения не делать.
Не настолько подкован как вы, коллеги. Может с double будет все в порядке, в плане совпадений с точностью. Но я не рискую.
Спасибо, парни, за ответы, но!
Вопрос то не в том, что не работает определение начала цикла, а в том, что не смотря на проверку > 0.0 цены тиков оказываются нулевыми! Я прекрасно понимаю, что если и в этом месте применить нормализацию, то, возможно, ошибок станет меньше. Тем не менее вопрос остаётся: почему в истории тиков значение может быть, например, 0.00000000001 ???
Значит, получаем массив с тиками, а в нем есть тики с нулевыми значениями цены. Стоит попробовать их отсеять, из оставшегося составить ряд, и его проверить на гэпы.
Значит, получаем массив с тиками, а в нем есть тики с нулевыми значениями цены. Стоит попробовать их отсеять, из оставшегося составить ряд, и его проверить на гэпы.
Так ведь в том то и дело, что нулевой цены быть не должно! :
Но даже её я пытаюсь отсеять и не получается. Почему? Очевидно - исторические тики несут в себе некорректную информацию.