Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Объем последней сделки в Int32 маловат #353

Open
Igor-san opened this issue Apr 8, 2024 · 5 comments
Open

Comments

@Igor-san
Copy link
Contributor

Igor-san commented Apr 8, 2024

Столкнулся тут с LQDT:
Could not convert to integer: 2595916425. Path 'data[2460].volume', line 1, position 542940

В Candle пришлось ставить public long Volume { get; set; }

@buybackoff
Copy link
Collaborator

Забавно, 10 лет назад у Газпрома столько акций наверное не было. Что за инструмент, позвольте узнать? Да, long абсолютно верное решение, но раньше и подумать о таких объёмах нельзя было. Крипта?

@buybackoff
Copy link
Collaborator

buybackoff commented Apr 13, 2024

А, сорри, LQDT... Не знаю детали.

Но в целом "оптимизации" типа int меньше long не имеют смысла, можно заменить на long всё, где имеет смысл. Например если бы торговали Эфиром через Wei как единицу измерения. Вообще можно сразу decimal, чтобы реально wei поддерживать и быть future-proof.

@buybackoff
Copy link
Collaborator

@Pr0phet1c Привет!

Давно я тут ничего не видел и тем более не писал... Я думаю decimal реально хороший вариант для всех числовых значений. Производельность не важна на таком уровне. С decimal все косяки будут за пределами библиотеки. Это самый широкий тип без потери точности в dotnet. ВВП мира можно записать в decimal в корейских вонах много раз неверное.

@Pr0phet1c
Copy link
Collaborator

@buybackoff привет.
Тут ничего сильно важного и не происходило. В основном мелкие обновления.
на счет decimal, скорее всего ты прав. Но это может оказаться breaking changes.
Может стоит ограничиться только параметром Volume пока?
Это конечно тоже многим может "поломать" работоспособность, но исправлять тип данных для одного параметра все же значительно проще, чем всего подряд

@buybackoff
Copy link
Collaborator

Может стоит ограничиться только параметром Volume пока?

Да, по мере надобности. Из моего текста наврное могло показаться, что я предлагал всё заменить. Нет, только там, где есть проблемы.

breaking changes

Простой cast в int не так уж и сложно.

Выбор не большой: или long, или decimal; или double. Decimal вмещает в себя long: это int96 + scale. Double не точный. Decimal лучше всего.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants