Блог им. viom

Кривые цены в MT5. Как бороться?

Доброго времени!

Может кто подскажет.

При запросе тиков ленты в МТ5 функцией CopyTicksRange() или CopyRates(), часто приходят кривые котировки типа 70.99999999999 или 71.000000001
и естественно 71.000000001 и 71.00 это разные цифры, что влечет за собой ошибки. 

Перепробовал и округление и даже DoubleToString, а потом  StringToDouble. Не помогло. Какой-то глюк.

Может кто подскажет как побороть.

Заранее спасибо. 

    9 комментариев
    Через MathFloor и NormalizeDouble
    avatar
    Freeman Busido, NormalizeDouble проблему не решает. Пробовал.
    MathFloor проверю. 
    Спасибо.
    avatar
    Я решил… используя и то и другое… не справишься пришлю образец… можно приводить к целым числам или даже разрядам целых чисел
    avatar
    Freeman Busido, может где то в системе что то не так настроено.

    Например гружу в массив данные через CopyRates().

    Попадается такая цена. MyData[0].high=71.9999999999

    Делаю:
     
    MyString=DoubleToString(MyData[0].high, 2);
    Comment(MyString); //Выводит 72.00
    MyDbl=StringToDouble(MyString);
    Comment(MyDbl); //Выводит 71.9999999999

    Колдовство какое-то, где рыть непонятно…
    avatar
    Строчка и число — разные вещи… нужно просто MyData запечатать в MathFloor с NormalizeDouble. Скинь почту или скайп — пришлю образец
    avatar
    MetaQuotes Software   может подскажут?)
    avatar
    Friendly Deep Space, блин, а чё так можно было ?
    avatar
    Вита Мих, да, можно призвать к диалогу в формате:  @«никнейм абонента»
    avatar
    Попробую. Спасибо за советы!
    avatar

    теги блога Вита Мих

    ....все тэги



    UPDONW
    Новый дизайн