Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
А в окне "Окно данных" время такое же?
Да.
Да.
Ясно. Значит это действительно время бара. Просто у меня было подозрение на параметр "Точная шкала времени".
Здравствуйте!
Как правильно в цикле "for" использовать "double"? В справке вроде нету запрета на использование "double". Я так понимаю что надо нормализовать " i ", но мне не получается.
Если "expr2=2.6 ", то ещё всё нормально 9 итераций, но уже при "expr2=2.8" показывает не правильно 9 итераций (правильно 10).
Здравствуйте!
Как правильно в цикле "for" использовать "double"? В справке вроде нету запрета на использование "double". Я так понимаю что надо нормализовать " i ", но мне не получается.
Если "expr2=2.6 ", то ещё всё нормально 9 итераций, но уже при "expr2=2.8" показывает не правильно 9 итераций (правильно 10).
Вероятно надо нормализовать значения.
Вероятно надо нормализовать значения.
Если имели в виду таким образом, то тоже не помогло:
Если имели в виду таким образом, то тоже не помогло:
Нет. Как минимум надо оптимизировать это
ведь именно это даёт неверное значение. А остальные может и не обязательно.
Здравствуйте!
Как правильно в цикле "for" использовать "double"? В справке вроде нету запрета на использование "double". Я так понимаю что надо нормализовать " i ", но мне не получается.
Если "expr2=2.6 ", то ещё всё нормально 9 итераций, но уже при "expr2=2.8" показывает не правильно 9 итераций (правильно 10).
вот нашел, почитайте пост Николая, очень подробно и очень качественно описал работу с double https://www.mql5.com/ru/forum/1111/page2623#comment_14473837
если материал не усвоится с первого раза, то попробуйте в свой код заменить Print() на printf() с выводом double хотя бы до 15-го знака https://www.mql5.com/ru/forum/1111/page2623#comment_14474138
может быть тогда увидите почему так получается
Нет. Как минимум надо оптимизировать это
ведь именно это даёт неверное значение. А остальные может и не обязательно.
Спасибо, но ваш пример тоже не дал правильный результат. В printf видно что нормализация не происходит:
0 10:29:31.595 Test_Double_For EURCHF,H4: i = 1.000000000000000000000000000000000000000000000000000000000000
0 10:29:31.595 Test_Double_For EURCHF,H4: i = 1.199999999999999955591079014993738383054733276367187500000000
0 10:29:31.595 Test_Double_For EURCHF,H4: i = 1.399999999999999911182158029987476766109466552734375000000000
0 10:29:31.595 Test_Double_For EURCHF,H4: i = 1.599999999999999866773237044981215149164199829101562500000000
0 10:29:31.595 Test_Double_For EURCHF,H4: i = 1.799999999999999822364316059974953532218933105468750000000000
0 10:29:31.595 Test_Double_For EURCHF,H4: i = 1.999999999999999777955395074968691915273666381835937500000000
0 10:29:31.595 Test_Double_For EURCHF,H4: i = 2.199999999999999733546474089962430298328399658203125000000000
0 10:29:31.595 Test_Double_For EURCHF,H4: i = 2.399999999999999911182158029987476766109466552734375000000000
0 10:29:31.595 Test_Double_For EURCHF,H4: i = 2.600000000000000088817841970012523233890533447265625000000000
0 10:29:31.595 Test_Double_For EURCHF,H4: MaxPass: 10 count: 9
0 10:29:31.595 Test_Double_For EURCHF,H4: Last i = 2.800000000000000266453525910037569701671600341796875000000000
вот нашел, почитайте пост Николая, очень подробно и очень качественно описал работу с double https://www.mql5.com/ru/forum/1111/page2623#comment_14473837
если материал не усвоится с первого раза, то попробуйте в свой код заменить Print() на printf() с выводом double хотя бы до 15-го знака https://www.mql5.com/ru/forum/1111/page2623#comment_14474138
может быть тогда увидите почему так получается
Спасибо, я понимаю почему так происходит, поэтому и пытался нормализовать. Мне не получилось. Alexey Viktorov вариант тоже не исправил положение, значения остаются не нормализованными. Так остаётся вопрос, "double" можно использовать в цикле и получить всегда правильное количество итераций?
Так остаётся вопрос, "double" можно использовать в цикле
можно
и получить всегда правильное количество итераций?
значение double всегда правильное, но оно не соответствует позиционной десятичной системе, которую Вы хотели бы видеть или получить
Спасибо, я понимаю почему так происходит, поэтому и пытался нормализовать. Мне не получилось. Alexey Viktorov вариант тоже не исправил положение, значения остаются не нормализованными
любые манипуляции с преобразованием double всегда будут иметь ограничения, сомневаюсь, что эта задача решается в таком виде как в Ваших примерах
делайте надежное решение: в цикле используйте int и формулу по которой будете рассчитывать значение результата double и не используйте сложение double в качестве результата при итерациях в цикле - еще раз посмотрите мой пример в диалоге с Николаем