Jump to content

Welcome to the new Traders Laboratory! Please bear with us as we finish the migration over the next few days. If you find any issues, want to leave feedback, get in touch with us, or offer suggestions please post to the Support forum here.

  • Welcome Guests

    Welcome. You are currently viewing the forum as a guest which does not give you access to all the great features at Traders Laboratory such as interacting with members, access to all forums, downloading attachments, and eligibility to win free giveaways. Registration is fast, simple and absolutely free. Create a FREE Traders Laboratory account here.

Sign in to follow this  
Tams

XCAP IPolyFit

Recommended Posts

XCAP iPolyFit

 

 

XCAP iPolyFit:

 

Fits a time series to Legendre (orthogonal) polynomials and thereby provides the full least squares fit to a polynomial

over a time interval.

 

Author: Paul A. Griffin

January 2, 2007

Extrema Capital, 2007

 

This indicator provides as output the least square best fit to a set of polynomials of maximum power (degree) using

discrete Legendre polynomials. This is accomplished by decomposing the time series into discrete Legendre polynomials

over the interval of orthogonality given by 2 * Width + 1 and discarding the polynomial fits degrees above some maximum degree.

The remaining smoothed series,

 

SmoothedSeries[t] = c[0] * 1 + c[1] * (t-Width) + c[2] * Power(t-Width,2) + ... c[MaximumDegree]*Power(t-Width,MaximumDegree)

 

has coefficients given by the array c that are determined such that this polynomial has the minimum least square error over

the interval. The indicator provides two outputs:

 

ShowLeadingEdge = TRUE

 

As you move forward along the time series, the fit is generated. What is displayed is the leading, rightmost bar, "[0]", for

each fit. This is also obtainable via the Savitzky Golay method, see the reference 3 below.

 

ShowLastFit = TRUE

 

This displays the entire last fit for just the last bar on the chart, so you will only see an output on the last

2*Width + 1 bars of your chart.

 

Some Comments:

 

I like this method of determining the least square fit better than the Savitzky Golay method I have posted because is

provides the entire fit, not just the leading edge, at any bar. This makes for a smoothing filter that can be thought of a

generalization of simple moving average method. In fact, it can be thought of as a progression of noise reduction, starting with no

noise reduction (MaximumDegree = 2*Width) to reduction of signal down to one degree of freedom (a moving average, MaximumDegree=0).

 

So, if your goal is to reduce existing stochastic noise in the data, then this smoothed output is of interest because it can

in principle provide smoothing with minimal lag and best reduction of noise.

 

That is, instead of smoothing a function like this:

 

Average(Function(series),Length1)

 

with lag = Length/2, one should contemplate a new method:

 

Function(SmoothedSeries(Length2,Degree))

 

as the smoothed series should have a higher signal to stochastic noise ratio than the original. Any improvement is based on the

assumption that stochastic noise exists in the chart. Since most standard models of asset pricing use a stochastic variable

model, from everything from options pricing to modern portfolio theory, it seems reasonable to apply this polynomial noise

reduction method directly to financial time series.

 

I will post some predictive indicators using this method soon, in this discussion topic. This post is to get the

foundations out of the way and to provide a basic starting point for further work.

 

For "Rocket Scientists" and as a side note: there is a beautiful history of the application of Legendre polynomials to science.

For example in the solution to the Hydrogen atom, they serve to define part of the angular dependence of the electron probability field

around the proton.

 

 

Some Plots:

 

For SPY daily chart with a width of 126 bars (126*2+1 = 253, about 1 trading year), I have created jpegs of the fits of order

0, 1, 2, 4, 8, 12, and 52. Order zero is the average over one year. Order 1 is linear regression. 2 though 8 are just interesting

low order fits. I also captured order 12 and 52 because of the number of months and weeks per year respectively.

 

References:

 

[1] http://en.wikipedia.org/wiki/Legendre_polynomials

 

[2] Peter Seffen, "On Digital Smoothing Filters: A Brief Review of Closed Form Solutions and Two New Filter Approaches",

Circuits Systems Signal Process, Vol. 5, No 2, 1986

 

[3] https://www.tradestation.com/Discussions/Topic.aspx?Topic_ID=58534

 

 

 

attachment.php?attachmentid=14535&stc=1&d=1256433423

 

 

Note:

This indicator was written in EasyLanguage.

Please refer to your users manual for importation instructions.

 

Your comments and rating of this indicator is appreciated.

XCAP_iPolyFit_(TS).txt

XCAP_iPolyFit_(MultiCharts).pla

XCAP_iPolyFit.thumb.gif.38825f18d0bb2974231b36e7cdd4b96a.gif

Edited by Tams

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.