In this paper we present a smart portfolio management methodology, which advances existing portfolio management techniques at two distinct levels. First, we develop a set of investment models that target regimes found in the data over different time horizons. We then build a meta-model which uses the Kelly criterion to determine an optimal allocation over these investment strategies, thus simultaneously capturing regimes operating in the data over different time horizons. Finally, in order to detect changes in the relevant data regime, and hence investment allocations, we use a forecasting algorithm which relies on a Kalman filter. We call our combined method, that uses both the Kelly criterion and the Kalman filter, the K2 algorithm. Using a large-scale historical dataset of both stocks and indices, we show that our K2 algorithm gives better risk adjusted returns in terms of the Sharpe ratio, better average gain to average loss ratio and higher probability of success compared to existing benchmarks, when measured in out-of-sample tests.