Forecasting the movements of stock prices is one the most challenging problems in financial markets analysis. In this paper, we use Machine Learning (ML) algorithms for the prediction of future price movements using limit order book data. Two different sets of features are combined and evaluated: handcrafted features based on the raw order book data and features extracted by ML algorithms, resulting in feature vectors with highly variant dimensionalities. Three classifiers are evaluated using combinations of these sets of features on two different evaluation setups and three prediction scenarios. Even though the large scale and high frequency nature of the limit order book poses several challenges, the scope of the conducted experiments and the significance of the experimental results indicate that Machine Learning highly befits this task carving the path towards future research in this field. Keywords: Machine Learning, limit order book, feature extraction, mid price forecasting 1. Introduction Forecasting of financial time series is a very challenging problem and has attracted scientific interest in the past few decades. Due to the inherently noisy and non-stationary nature of financial time series, statistical models are unsuitable for the task of modeling and forecasting such data. However, the lack of appropriate training and regularization algorithms for Neural Networks at the time, such as the dropout technique , rendered them susceptible to over fitting the training data. Support Vector Machines were deemed as better candidates for this task, as their solution implicitly involves the generalization error. The development of effective and efficient training algorithms for deeper architectures , in conjunction with the improved results such models presented, steered scientific interests towards Deep Learning techniques in many domains. Deep Learning methods are capable of modeling highly nonlinear, very complex data, making them suitable for application to financial data , as well as time series forecasting . Furthermore, ML techniques which perform feature extraction may uncover robust features, better-suited to the specific task at hand. Autoencoders , are Neural Networks which learn new features extracted from the original input space, which can be used to enhance the performance of various tasks, such as classification or regression. Bag-of-Features (BoF) models comprise another feature extraction method that can be used to extract representations of objects described by multiple feature vectors, such as time-series .