Почему для некоторых криптовалют функция symbol_info.TickValue() возвращает 0? Как тогда рассчитать риск? - страница 2

 

Если RTFM

Print(DoubleToString(DBL_MIN, -16)); // 2.2250738585072014e-308
 
Roman #:

Я вот точно не помню, но раньше вроде такая запись выводила с единичкой в конце

кстати (сразу не обратил внимание) наверное подразумевался DBL_EPSILON а не минимум.. 

Print(DBL_EPSILON)

 
Maxim Kuznetsov #:

кстати (сразу не обратил внимание) наверное подразумевался DBL_EPSILON а не минимум.. 

Print(DBL_EPSILON)

Вроде нет, именно DBL_MIN принтовал с преобразованием в строку и выводилась единичка в конце.
Почему я и удивился на чудо, когда увидел абсолютный ноль.
Не знаю, может раньше это баг был и его исправили.
А может сейчас баг, фиг его знает.

Но то что есть проблема с TICK_VALUE, определённо она есть и это не зависит от брокера.
Так как топик стартер заявляет о проблеме на крипте у ДЦ,
а у меня на фонде биржевого брокера в спецификации.

 

DBL_EPSILON кстати двоечку принтует

Print("DBL_MIN:     ", DoubleToString(DBL_MIN, 16));
Print("DBL_EPSILON: ", DoubleToString(DBL_EPSILON, 16));
2025.03.19 01:11:15.100 TEST (SBER,M1)  DBL_MIN:     0.0000000000000000 //но вот тут больше вопросов, почему абсолютный ноль
2025.03.19 01:11:15.100 TEST (SBER,M1)  DBL_EPSILON: 0.0000000000000002
 

double GetFoo() {

// тут надо убедить оптимизатор чтобы гарантированно не оптимизовал

        //

return DBL_EPSILON;

}

// и вот только тогда 

Print(GetFoo())

 
Maxim Kuznetsov #:


ВАЖНО: При торговле крипты, TickValue может очень малой величиной, и привычным Print(x) будет выведен 0. 

Спасибо, Максим, вы натолкнули меня на мысль - от брокера приходит маленькое, но не нулевое число, а программа округляет его до 2х знаков после запятой и в результате получается ноль. Я полагал, что раз параметр TICK_VALUE - это минимальное изменение цены инструмента в валюте депозита, а депозит задан в USD, значит меньше 1-го цента (0.01 USD) цена изменяться не может. Пока не понятно какие последствия отсюда последуют, но с мертвой точки сдвинулс ...

P.S. Не смог ответить сразу, т.к. что-то творилось с сайтом MQL5.