invest-openapi
invest-openapi copied to clipboard
Нет явного признака завершения операции (Operation)
Обрабатывая успешно выполненную историческую операцию я использую статус: OperationStatus.DONE, предполагая, что операция успешно завершилась.
Но я использую историческую операцию для того, чтобы получить информацию о том, по какой цене куплено/продано (поле price), так вот тут ожидала подстава.
Оказывается, что статус операции OperationStatus.DONE не говорит о том, что будет указано поле Operation.price и часто получаю операцию, где Operation.price == 0.
Насколько я понял, что сначала создается операция со статусом OperationStatus.DONE, потом начинается обновление результирующей цены Operation.price.
Я это все к тому, что нету в Operation никакого признака говорящего о том, что именно эта запись в операции полностью заполнена и что теперь можно считывать значение поля price.
как насчет OperationStatus.DONE && Operation.price != 0 ?
@eav так и делаю) но это явно костыль и неочевидное поведение.
Думаю нужна доработка:
- либо добавить еще один флаг Operation.isCompleted = true/false
- либо выставлять OperationStatus.DONE только тогда, когда заполнено и поле price
Ты еще не понял, что здесь везде костыль на костыле, вся надежда не вторую версию.
+1
Список операций в терминале точно так же себя ведёт, если внимание не обращали.
Я вам больше скажу, бывает поле price заполнено ценой последней операции. Т.е. если недельку назад покупали по 15.45, например, а сегодня цена 16.70, то может быть сюрприз в операциях.