Closed khanbekov closed 2 years ago
Внёс требуемые изменения, помимо кэша. Обновил на сервере, чтобы получить доступ к лимитам, полученным из ордербуков, нужно указать параметр limits_by_order_book=true
. Т.е., полный адрес будет примерно следующим:
https://configurator.robotrade.io/kuna/1?only_new=false&limits_by_order_book=true
Почему не создал кэширование значений: это могло привести к неправильным значениям, если данные на бирже изменятся. Кэширование привело бы к сохранению старых значений, и было бы нежелательно. Сейчас при указанном параметре будут возвращаться значения, полученные из последнего ордер-бука.
Используется ордер-бук, который отдается биржей по умолчанию, а не максимальный - у всех бирж разный максимальный размер ордер-бука.
Также, если указывать этот параметр для бирж, которые возвращают часть лимитов, то будут заполнены все лимиты.
Не рекомендую использовать limits_by_order_book=true
, если это не необходимо. Это замедляет получение конфигурации, и в конфигурации могут быть лимиты, которых нет на бирже на самом деле.
@kleninmaxim, жду обратной связи, достаточно ли конфигурации от kuna
Внёс требуемые изменения, помимо кэша. Обновил на сервере, чтобы получить доступ к лимитам, полученным из ордербуков, нужно указать параметр
limits_by_order_book=true
. Т.е., полный адрес будет примерно следующим:https://configurator.robotrade.io/kuna/1?only_new=false&limits_by_order_book=true
Почему не создал кэширование значений: это могло привести к неправильным значениям, если данные на бирже изменятся. Кэширование привело бы к сохранению старых значений, и было бы нежелательно. Сейчас при указанном параметре будут возвращаться значения, полученные из последнего ордер-бука.
Используется ордер-бук, который отдается биржей по умолчанию, а не максимальный - у всех бирж разный максимальный размер ордер-бука.
Также, если указывать этот параметр для бирж, которые возвращают часть лимитов, то будут заполнены все лимиты.
Не рекомендую использовать
limits_by_order_book=true
, если это не необходимо. Это замедляет получение конфигурации, и в конфигурации могут быть лимиты, которых нет на бирже на самом деле.@kleninmaxim, жду обратной связи, достаточно ли конфигурации от kuna
@idvlab
@khanbekov
markets по этой ссылке отдает корректные https://configurator.robotrade.io/kuna/1?only_new=false&limits_by_order_book=true
Еще нужно сделать, чтобы отдавал корректные данные по рынку без параметра limits_by_order_book=true
, https://configurator.robotrade.io/kuna/1?only_new=false
Если параметры на бирже поменяются, то увидим это по ссылке с параметром limits_by_order_book=true
и тогда обновим данные для этой ссылке https://configurator.robotrade.io/kuna/1?only_new=false
@khanbekov markets по этой ссылке отдает корректные
https://configurator.robotrade.io/kuna/1?only_new=false&limits_by_order_book=true
Еще нужно сделать, чтобы отдавал корректные данные по рынку без параметра
limits_by_order_book=true
,https://configurator.robotrade.io/kuna/1?only_new=false
Если параметры на бирже поменяются, то увидим это по ссылке с параметром
limits_by_order_book=true
и тогда обновим данные для этой ссылкеhttps://configurator.robotrade.io/kuna/1?only_new=false
Что именно имеется в виду? Кэширование лимитов для тех маркетов, которые запрашивали у конфигуратора?
@khanbekov markets по этой ссылке отдает корректные
https://configurator.robotrade.io/kuna/1?only_new=false&limits_by_order_book=true
Еще нужно сделать, чтобы отдавал корректные данные по рынку без параметраlimits_by_order_book=true
,https://configurator.robotrade.io/kuna/1?only_new=false
Если параметры на бирже поменяются, то увидим это по ссылке с параметромlimits_by_order_book=true
и тогда обновим данные для этой ссылкеhttps://configurator.robotrade.io/kuna/1?only_new=false
Что именно имеется в виду? Кэширование лимитов для тех маркетов, которые запрашивали у конфигуратора?
Имеется в виду, чтобы поле markets в https://configurator.robotrade.io/kuna/1?only_new=false
было таким же как и в https://configurator.robotrade.io/kuna/1?only_new=false&limits_by_order_book=true
Имеется в виду, чтобы поле markets в
https://configurator.robotrade.io/kuna/1?only_new=false
было таким же как и вhttps://configurator.robotrade.io/kuna/1?only_new=false&limits_by_order_book=true
То есть вы предлагаете всегда вычислять данные о лимитах маркета из ордербуков? limits_by_order_book
будет true по умолчанию?
Это будет замедлять получение данных, особенно при большом количестве маркетов. В среднем время получения данных увеличивается в 2.5 раза
Имеется в виду, чтобы поле markets в
https://configurator.robotrade.io/kuna/1?only_new=false
было таким же как и вhttps://configurator.robotrade.io/kuna/1?only_new=false&limits_by_order_book=true
То есть вы предлагаете всегда вычислять данные о лимитах маркета из ордербуков?
limits_by_order_book
будет true по умолчанию? Это будет замедлять получение данных, особенно при большом количестве маркетов. В среднем время получения данных увеличивается в 2.5 раза
Да, и сделать это только для биржи kuna
limits_by_order_book
я тоже не совсем понял что вы предлагаете. Делать это поле по умолчанию не правильно:
Полагается что это костыль для тех бирж где информации о шагах нету.
Имеется в виду, чтобы поле markets в
https://configurator.robotrade.io/kuna/1?only_new=false
было таким же как и вhttps://configurator.robotrade.io/kuna/1?only_new=false&limits_by_order_book=true
То есть вы предлагаете всегда вычислять данные о лимитах маркета из ордербуков?
limits_by_order_book
будет true по умолчанию? Это будет замедлять получение данных, особенно при большом количестве маркетов. В среднем время получения данных увеличивается в 2.5 разаДа, и сделать это только для биржи kuna
Я предлагаю указывать параметр в ссылке, а не в коде привязывать kuna к такому спосбу получения лимитов. Для того, чтобы сохранить гибкость, был внедрен необязательный параметр limits_by_order_book
В гейте, например, не нужно использовать limits_by_order_book
, это будет только замедлять его работу, эти поля он не использует, ему нужны только common_symbol
маркетов
Созвонился с @pybr0, он расскажет как лучше сделать
@khanbekov @kleninmaxim решили вот так:
Добавил описанную выше логику. Теперь лимиты будут вычисляться из ордер-буков при следующих условиях:
null
)limits_by_order_book=true
В остальных случаях лимиты не будут вычисляться из ордербуков.
@kleninmaxim
Создано из #43
На некоторых биржах (Kuna) нельзя получить полные данные о маркете, например минимальный и максимальный объем ордера, шаг объема (то есть данные о precision и limits на бирже). Для решения этой проблемы нужно получать order book и вычислять по нему требуемые данные.
Также нужно создать кэш для хранения предыдущих значений. Таким образом, в кэше будут сохраняться только самые точные значения. При каждой новой проверке order book значения будут сраниваться с теми, что в кэше. Configurator всегда должен возвращать самые точные значения.