v4.3.1 -- critical trade-path fix + integration test suite
Fixes silent breakage of order_send / order_check in v4.3.0. The
MetaTrader5 wheel (5.0.5735) requires **kwargs unpacking for these
calls; positional dict fails immediately with the misleading
(-2, 'Unnamed arguments not allowed')
before any terminal IPC. Read-only SDK calls were unaffected, hiding
the regression. Fix is mechanical -- m(mt5.order_send, req) ->
m(mt5.order_send, **req) at the five trade-path call sites in
mt5api/handlers/{orders,positions}.py.
Adds tests/real/ -- a 35-test live-API pytest suite tagged by magic
number so it can run against a live demo account without touching
positions/orders that aren't its own. This class of regression now
surfaces at test time instead of in production.
Also: update_order TradeOrder.expiration -> time_expiration (PUT
/orders/<ticket> 500 -> 200), first-tick race retry on freshly
auto-selected symbols, auto-reboot on pip changes during boot, and a
defensive numpy<2 pin in the install scripts.
Fully backwards-compatible patch. No new endpoints, no config changes.