The first implementation is manual refresh only. It does not auto-refresh, generate buy/sell grid orders, persist quote prices, or use trade-entry prices as current prices.
Add a `market` package with a Tencent quote client. The client converts local instrument codes into Tencent symbols:
- Already prefixed `sh` or `sz`: keep as-is.
- Codes starting with `6`, `5`, or `9`: use `sh`.
- Codes starting with `0`, `1`, `2`, or `3`: use `sz`.
`TradingService` keeps an in-memory quote cache. When the user clicks refresh in the GUI, the service fetches quotes for all active instruments and stores them in memory.
The holdings table and account summary will immediately reflect quote prices after refresh. Quote prices are not persisted to SQLite in this step, so stale prices do not silently survive app restarts. Trade-entry prices remain historical成交价 only and never become current-price fallbacks.