(Revised May 26, 2005)

**Price Projection Filters****Technical Indicators****Relative Price Indicator****Velocity Indicator****Acceleration Indicator****Momentum Indicators****Trading Rules Indicator****Periodogram****References**

One fundamental premise of the ** QuanTek** approach is that some
correlation exists in the stock data in the low-frequency modes. In other
words, if the stock returns data are separated into separate frequencies by
means of the

The original version of the ** QuanTek** program, which was called

Here is the TEST data file using the **Linear Prediction** for the **Price
Projection** (the blue part to the right):

As can be seen,, the **Linear Prediction** routine projects the smooth
sine wave quite well. This is not too surprising, since the sine wave
(with added noise) is very smooth and highly auto-correlated. It is the
main forte of the **Linear Prediction** filter that it performs well on very
smooth, but not necessarily exactly periodic, waveforms.

Here is the TEST data file using the **Fractional Difference** filter with
a **fractional exponent** of **+0.25** for the **Price Projection**
(the blue part to the right):

Note that this filter is set for a *positive* **fractional exponent**,
so it should capture the **trend persistence** of the smooth curve.
Nevertheless, for this smooth sine wave, the **Fractional Difference** filter
does not perform as well as the **Linear Prediction** filter.

Here is the TEST data file using the **Fractional Difference** filter with
a **fractional exponent** of **-0.25** for the **Price Projection**
(the blue part to the right):

Note that this filter is set for a *negative* **fractional exponent**,
so it should capture any **anti-persistence** of the data. Thus it can
be seen that this anti-persistent filter is completely wrong for projecting this
smooth sine wave. On the other hand, this filter works well for some
stocks in the present time era which seem to exhibit a strong *short-term
anti-persistence* of the returns, such as **MSFT** over the past four year
or so.

(Note in the above graphs that the dark yellow 320-day smoothing curve from
the **Savitzky-Golay** smoothing filter, seems to be out of phase with the
signal. However, this is merely a consequence of the fact that the
smoothing time period is something of the order of 3 half-wavelengths of the
sine wave.)

It appears that the appropriate projection filter to use depends on the *individual
stock* and also on the *time period* in question. At the current
time, some stocks are displaying a rather strong *anti-persistence* in the
short-term returns, so the **Fractional Difference** filter with *negative***
fractional exponent** gives the best results. At other times, such as in
the trending market of the '90s, perhaps the **Fractional Difference** filter
with *positive* **fractional exponent** gives the best results, or
perhaps the **Linear Prediction** filter works the best. The stock
data, of course, are very noisy and at times anti-persistent, unlike the smooth
sine wave, so it should not be inferred that the **Linear Prediction** filter
will work best for stock returns data, just because it leads to the best
projection of the smooth sine wave. It becomes evident at this point that
perhaps the appropriate solution would be a combination ARIMA (*Auto-Regressive
Integrated Moving Average*) filter, combining the *low-frequency
persistence* with the *high-frequency anti-persistence*, with only a few
parameters to estimate. It is the over-estimation with far too many filter
parameters that is the main weakness of the **Linear Prediction** filter,
along with its inability to simulate a *fractionally integrated* (the
"I" in ARIMA) process. In fact, the **Linear Prediction**
filter simulates **Auto-Regressive** processes only (the "AR" in
ARIMA).

One might also consider the possibility of some sort of **Adaptive**
filter, such as the **Kalman** filter. The problem here is that the
financial data are probably too sparse to be able to segment the data and detect
a changing correlation structure in each segment (except maybe for the
short-term correlation). So for the practical reason of not enough data
points, it is necessary to treat the data as if it were **stationary** and
compute correlation over the whole data set, or at least over only a few large
blocks of data. *Stationarity*, of course, is a key assumption of the
ARIMA class of processes.

We now confine our attention to the results using the **Linear Prediction**
filter, as shown above. We examine to begin with, the first group of ** QuanTek
technical indicators**, consisting of three indicators in the

The **Relative Price** and **Velocity** indicators show mainly the pure
sine wave only, while the **Acceleration** indicator is starting to show the
acceleration due to the superimposed S & P 500 data as well. The green
and red lines are the **buy/sell points** derived from the **Trading Rules**
indicator (discussed later). The yellow line is the *present day*
(day ZERO), and all data to the right of the ZERO line are due to the **Price
Projection**. Notice the relative phases of the three graphs. The **buy/sell
points** correspond to a **Relative Price** which is **minimum/maximum**
(**min/max**) (relative to the 320-day smoothing curve), to **positive/negative
zero crossings** (**Z+/Z-**) of the **Velocity **curve, and to the **maximum/minimum**
(**max/min**) of the **Acceleration** curve. Notice that these
points line up rather well, even though they are derived from the **Trading
Rules** indicator, which is derived somewhat differently. This is
crucially dependent, however, on all indicators using the same type of
smoothing, namely the **Savitzky-Golay** (acausal) smoothing filter with the
same time scale.

To re-iterate, the **buy points** are when the price is minimum, the
velocity (returns) are going from negative to positive, and the acceleration
(curvature) is at a positive maximum. These points correspond to a trough
or minimum point of the prices. The **sell points** are when the price
is maximum, the velocity (returns) are going from positive to negative, and the
acceleration (curvature) is at a negative minimum. These points correspond
to a peak or maximum of the prices. Also notice that these **buy/sell
points** correspond to the green/red arrows in the price graph shown above
(using the **Linear Prediction** filter). These indicators in the **Harmonic
Oscillator** splitter window are independent of the custom **Momentum**
indicators and **Trading Rules**, except for the indicated **buy/sell points**.
They serve to confirm these latter indicators.

We begin by trying to design a custom **Technical Indicator** which is a
generic **Relative Price** indicator. We start with the following
settings on the *Technical Indicators* dialog:

This indicator has zero *Lead Time* and uses only the *Primary
Indicator*. Calculating the correlation with 1-day returns leads to the
following result:

This is the kind of result we expect. The correlation is
very large at the peaks, of course, because the signal is an almost perfectly
deterministic sine wave. But we expect that the *higher* the price in
the *past*, at a time in the past about a quarter of the cycle, the more *negative*
the future 1-day return. The *lower* the price a quarter cycle in the
past, the more *positive* the future 1-day return. In other words,
there should be a *negative* correlation between past prices and the future
1-day return, which peaks at about a quarter cycle in the past. This is
indeed what we see in the graph. The correlation between the *present*
price, at the ZERO line, and the future 1-day return, is nearly zero, because
the *price* cycle is one quarter cycle out of phase with the *returns*
cycle. Likewise, the *return* 1-day in the future is *positively*
correlated with the *price* one quarter cycle in the future, because the
price in the future is a direct consequence of the rate of change of prices at
the present.

To turn this into a **Technical Indicator**, we must shift
the phase. Let us try an indicator consisting of a positive contribution
of the **Relative Price** at a future time, and a negative contribution of
the **Relative Price** at a past time. Thus we try the following
settings:

The *Use Secondary Indicator* check box has been checked,
and the *Lead Time* for the *Primary Indicator* has been set to **+20
days**, while the *Lead Time* for the *Secondary Indicator* has been
set to **-20 days**. This leads to the following correlation with 1-day
returns:

Now we see that the resulting **Technical Indicator** is
nicely peaked near the ZERO point in the graph. The actual value of the
Correlation and Estimated annual gain should be ignored, since, of course, we
are working with a nearly perfectly deterministic sine wave. But this
illustrates the ideal behavior that a good **Technical Indicator** should
display. This indicator is a function of **past prices** which exhibits
a strong positive **correlation** with **future 1-day returns**.

We now try to construct a **Technical Indicator** of the **Velocity**
type. In other words, this will be a function of the past *returns*,
or *first derivative* of the past prices. We start with the following
generic settings in the *Technical Indicators* dialog:

Upon computing the correlation of the smoothed past and future projected returns with the future 1-day returns, we find the following result:

This result is as we expect. The smoothed returns of the
deterministic sine wave signal are at maximum correlation with the future 1-day
returns near the ZERO point (actually one day in the future of it). Thus
we have another valid **Technical Indicator**, which this time is a smoothed
function of the **past returns** or

Now let us try to construct a generic **Technical Indicator**
of the **Acceleration** type. This will be a smoothed function of the *second
derivative* of past prices, which is the same thing as the *rate of change*
of *returns*. We start with the following generic settings in the *Technical
Indicators* dialog:

This leads to the following correlation of the smoothed *second
difference of past prices* with *future 1-day returns*:

This graph is also what we expect for the correlation of the
past *acceleration* with the *future 1-day returns*. When the
past *acceleration* is *positive*, indicating an upward curvature of
the prices or increase in returns, this will lead to a *positive* *future
1-day return*. Likewise, when the past *acceleration* is *negative*,
indicating a downward curvature of the prices or decrease in returns, this will
lead to a *negative* *future 1-day return*. In the future, due
to the cyclic nature of the price graph, a positive *future 1-day return*
will lead to a *negative acceleration* or downward curvature in the future,
and a negative *future 1-day return* will lead to a *positive
acceleration* or upward curvature in the future. So this is the kind of
graph we expect of the **correlation** of past **acceleration** with **future
1-day returns**, given that the price "signal" has low-frequency **correlation**.

To construct an actual **technical indicator**, we need to
shift the phase. Let us simply take the *acceleration* some time in
the past as our technical indicator. The settings in the *Technical
Indicators* dialog then become the following:

This then leads to the following correlation between this **technical
indicator** and the **future 1-day returns**:

For this indicator, in which the **Lead Time** is set to **-40
days**, we arrive at a good positive **correlation** between this **technical
indicator** and the **future 1-day returns**. However, it can be seen
that the correlation would be even better if we had gone further back into the
past.

Now we can view the **Momentum Indicators** splitter window,
which shows all three of the above **technical indicators**, after they have
been saved as the respective three **momentum indicators**:

(Note that the normalization of these indicators seems to be a
little off due to the predominance of a single sine wave in the signal.)
The important point to note here is that the peaks, troughs, and zero crossings
of all three of the indicators line up pretty well. (Again, the
Acceleration indicator is a little non-regular due to the influence of the S
& P 500 data on top of the sine wave.) The **buy/sell points**
correspond to the **positive/negative zero crossings** of the
indicators. Therefore it can be seen that the **momentum indicators**
behave the same way as a **velocity**. The **momentum indicators**
are to be interpreted as a *surrogate* or *estimate* for the
(smoothed) *returns*, both past and future, and the **smoothed returns**
are the same thing as the **velocity**.

These three **momentum indicators** are to be added together
to form the **Trading Rules** indicator. You can set the relative
weight of each of the three indicators by means of the *Trading Rules
Parameters* dialog box:

In the present case, all three **momentum indicators** are
given equal weight in the **Trading Rules** indicator.

Now we may see the result of combining these three **momentum
indicators** to form the **Trading Rules** indicator. This indicator
is in the bottom pane of the **Trading Rules** splitter window:

The positions of the **buy/sell points** are determined from
the **positive/negative zero crossings** of this indicator. As before,
these are denoted by the green/red vertical lines.

The middle pane of this splitter window is the output of the **Fractional
Difference** filter, which is used for the Day Trading rules. This graph
is the only one that is not smoothed. It is computed by going back and
computing the 1-day expected return from the **Fractional Difference** filter
for each day in the past, using only data before that day. In this way it
is actually a **causal** display, unlike all the other graphs which are **acausal**,
being the output of the *acausal* **Savitzky-Golay** smoothing
filter. But it can be seen that, for the given sine wave signal, the
output of the **Fractional Difference** filter corresponds nicely with the
past part of the smoothed **momentum indicator**, which is calculated in a
completely different way (using the **Linear Prediction** filter as explained
previously).

As a matter of fact, we can test the output of the **Fractional
Difference** filter itself in the present case. We use the following
settings on the **Technical Indicators** dialog to test the (unsmoothed)
output of the **Fractional Difference** filter as a **technical indicator**
(with a Smoothing Time Scale of 1 day corresponding to *no smoothing*).
Note that the **Fractional Dimension (exponent)** is set to a *positive*
value of **+0.25**, indicating **trend persistence**:

This then leads to the following correlation with the actual
1-day future returns in the **Correlation Test** dialog:

Here we see that, due to the (extremely!) persistent trend of
the sine wave, the past returns are highly correlated with the **future 1-day
return**, and the output of the **Fractional Difference** filter is even
more highly correlated. This positive correlation is also very visible in
the middle pane of the **Trading Rules** splitter window.

Finally, the upper pane of this splitter window shows the **Volatility**
of the data. It can be seen that the **buy/sell points** tend to pass
through the areas where the **volatility** is at a minimum. The natural
explanation for this is that the **buy/sell points** occur at the peaks and
troughs of the price graph, where the **volatility** is minimized due to the
fact that the price trend is zero at these points.

Finally, we can take a look at the **Periodogram** or **
spectrum** of this pure sine wave signal:

The pure sine wave is the extreme peak at the low-frequency end of the scale, which runs completely off the vertical scale. This kind of single-frequency signal would never occur in real financial data. Also notice that the two statistical tests indicate the presence of a non-random signal and a cyclic signal, with 100% confidence.

Peter J. Brockwell & Richard A. Davis, __Time Series:
Theory and Methods, 2 ^{nd} ed.__, Springer-Verlag,
New York (1991)

William H. Press, Saul A. Teukolsky, William T. Vetterling,
& Brian P. Flannery (NR), __Numerical Recipes in C, The Art of Scientific
Computing, 2 ^{nd} ed.__, Cambridge University Press, Cambridge, UK
(1992)

As always, "**Past performance is no guarantee of future results**."

Please read and understand the Disclaimer.

Go back to the Home Page.

Last modified 10/10/2006 .

Copyright 2014 * Omicron Research Institute*. All Rights
Reserved.