Most state of the art learning algorithms do not fare well with agents (computer or humans) that change their behaviour in time. This is the case because they usually do not model the other agents’ behaviour and instead make some assumptions that for real scenarios are too restrictive. Furthermore, considering that many applications demand different types of agents to work together this should be an important problem to solve. We contribute to the state of the art with opponent modeling algorithms. In particular we proposed 3 approaches for learning against non-stationary opponents in repeated games. Experimentally we tested our approaches on three domains including a real world scenario which consists of bidding in energy markets. Keywords Non-stationary strategies; opponent modelling; Markov decision process; learning