I have found the best way, is to buy a limited amount of US$ every paycheque, and leave the money in a US$ account.
When the prices are going up and down, I adjust my deposit amount up or down. For the past 2 years or so, I have been putting away on average, $100 US a cheque and the lowest paid was .99 cents on the dollar, and the highest so far is $1.13, and everywhere in-between.
I sure wish I had bought way more when the dollar was in our favour, but alas it was a couple of tight months. I figure I have averaged out around $1.04 over all. If I had to get all my US$ money today, it is at $109.5, yikes.
If you figure out the exchange rate scheme, you would be one of the few.