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

Таблица лидеров

Популярные публикации

Отображаются публикации с наибольшей репутацией на 07.02.2021 во всех областях

  1. # Ф-ция, которая приводит любое число к числу, кратному шагу, указанному биржей # Если передать параметр 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) если пара BNBUSDT, ее CURR_LIMITS['filters'][2]['stepSize'] получит с биржи 0.01000000 если settings['amount'] дать цифру 0.58 (settings['amount']=0.58) quantity = adjust_to_step(settings['amount'], CURR_LIMITS['filters'][2]['stepSize']) quantity будет равна 0.57 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! пол дня голову ломал, решение нашел только такое: перед вызовом функции adjust_to_step сделать settings['amount'] = float(settings['amount'] + 0.00000001) а далее уже quantity = adjust_to_step(settings['amount'], CURR_LIMITS['filters'][2]['stepSize']) Проблемные цифры нашел только 0.57, 0.58, 1.13 ))) Та же проблема если округлять так: ticks = {} for filt in CURR_LIMITS['filters']: if filt['filterType'] == 'LOT_SIZE': ticks[pair] = filt['stepSize'].find('1') - 1 break quantity = settings['amount'] order_quantity = math.floor(quantity * 10 ** ticks[pair]) / float(10 ** ticks[pair]) *************************** settings['amount'] = float(settings['amount'] + 0.00000001) - спасает
    1 балл
  2. Нет. На примере бинанса: Бинанс разрешает что ваше время не может быть больше чем на 1 секунду чем время сервера, иными словами вы не можете ордер поставить из будущего. Одну сек они видимо на погрешность дают. Ваше время может быть меньше чем на бинансе, если я правильно помню они дают 5 сек на это, здесь уже расчет идет на то что сеть может быть загружена, интернет плохой т.п. Другими словами они считают нормой 5 сек если ордер затеряется, но они позволяют и вручную создавать это окно времени в которое по вашему времени может быть нормальная задержка. Это параметр recWindow, он если память не изменяет допустим до 60 сек., иными словами если ордер дойдет до биржи в течении минуты то его примут, только это время в прошлом а не в будущем ! Если не указать recWindow то примется стандартное окно (толи 5, толи 15 сек). Синхронизация нужна только для `авторизованных` запросов, там где ключи используются. Для свечек, курсов не важна синхронизация, там придет когда придет (запрос-ответ).
    1 балл
×
×
  • Создать...