Alpaca-API
Alpaca-API copied to clipboard
The API `PATCH/v2/orders/` incorrectly uses original qty and not updated qty if the order has a partial fill
Describe the bug
When a sell order that was opened with qty=N is partially filled, and then gets replaced with a new price (using the PATCH
API), the replaced order reflects the original qty N and NOT the unfilled qty. This results in the replaced partially filled orders ultimately filling the wrong total quantity or returning an error (because now, for a liquidating sell, it is trying to sell more than one has shares).
It appears that the replaced order gets created with qty = N (the original order qty). The correct behaviour would be to create the new order with with only the outstanding, unfilled shares, qty = N - partially_filled_qty.
This may also occur for a buy order but cannot confirm this.
To Reproduce This is hard to reproduce because it only happens when replacing a partially filled order.
Expected behavior The correct behaviour would be to create the new order with with only the outstanding, unfilled shares, qty = N - partially_filled_qty.
Additional context There is a forum post explaining this behaviour in more detail. https://forum.alpaca.markets/t/quantity-error-when-replacing-partially-filled-sell-order/4329