Closed MrJimm closed 3 years ago
Вот тут возникает проблема №1: /operations зачем-то требует обязательным параметром figi инструмента
Не требуется. Просто смотри все за сутки. Там есть id операции. как только status= Done проверяй, чтобы обязательно еще и price >0 тогда можно помещать операцию как выполненную.
Ну а алгоритм проверки можно еще дополнить проверкой /portfolio. Ну и проверяй чтобы тебе нужное кол-во лотов насыпали. Например заявка ушла не полностью. исполненной при закрытии биржи.
Спасибо за ответ, да, figi оказался необязательным. Но Проблема №2 все еще актуальна, и я по прежнему не понимаю, как могу связать id заявки и id информации о ней из operations (потому что из-за особенностей песочницы через orders мы выставленную заявку не получим никогда). Отсутствие возможности протестировать все в песочнице блокирует возможность делать дальше что-либо.
Как в песочнице можно получить операцию зная id заявки?
Спасибо за ответ, да, figi оказался необязательным. Но Проблема №2 все еще актуальна, и я по прежнему не понимаю, как могу связать id заявки и id информации о ней из operations (потому что из-за особенностей песочницы через orders мы выставленную заявку не получим никогда). Отсутствие возможности протестировать все в песочнице блокирует возможность делать дальше что-либо.
Как в песочнице можно получить операцию зная id заявки?
Проще взять и на бою проверить. Купи RIG - 2.9$всего
Не нужно еще на баги в песочнице закладываться, закладывайся на баги на бою :)
Спасибо за ответ, да, figi оказался необязательным. Но Проблема №2 все еще актуальна, и я по прежнему не понимаю, как могу связать id заявки и id информации о ней из operations (потому что из-за особенностей песочницы через orders мы выставленную заявку не получим никогда). Отсутствие возможности протестировать все в песочнице блокирует возможность делать дальше что-либо.
Как в песочнице можно получить операцию зная id заявки?
В некоторых случаях, когда не заняты отловом багов — в место этого в приоритете отработать алгоритм (или стратегию робота), тогда пригодится такой способ:
1) В песочнице сконструировали метод для отправки запроса "/orders/limit-order".
2) Убедились, что он выполняется и покупка осуществляется, логи ведутся, аудит портфеля производится.
3) Заменили его на метод-заглушку, которая имитирует запрос и возвращает успешный результат.
{trackingId: Date.now(), payload: {orderId: Date.now(), operation: "Buy", status: "Fill", requestedLots: lots, executedLots: lots}, status: "Ok"}
Существующая песочница ничего не знает про рыночные цены инструментов и все лимитки исполняет по указанной цене, лучше использовать метод от @polkila
Какой на данный момент, в текущем API, алгоритм получения статуса заявки, если известен ее id? Достаточно общий для прода и песочницы
Почитав доки и issues пришел к выводу, что просто знать id лимитки - недостаточно, необходимо знать еще figi инструмента. Подскажите, верно ли я понимаю текущее положение дел, и если да - какой вообще есть вариант получения статуса, имея только идентификатор самой лимитки? Текущий алгоритм: 1) Получить список активных заявок из /orders 2) Проверить по id, есть ли наша лимитка в нем 3) Если да - мы получили все, что необходимо (но это сработает только для лимиток, которые еще не были исполнены/отменены) 4) Если нет - получить список операций через /operations, но...
Вот тут возникает проблема №1:
/operations зачем-то требует обязательным параметром figi инструмента. То есть одного универсального идентификатора ордера оказывается недостаточно, чтобы однозначно получить операцию для него - ведь мы не можем просто выгрзить все операции за период и поискать в них по id. Что делать если есть только id лимитки?
Проблема №2:
Перед тем, как выкатывать что-то на прод, все тестируется в песочнице. Однако в operations операции для персочницы возвращаются с идентификаторами вида "18678795", тогда как идентификаторы самих ордеров имеют вид "3a421fbd-a7a1-4ba1-8003-b8c670c0b27b". Как в таком случае вообще сопоставлять выставленные лимитки и информацию об их выполнении?