Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Нашел ошибку в наших продуктах? Смело пиши в Сервисдеск!
Klaus
3
Klaus 2015.03.15 07:46  
Господа, вы почему-то забываете, что GetTickCount() может иметь и только положительное значение, т.к. в документации указывается, что оно может быть не INT, а UINT - а он беззнаковый и больше INT в 2 раза. Вот что будет дальше тогда?

Жаль, что TheXpert не объяснил, как бороться с переполнением.

Мой советник работает на VPS постоянно и я очень боюсь этой непредсказуемости. А как VPS перегружать, чтоб сбросить таймер? Ха-ха. :)

o_O
Модератор
23449
o_O 2015.03.15 11:38  
Renat:
Так как значение DWORD (беззнаковое 32битное число), то счетчик просто переходит через ноль и идет дальше. После ноля идет 1,2,3 ...
Slawa
Модератор
6743
Slawa 2015.03.16 08:06  
lebentz:
Господа, вы почему-то забываете, что GetTickCount() может иметь и только положительное значение, т.к. в документации указывается, что оно может быть не INT, а UINT - а он беззнаковый и больше INT в 2 раза. Вот что будет дальше тогда?

Жаль, что TheXpert не объяснил, как бороться с переполнением.

Мой советник работает на VPS постоянно и я очень боюсь этой непредсказуемости. А как VPS перегружать, чтоб сбросить таймер? Ха-ха. :)

Попробуйте повычитать беззнаковые целые друг из друга с присвоением результата в беззнаковое же целое.

Вы удивитесь, но разница tick_count - prev_tick_count даст правильное значение даже при переходе через 0. То есть, tick_count=5, prev_tick_count=0xFFFFFFF7, например

Проверьте!

/ /123
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий