We develop a multivariate filter which is an optimal (in the mean squared error sense) approximation to the ideal filter that isolates a specified range of fluctuations in a time series, e.g., business cycle fluctuations in macroeconomic time series. This requires knowledge of the true second-order moments of the data. Otherwise these can be estimated and we show empirically that the method still leads to relevant improvements of the extracted signal, especially in the endpoints of the sample. Our filter is an extension of the univariate filter developed by Christiano and Fitzgerald (2003). Specifically, we allow an arbitrary number of covariates to be employed in the estimation of the signal. We illustrate the application of the filter by constructing a business cycle indicator for the U.S. economy. The filter can additionally be used in any similar signal extraction problem demanding accurate real-time estimates.