Чтобы тут поняли что и как вы получаете и в чём проблема, желательно опубликовать код с расчётами и выводом числа пользователю (перевод в строку вывода).
Программно можно работать с числами до 1.7976931348623158e+308, но некоторые расчётные значения могут представлять недействительное число. Подробности можно вычитать в справке по запросу "double".
На практике редко нужна точность уровней больше 6 знаков после запятой, котировки-то с точностью максимум 5 знаков.
а как можно рисовать уровни по таким маленьким коэффициентам?
оно жеж не видно разницы )
объекты с такой точностью не нарисуешь
К = 0,0042/460800;
Калькулятор выдает следующее: 9,114583333333333е-9
Попробовал сделать расчет средствами MQL4 и получил такой ответ: 1е-08 (как я понимаю это 1х10^-8)
void OnStart() { double K = 0.0042 / 460800; Print(K); K *= 460800; Print(K); }
На практике редко нужна точность уровней больше 6 знаков после запятой, котировки-то с точностью максимум 5 знаков.
а как можно рисовать уровни по таким маленьким коэффициентам?
оно жеж не видно разницы )
объекты с такой точностью не нарисуешь
Мне уже порекомендовали разбить расчеты на несколько этапов, попробую с другого конца зайти, может быть попробую преобразовать числа в другие, но как ни крути, эти коэффициенты нужны.
Попробуйте смотреть результат, переводя число в строку функцией DoubleToString с числом знаков после десятичного разделителя 16. Как уже сказали, 1E-8 верное представление с меньшим числом знаков после разделителя, нежели было в 9,114583333333333е-9. В MQL очень часто применяются ограничения разрядности по умолчанию в операциях, связанных с показом чисел на экране.
Можно не считать коэффициент, вместо одного коэффициента таскать за собой эти два числа и их подставлять в формулу, в которой нужен этот коэффициент
В том то и дело, что коэффициент для каждого уровня свой.
Мне уже порекомендовали разбить расчеты на несколько этапов, попробую с другого конца зайти, может быть попробую преобразовать числа в другие, но как ни крути, эти коэффициенты нужны.
(Алерт)
Насколько я понял, в справку вы так и заглянули.
DoubleToString(0.0042 / 460800,-16)
Насколько я понял, в справку вы так и заглянули.
Да уже не нужно, я нашел в чем проблема.
Дело в том, что в моей формуле используется временная шкала, а так как на оси времени есть разрывы при переходе например через выходные, то и линии в итоге строятся не правильно.
А мои формулы рассчитаны на стандартную плоскость координат.
Вот такие дела.
Кстати если кто знает как решить данную проблему, от помощи не откажусь.
В смысле как "растянуть" график, чтобы каждая минута учитывалась визуально?
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Добрый день!
Возникла проблема, поиск на форуме ничем не помог.
Проблема в следующем:
мой советник рисует уровни, но для этого ему нужно получить 2 коэффициента путем расчетов и я так понимаю, он не может использовать эти коэффициенты, так как не может работать с такими "большими" числами.
Если я где-то ошибаюсь поправьте меня.
Я попробовал сделать расчеты вручную, чтобы проверить правильность работы советника, но у меня не получилось.
Коэффициент должен быть получен из этого:
К = 0,0042/460800;
Калькулятор выдает следующее: 9,114583333333333е-9
Попробовал сделать расчет средствами MQL4 и получил такой ответ: 1е-08 (как я понимаю это 1х10^-8)
Мне кажется советник не может выполнить расчет правильно из-за большого кол-ва знаков после запятой ИЛИ проблема в чем-то другом ???