You'll have to ask your bank since they're the ones screwing you. I've been using my US Wells Fargo account in Europe, and my British Lloyds TSB account in Europe and the US, and I've never gotten screwed anywhere near that bad. Maybe 1-5% premium I had to pay in some cases.
But in any case, you should look into getting a USD account. I have a USD and EUR account from Lloyds TSB International and it is a good way to guarantee I never get screwed even a little bit when I'm traveling and doing a lot of small transactions.