Math::Business::LaguerreFilter - Technical Analysis: Laguerre Filter


NAME

Math::Business::LaguerreFilter - Technical Analysis: Laguerre Filter


SYNOPSIS

  use Math::Business::LaguerreFilter;
  my $avg = new Math::Business::LaguerreFilter;
     $avg->set_days(9); 
     $avg->set_alpha(0.2); # same (roughly)
  my @closing_values = qw(
      3 4 4 5 6 5 6 5 5 5 5 
      6 6 6 6 7 7 7 8 8 8 8 
  );
  # choose one:
  $avg->insert( @closing_values );
  $avg->insert( $_ ) for @closing_values;
  if( defined(my $q = $avg->query) ) {
      print "value: $q.\n";
  } else {
      print "value: n/a.\n";
  }

For short, you can skip the set_alpha() by suppling the setting to new():

  my $avg = new Math::Business::LaguerreFilter(0.2); # same as set_alpha(0.2)

Ehlers actually uses the high and low price, rather than the closing price, in his book. The insert method takes either a closing price or the high and low price as a two-tuple.

    $avg->insert( $close );       # correct
    $avg->insert( [$high,$low] ); # also correct


RESEARCHER

John F. Ehlers talked about how to adapt Laguerre Polynomials to technical analysis in an engineering-oriented 2004 book titled Cybernetic Analysis for Stocks and Futures: Cutting-Edge DSP Technology to Improve Your Trading.

This technique appears in a chapter with the unlikely title Time Warp - Without Space Travel.

If you locate the chapter or the book, you should read it. It's written well and it's a unique way to look at moving averages in general (e.g. there are filter schematics of each equation).


Thanks

John Baker <johnb@listbrokers.com>


AUTHOR

Paul Miller <jettero@cpan.org>

I am using this software in my own projects... If you find bugs, please please please let me know.

I normally hang out on #perl on freenode, so you can try to get immediate gratification there if you like. irc://irc.freenode.net/perl

There is also a mailing list with very light traffic that you might want to join: http://groups.google.com/group/stockmonkey/.


COPYRIGHT

Copyright (c) 2008 Paul Miller -- LGPL [Software::License::LGPL_2_1]

    perl -MSoftware::License::LGPL_2_1 \
         -e '$l = Software::License::LGPL_2_1->new({
             holder=>"Paul Miller"});
             print $l->fulltext' | less


SEE ALSO

perl(1), the Math::Business::StockMonkey manpage, the Math::Business::StockMonkey::FAQ manpage, the Math::Business::StockMonkey::CookBook manpage