As a poster suggested, probably the best bet is to open an account at TD in the US if you are close to a branch there. Unfortunately I can't do that as there are no branches in the area we go to down there.
I finally got around to getting a US$ credit card from my Canadian bank last winter (I'm a slow learner!) to eliminate those hidden fees buried in the exchange rates when using a Canadian $ CC. I transfer US$ from my US$ Canadian account electronically to pay off the US$ CC. We try to buy most things on the CC and carry minimum US$ dollars down there and when needed we try to find a Bank of America ATM to get US$ out (no fees for some reason) and we get out enough $ at one time to minimize conversion fees.
This winter's project is to minimize the effect of my banks "spread", what they ding me with when converting C$ into US$ so I can move C$ into my US$ account to pay off the US$ CC. My investment guy offered to make the currency trade on their currency trading desk, probably at a better rate than my bank is offering, so I will transfer C$ funds electronically to my investment account, the trade will be made on the trading desk and he will transfer the US$ funds back to me electronically into my US$ account. I'll also electronically convert some funds at my bank on the same day to see what savings I get.