Whole batch, not partial execution
When trade instructions are generated, if any single item in the basket fails a check, the entire batch is rejected and not one instruction is produced — the failing symbol is not skipped so the rest can proceed. The design note reads: buying one fewer name means executing a portfolio nobody approved.
The three situations
| Situation | Result |
|---|---|
| Any symbol in the basket has no usable price | Whole batch rejected, zero instructions; the error names the symbol |
| A leg's planned amount cannot buy one minimum increment (for example, less than 1 share of a US name) | Whole batch rejected |
| The basket contains a US leg while the upstream broker session is offline | The US leg has no price, which falls back to the first situation |
What happens after a rejection
- No instruction and no fill was produced. Your funds were not executed and nothing needs cleaning up.
- Operations correct the basket (change the symbol, adjust the amount, or wait for the session) and propose again.
- A basket with a US leg proposed inside the 02:19–04:00 HKT outage window will necessarily have no price for that leg.
The cost of this design is that a batch sometimes has to be redone; the benefit is that a portfolio different from the approved one is never executed. For allocated funds, the latter is the larger risk.