Вопрос к разработчикам программ для криптовалютных бирж и ботов по расчетам орде
От: Passerby  
Дата: 25.10.20 10:26
Оценка:
Расчеты на биржах округляются до скольких-то знаков (8) после запятой и комиссия всегда считается в базовой валюте пары.
Что и как используется при расчетах конечной суммы покупки или продажи и комиссий: double, decimal, ulong?
К примеру при продаже какой-либо крипты рассчитывается базовая валюта сначала по цене ордера, затем происходит округление до какого-то знака (8-го), затем рассчитывается комиссия, затем комиссия округляется. И комиссия вычитается.
При покупке же сразу вычисляется комиссия, округляется, вычитается, из оставшейся части рассчитывается покупаемая крипта, которая округляется.
В какую сторону происходит округление в каждом случае не знаю, но вопрос не в этом.
В каких числах и как происходит расчет? Расчет можно бы было сделать в decimal, но вряд ли биржи используют decimal из-за большой нагрузке на процессор.
public static decimal MyFloor(decimal f)
{
      return Math.Floor(100000000 * f) / 100000000;
}
public static decimal MyCeiling(decimal c)
{
      return Math.Ceiling(100000000 * c) / 100000000;
}

Может используется double? Где-то встречалось, что все расчеты идут в сатоши и в целых числах. Но в таком случае как записывается цена? Может кто-нибудь знает что и как используется для точных расчетов и округлений?
Re: Вопрос к разработчикам программ для криптовалютных бирж и ботов по расчетам
От: BlackEric http://black-eric.lj.ru
Дата: 25.10.20 14:42
Оценка: +2
Здравствуйте, Passerby, Вы писали:

P>Может используется double? Где-то встречалось, что все расчеты идут в сатоши и в целых числах. Но в таком случае как записывается цена? Может кто-нибудь знает что и как используется для точных расчетов и округлений?


Хз как у них, но double использовать нельзя для хранения денег. Используется long или редко decimal.
Обычно все хранят в копейках, центах и т.д. А для отображения и только для него делят на 100.
https://github.com/BlackEric001
Re: Вопрос к разработчикам программ для криптовалютных бирж и ботов по расчетам
От: hi_octane Беларусь  
Дата: 26.10.20 00:37
Оценка:
P>В каких числах и как происходит расчет? Расчет можно бы было сделать в decimal, но вряд ли биржи используют decimal из-за большой нагрузке на процессор.
В том объёме в котором биржи делают расчёты — большой нагрузки на процессор из-за decimal тупо нет. Большая часть нагрузки из-за того что каждое действие пользователя, от логина до выхода — транзакция, которую надо записать, сохранить, и т.д.
Re[2]: Вопрос к разработчикам программ для криптовалютных бирж и ботов по расчет
От: Sharov Россия  
Дата: 26.10.20 11:04
Оценка: +1
Здравствуйте, BlackEric, Вы писали:

BE>Хз как у них, но double использовать нельзя для хранения денег. Используется long или редко decimal.


Почему редко, если этот тип для хранения и манипуляциям с деньгами и создавался?
Кодом людям нужно помогать!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.