From my experience, i found that changing from GBP to HKD while i was in HK was much higher than changing it beforehand in the UK. Also, I found that Standard Chartered offered a higher rate than any other bank (im referring to the main big ones).
However, changing more than HK$8000 will require you to submit some personal details through the bank (if you do not have an account with them), i think its to catch the money laundering. A way to get around it is to change under $8k a day