Перейти к публикации
Форум ботоводов

Оригинальные решения


Рекомендованные сообщения

В Binance, наверно как ни в одной другой бирже, нужна скурпулёзная точность. А писать красивый код - занятие не менее увлекательное, чем получать прибыль.

Итак:

# Ф-ция, которая приводит любое число к числу, кратному шагу, указанному биржей
# Если передать параметр increase=True то округление произойдет к следующему шагу
def adjust_to_step(value, step, increase=False):
   return ((int(value * 100000000) - int(value * 100000000) % int(
        float(step) * 100000000)) / 100000000)+(float(step) if increase else 0)

 

Хочу поделиться своим решением:

import math

def roundMath(arg,PUNKT=True): return math.floor(arg*PUNKT)/PUNKT

Округление в меньшую сторону:

step = 0.01
print roundMath(1.255, 1/step)

 

Тут есть один нюанс:

# Если передать параметр increase=True то округление произойдет к следующему шагу
В предложенном вами коде increase=True, округление к следующему шагу идет вниз или вверх?

Ну и второй вопрос: наверно как-то можно и у меня применить параметр increase=True

Ссылка на комментарий
Поделиться на других сайтах

Уже прикрутил вот так:

def roundMath(arg,PUNKT=True, increase=False): return math.floor(arg*PUNKT)/PUNKT + (step if increase else 0)

Конечно же функцию надо слегка подпилить, чтоб она получала свой step и уже сама делила единицу, но это уже...

Ссылка на комментарий
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...