Вопрос к разработчикам программ для криптовалютных бирж и ботов по расчетам орде
От: 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? Где-то встречалось, что все расчеты идут в сатоши и в целых числах. Но в таком случае как записывается цена? Может кто-нибудь знает что и как используется для точных расчетов и округлений?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.