For LARGE transfers, say over 50k, you save a huge amount of money by executing Norbert's Gambit. Google it.
Short version: use a stock broker that lets you trade stock on both the Canadian and US markets. Pay USD to buy shares on the NYSE in a Canadian blue chip that trades in both Canada and the US, eg Royal Bank shares. Journal the shares over to the Canadian side of your brokerage account and then immediately sell them on the Toronto Stock Exchange for CAD. You will want to Google to get step by step instructions so you do it right.
If done right you should be able to buy and sell almost simultaneously limiting the chance the stock price will change between the buy and sell. You end up getting the bid/ask spread and trading commission as your exchange fee which is as good as the wholesale rate between big banks, a rate not available to consumers.
Requires some effort so only worth doing for large transfers.
Try using an interactive brokers forex account. Fee is 0.2 basis points, $2 minimum. Anything under $100k will be $2. Your only problem will be fund holds, you'll have to wait a few days between deposit and withdrawal. https://www.interactivebrokers.com/en/index.php?f=1590&p=fx
comments
Short version: use a stock broker that lets you trade stock on both the Canadian and US markets. Pay USD to buy shares on the NYSE in a Canadian blue chip that trades in both Canada and the US, eg Royal Bank shares. Journal the shares over to the Canadian side of your brokerage account and then immediately sell them on the Toronto Stock Exchange for CAD. You will want to Google to get step by step instructions so you do it right.
If done right you should be able to buy and sell almost simultaneously limiting the chance the stock price will change between the buy and sell. You end up getting the bid/ask spread and trading commission as your exchange fee which is as good as the wholesale rate between big banks, a rate not available to consumers.
Requires some effort so only worth doing for large transfers.