Use klines.batch/quotes.get, rename dry-run status to DRY_RUN_OK, document
first-batch burst limits, and cover run_live with a fake client.
Co-authored-by: Cursor <cursoragent@cursor.com>
Dry-run by default; live calls require a key and wait until 16:00 Asia/Shanghai unless --force, so Stage A off-peak probing stays intentional.
Co-authored-by: Cursor <cursoragent@cursor.com>