Omicron Research Institute

QuanTek Econometric & Technical Analysis Software

QuanTek History

QuanTek development:  This is a summary of the history of the QuanTek program. It started in the late-90s as a simple Technical Analysis program and programming exercise. But eventually it evolved to incorporate state-of-the-art concepts of Econometrics, Adaptive filters, and Wavelet techniques. This was done to try to realize time-series methods from a Signal Processing point of view. We view Technical Analysis as a heuristic fore-runner of these ideas.

Future Plans

Internally the QuanTek program has been extensively modernized, but the user interface (UI) looks much the same as the original version from the late '90s. This needs to be modernized from the old Multiple Document Interface (MDI) interface to a newer Tabbed Interface, and the new Ribbon menus will also be implemented. This upgrade of the UI is planned for QuanTek version 4.0.

Features of QuanTek 3.9a (December 13, 2018)

The new QuanTek version 3.9 has many improvements over the previous version. A new set of splitter windows with graphs displaying a new set of indicators has been incorporated. These indicators are the regressors for the Adaptive Filter, which are called Relative Price, Velocity, and Volatility. The first two splitter windows show these three regressors with Low-Pass and Band-pass smoothing. The Relative Price with these two smoothings form the Buy/Sell Signals, for setting GTC limit orders, and the Buy/Sell Points, for N-day swing trading. Finally, on the third splitter window is show the Adaptive Filter Output, from which is derived the Long/Short Signals. These indicate the favorable periods for a long/short position. All of these indicators are now completely causal (depend only on past data).

There are also several new statistical tests, including a Simulated Trading scenario utilizing the Long/Short Signals and daily trading. This tests the improvement of (simple) returns due to Active trading, compared to the (simple) returns due to Buy & Hold Passive investing. There are also new correlation tests involving the regressor (and other) indicators. The Main Graph has also been updated and a fifth scale has been incorporated.

Also the Volatility has been taken into account as a regressor in the Adaptive Wavelet LP filter which makes it into a GARCH model (Generalized AutoRegressive Conditional Heteroskedasticity). This should improve the predictive power as well as setting the stage for an Options version of QuanTek.

Features of QuanTek 3.8c (May 12, 2018)

Due to the fact that Yahoo discontinued its free data services, it became necessary to find some new data sources for QuanTek. The best free data service that we have found so far is Alpha Vantage. Another, inexpensive source of data that is suitable is EOD Historical Data. A version of QuanTek for each of these two data services was then created, each utilizing its own parse routine. The method of storing the data in the data files had to be modified, so that the data files would be interchangable between all data sources. Both versions are included in the download file, and they may be used interchangeably with the same data files. Some new parse routines for CSV files in a variety of formats were also created, which can parse the CSV files produced by the data download. There are four types of download: Historical, Daily Update, Intra-Day Update data and also Fundamental data (not utilized at present). An automatic routine to download the latest 100 days or so of data was created for the Daily Update, which downloads data for the whole portfolio, one security per minute. You can set the time for automatic download each evening after market hours, even when the computer is asleep.

Features of QuanTek 3.6 - 3.8 (2015-2018)

A new Adaptive Wavelet Linear Prediction filter has been developed that seems to provide good results. This filter solves some issues with the previous filter design. We intend to refine and develop this filter further in future updates. This new Wavelet Linear Prediction filter is designed for non-stationary time series such as financial returns series. It should give a better estimate of the N-day returns, up to 128 days, without "fitting to the stochastic noise" as in the standard filters. This filter is also set up so that it can be generalized to more complex types of filter. The next improvement will be an adaptive version of this filter, and also the filter will be generalized to a multivariate version which does the whole portfolio calculation at once.

Also the Optimal Portfolio calculation was updated and refined, going beyond the modified Markowitz method that was previously used. It was necessary to develop a new modified version of the Markowitz method that was suitable for individual portfolios (see the article in the Help file). This corrects a fundamental issue with the standard Markowitz method.

I have also introduced a new set of Help dialogs. Eight of these are shown from the Welcome to QuanTek! dialog, which is available from the Main Window, and another eight are shown from the Data analysis - Graphs & Trading Rules, which is available from the Graph Window. These Help dialogs present a summary of key features of the QuanTek program, and also provide links to the main Help file. The entire Help file was also rewritten and improved, in particular four of the five articles, which present an overview and theory behind the QuanTek program.

This version downloads free data from Alpha Vantage, inexpensive data from EOD Historical Data, as well as parsing CSV files in a variety of formats. The program is set up to download Historical, Daily Update, Intra-Day Update data and also Fundamental data (not utilized at present). The historical data are downloaded one security at a time, but the daily update (actually for the past 100 days) may be done automatically for the whole portfolio (one security per minute). The time for the daily update each evening may be set, and then the download is done automatically even while the computer is asleep.

Features of QuanTek 3.3 - 3.5 (2012-2014)

This has been a series of beta versions, in which I have essentially rewritten and modernized the whole program. Many of the numerical routines and data download routines were obsolete and needed to be updated. The ASCII parse routines were also updated and improved, in particular to implement the parsing of free Yahoo data.

The old version of the Trading Rules from QuanTek 3.2 using Momentum Indicators was dropped. It occurred to me that this approach was equivalent to a Linear Prediction filter based on smoothed regressors, which was set up manually. Accordingly, new designs for an Adaptive Linear Prediction filters based on smoothed regressors, were begun. This means the filter adapts itself to the data automatically instead of manually, and the same filter can be used for the Trading Rules as is used for the Price Projection.

In addition, a set of Wavelet routines was implemented, incorporating Wavelet smoothing in various displays, as well as the new Adaptive Wavelet Linear Prediction filter design. This design is more appropriate for financial data than conventional designs, such as the Standard LP  filter that we still use, because it minimizes "fitting to the noise" and helps to separate the "signal" from the "noise" in financial data.

A number of Statistical Tests have been devised and included in a Statistical Tests Dialog. These were devised to test the Linear Prediction filter as well as the Wavelet routines to make sure they were operating correctly. 

I developed an encrypted Authorization Key for the program to enable licensing for fixed subscription periods, which uses a personal Pass Code for each subscriber.

Features of QuanTek 3.0 - 3.2 (2002-2006)

QuanTek enables you to design your own custom technical indicators and trading rules, and to test these indicators and trading rules for effectiveness.  The technical indicators are based upon a variety of Linear Prediction filters and the Savitzky-Golay smoothing filter.  Used together, these two digital filters yield a wide variety of oscillator-type indicators.  QuanTek also incorporates a variety of statistical tests to test the effectiveness of these indicators.  There are several correlation tests to test the correlation between the indicators or the LP filter output with future returns directly.  There is also a back-testing routine called the Diagnostic Test to test the Trading Rules derived from the indicators in several realistic trading scenarios with values of the time horizon for trading from 1 to 40 days.  Also included are displays of the spectrum of returns, based on either the standard Periodogram or the Wavelet spectrum.  These are included because these spectrum measurements are the basis of several of the Linear Prediction filters in QuanTek.

This version of QuanTek underwent much testing and development of the Linear Prediction filter routines, in particular the development of a Wavelet LP filter.  To go along with this, we added a Hybrid LP Filter dialog, to enable setting the choice of Filter Type, Order of Approximation, and Fractal Dimension for each security data file individually.  These filters and their parameters can be tested from within this dialog by calling the Correlation Test - Filters dialog, to measure the correlation between the raw Price Projection (returns) output of the LP filter with the future returns, for a variety of choices of the time horizon.

Also a Correlation Test - Filters dialog was developed in order to test directly the predictive properties of the various Linear Prediction filters.  In this version, six different LP filters were included, and any one of these filters can be selected to use for computing the Price Projection and Trading Rules.  However, it was found necessary to be able to set the filter parameters manually, for each security individually, in particular the Fractal Dimension.  This has been done in the subsequent version of QuanTek by bringing back the Hybrid LP Filter dialog, in addition to a choice of the six different filter types

The Time Horizon adjustment could now be made separately for each security, rather than one setting for the whole program.  This is important because each security has its own optimum time horizon for best performance of the Price Projection.  Now this may be set either in the Correlation Test - Filters dialog when testing the filters or in the Correlation Test - Indicators dialog when testing the indicators. 

A new dialog box, called the Trading Rules Filter & Momentum Weights dialog, was added, where the Trading Rules can be selected and displayed.  The new selections for the Trading Rules include three new controls, called the Increment, the Threshold, and the Compression.  In addition the three Momentum Weights, which are the weights of the three Momentum Indicators in the Trading Rules, are set from this dialog.  This new dialog is also called from the Diagnostic Test, so a set of Trading Rules based on the three saved Momentum Indicators can be set and back-tested independently from the data file itself.

QuanTek now works with either TeleChart or MetaStock data, or directly with ASCII files in a variety of formats.

Here were some of the new features of QuanTek:

  • Price Projection: A Price Projection is computed using one of a choice of Linear Prediction filters, and displayed on the Main Graph.  This Price Projection is also used as part of the computation of the Momentum indicators and Trading Rules.  One of the LP filters uses the Wavelet spectrum, one uses the Periodogram spectrum, and one computes the autocorrelation directly.  At present, all of these filters assume a stationary stochastic process over the past 1024 days, which seems a reasonable approximation to the true non-stationary stochastic process underlying the financial markets.  You can experiment with the results of using the different LP filters. Linear Prediction: The Hybrid LP Filter dialog is used to set the Linear Prediction filter for each security separately.  The type of filter may be chosen, as just described, and two parameters which are called the Order of Approximation and the Fractal Dimension can be set.  The Order of Approximation selects the degree of smoothing of the filter spectrum, by setting the length of the series of LP coefficients.  The Fractal Dimension sets the low-frequency response of the filter, corresponding to modeling the time series as a fractionally differenced (FD) or long-memory process.  The Hybrid LP Filter dialog also has attached to it a dialog box which displays the correlation between the filter output (returns) , and the future returns.  Using this Correlation Test - Filters dialog, the predictive power of each filter can be tested directly for any settings of the filter type and parameters.
  • Momentum Indicators: The main feature of QuanTek is that you can design and test yourself a wide variety of technical indicators based on the Linear Prediction filter and the Savitzky-Golay smoothing filter.  These consist of practically every conceivable oscillator-type indicator that can be made out of the past price data.  These indicators can then be tested for correlation with future returns using the statistical tests in QuanTek.  After a set of three of these indicators is designed, the Trading Rules indicator is formed by a weighted sum of these three indicators, with various filter rules applied.  The effectiveness of the final Trading Rules indicator can be tested in a variety of realistic trading scenarios by means of the Diagnostic Test.
  • Statistical Tests: There are two correlation tests which measure correlation with future returns of the technical indicators and the output of the Linear Prediction filter.  These give a direct indication of the effectiveness of these two methods of estimating future returns.  There is also a Diagnostic Test, which is a back-testing routine to test the Trading Rules in a variety of realistic trading scenarios, for a given time horizon.  Two of the statistical tests are the standard Periodogram spectrum and the Wavelet spectrum, which are two different methods for computing the power spectrum of the stock (log) price returns.  These give another indication of the possible presence of correlation in the returns data.
  • Main Graph: The scrolling graph has been improved, with four different scales that cover the whole data set.  Now there is no limit to the time span of historical data that can be displayed.  This also makes it possible to do a better statistical analysis, using deep historical data.  The graphs are now available in either black or white background.  The black background looks great!  These four graph scales display the Price Projection, various buy/sell signals, Bollinger Bands, and on the highest scale is a Candlestick Graph.  
  • Portfolio Optimization: QuanTek also incorporates a portfolio optimization routine, making use of the Markowitz method.  The correlation between the returns of all the securities in the portfolio (data files in a folder) is computed and used, along with the expected return for each security derived from the Price Projection, to compute the optimal portfolio which should maximize returns and minimize risk.  The parameters for risk aversion and margin leverage can be set by the user, to achieve portfolios with different degrees of risk vs. return.  

Features of StockEval (1998-2001)

StockEval was a preliminary version of our stock trading program, designed to incorporate up-to-date methods of computation and a scientific basis for technical analysis.  This program featured the use of the Savitzky-Golay digital smoothing filter, as a replacement for moving averages, and a Linear Prediction filter to estimate future returns up to 100 days in the future.  This resulted in a novel set of technical indicators which featured zero time lag, and a more straightforward interpretation than the usual ones.  We experimented with several different approaches to Price Projection, each of which captures certain aspects of the overall problem, as it turns out.   

StockEval used only data from Dial/Data or ASCII files.  (It was written originally for Dow Jones data, and still had some legacy features from that, including the capability to log on to any database via modem as a Telnet program.)  

These were the main features of StockEval:

  • Price Projection: The main technical indicator in the StockEval program was a Price Projection, in which future prices are estimated up to 100 days in the future.  Two of the main approaches we tried were a regression of the future returns on a set of exponential moving averages of the past prices, and the Linear Prediction routine.  The first method used a set of exponentially weighted moving averages on different time scales, and the differences between EWMAs on adjacent time scales were taken as the basis functions (essentially MACD indicators).  The future one-day returns were then regressed on these basis functions, and the whole procedure was extrapolated into the future one day at a time.  This method apparently gave reasonable results.  However, a simpler method is to utilize the standard Linear Prediction method, which is somewhat equivalent, although it leads to a "noisier" outcome due to a greater number of parameters being fitted.  Both of these methods gave good results on the Diagnostic Test (a back-testing routine), but the excess noise in the trading rules on short time scales was a difficult problem.  However, after applying the Savitzky-Golaydigital smoothing filter to get rid of the short-term stochastic noise, the results were definitely positive, and led to rather spectacular short-term trading gains according to the Diagnostic Test, in the strongly trending market of the late '90s.
  • Linear Prediction: The Linear Prediction filter used in StockEval was a standard, publicly available LP filter which models the time series as an auto-regressive (AR) process.  This filter was used with the maximum number of parameters (1024) in order to try to get the best possible long-term prediction.  (The short-term stochastic noise was then filtered out using the Savitzky-Golay smoothing filter.)  However, after analyzing this particular filter, it turns out that it is actually adaptive in a certain sense (when used with the full set of parameters), in that it gives greater weight to the most recent data.  This explains why we were getting pretty good results on the short-term trading rules as well, as measured in the Diagnostic Test.
  • Harmonic Oscillator: The StockEval program featured a set of three novel technical indicators based on the Savitzky-Golay digital smoothing filter, which we call the Harmonic Oscillator indicators.  The Savitzky-Golay filter can compute derivatives (rates of change) of the smoothed prices, and these smoothed prices and their first and second derivatives were used to construct the set of Harmonic Oscillator indicators with zero lag and a more straightforward interpretation than the normal ones.  From these indicators, a set of trading rules was derived.  These trading rules gave good results on the Diagnostic Test, although they only applied to a trading scenario in which the position is varied smoothly by making a small adjustment every day (which would only be practical for large portfolios).
  • Main Graph: The Main Graph of StockEval was rather novel.  It was a scrolling graph of the entire data set, presented in one long "panorama" which you could scroll across.  There were four different scales on the graph, separated by a factor of two, and the horizontal and vertical axes both scaled the same way, so that the slope of the graph was preserved when rescaled.  The price axis of the graph was logarithmic, so a constant distance along the vertical direction represented a constant percentage change.  This made it possible to judge the relative performance of different stocks directly "by eye", just by comparing directly the slopes of the graphs (a feature not seen in the usual stock price graph).  Underneath the log prices, the log volumes were plotted, relative to a reference line that represented the average log volume.  This made it easier to see when the volume is larger or smaller than its average value.
  • Portfolio Optimization: StockEval also incorporated a portfolio optimization routine, making use of the Markowitz method.  The correlation between all the stocks in the portfolio (stock data files in a folder) was computed and used, along with the expected return derived from the Price Projection, to compute the optimal portfolio which would maximize returns and minimize risk.  The parameters for risk aversion and margin leverage could be set by the user, to achieve portfolios with different degrees of risk vs. return.

Go back to QuanTek Features