I think this should be
- (1 + self.momentum) * learning_rate * grads[param]
(i.e. "+" instead of "-" inside the brackets, as in the note by Nicolas Boulanger-Lewandowski)