iMetricaFX: An interactive JavaFX app for the MDFA-Toolkit


Figure 1: The main interactive iMetricaFX user interface.  


We introduce an interactive app completely written in Java/FX for doing real-time signal extraction in multivariate time series.  iMetricaFX is a completely redesigned application from the previous iMetrica, focusing mostly on the multivariate direct filter approach and it’s derivatives for generating real-time signals and analyzing multivariate time series. It retains all the features of the MDFA module in iMetrica, but now with better responsive 2D graphics written in JavaFX, and focusing on real-time data analysis applications.

One might want to use iMetricaFX for any of the following reasons:

  • To learn visually how MDFA hyperparameters interact with each other, and how their changes affect filter coefficients, frequency domain, signal extraction results.
  • To understand how MDFA signal extraction parameters, transformations on time series, additional explanatory variables, or other features affect the behavior of out-of-sample signal quality on future data or some  performance metrics (MSE, Sharpe ratios, seasonal/cycle adjustments, etc).
  • To experiment with MDFA parameter definitions for use in the MDFA-DeepLearning package.
  • To engineer financial trading signals and track their performance out-of-sample given specific trading requirements
  • To analyze correlations between a collection of (non)stationary time series and how they affect signal extractions


We now given an overview of the different components and features of the iMetricaFX system. The first, most obvious step, in getting iMetricaFX rolling is to define the data source. The easiest data source is a collection of .csv files that have DateTime stamps for the index, with the data values in the following columns. Each column should have a header to describe that column, (e.g. “DateTime”, “Timestamp”, and “Bid” or “Open”).

In the resources folder, there is a collection of .csv files which contain daily “Close” values of a few dozen NASDAQ stocks and etfs with historical data dating back the past 6 years. All files contain the same date range period.

Add files is selected from the top menu bar, and in selecting multiple files holding the ‘ctrl’ button will upload all files for streaming data from each simultaneously for multivariate signal extraction. The DateTime format of the files can be selected in the top menu as well, in the TimeFormat menu.

Once the data files have been selected and loaded, to compute the initial default signal using the default MDFA hyperparameter settings, use the “Compute Filter” button at the very bottom left. Once the data has been loaded and the initial filter coefficients have been computed for the initial time series observations, one can then construct several types of signals, apply out-of-sample data, adjust time series transformation, change filter parameters, add additional explanatory series, and more. Here is a list of all the different current interface controls.

  • Menu:File Open .csv data files for time series observations, save filter parameters, load filter parameters.
  • Menu:Signals Create/select new signals. When a new signal is added, the filter hyperparameters will be applied to the currently selected signal. All other signal parameters will remain fixed.
  • Menu:Target Series In the multivariate case, select the target series among all the series loaded. The target series represents the series from which the signal will be built.
  • Menu:TimeFormat The DateTime stamp format of the time series. Usually for daily data this looks like “yyyy-MM-dd” or for minute data “yyyy-MM-dd HH:mm:ss”
  • Menu:Options A variety of options can be chosen here. For now, only Prefiltering on/off is available.
  • Menu:Windows Select the windows that plot the various signal extraction properties. Options are MDFA Coefficients, Frequency Response Functions, and Time/Phase delay. More window types will be added in the future.
  • Compute Filter Compute the filter given the latest Series size observations and current filter hyperparamter settings
  • New Observation This button adds a new (multivariate) time series observation from the referenced .csv files. If there are no more values left in the .csv file, then no new values will be given.
  • Filter length Change the length of the filter from 4 to 100
  • Series size Change the number of in-sample time series observations for computing MDFA coefficients
  • FractionalD The fractional difference exponent between 0 and 1 (first-order differencing)
  • Filter Customization Adjust the smoothness and timeliness parameters
  • Forecasting/Smoothing Adjust the forecasting (negative value) or smoothing lag (positive value)
  • Target Filter Adjust the frequency range for the signal using two frequency cutoffs
  • Filter Constraints Toggle the i1 and/or i2 constraint and the set the Phase Shift for the i2 constraint
  • Filter Regularization Adjust the smoothness, decay, decay strength, and cross regularization for the filter coefficients

One thought on “iMetricaFX: An interactive JavaFX app for the MDFA-Toolkit

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s